Extreme Programming - University Of Illinois At Chicago

3y ago
66 Views
6 Downloads
743.43 KB
19 Pages
Last View : Today
Last Download : 2m ago
Upload by : Ronan Orellana
Transcription

2/5/2018Extreme ProgrammingJohn T. BellDepartment of Computer ScienceUniversity of Illinois, ChicagoPrepared for CS 442, Spring 2017Sources1.2.3.4.Wikipedia: Extreme ProgrammingWikipedia: Extreme Programming PracticesWikipedia: Kent BeckKent Beck and Cynthia Andres, “ExtremeProgramming Explained: Embrace Change”,2nd Edition5. Kent Beck and Martin Fowler, “PlanningExtreme Programming”21

2/5/2018An Early Definition of XP“XP is a lightweight methodology forsmall-to-medium-sized teamsdeveloping software in the face ofvague or rapidly changingrequirements.”Beck, Kent; Andres, Cynthia. Extreme ProgrammingExplained: Embrace Change (Kindle Location 316).Pearson Education. Kindle Edition. Quoted from theFirst Edition.3History of XP Extreme programming was created by Kent Beckin the late 1990s during his work on the ChryslerC3 payroll project. OO movement takes hold; Dot-com boom speedsup expected time-to-market for software. XP takes "best practices" to extreme levels. ForExample:– Frequent inspections - Pair Programming– Test early - Automated tests built before code.42

2/5/2018Kent Beck An original signatory to the AgileManifesto. Leading proponent of test-drivendevelopment. Pioneered Design Patterns andapplication of Smalltalk. Wrote JUnit, with Erich Gamma. Popularized CRC cards. Works at Facebook.5XP is based uponValues, Principals, and PracticesPracticesPrincipalsValues63

2/5/2018XP Values s7Communication Value “What matters most in team softwaredevelopment is communication. Whenproblems arise in development, most oftensomeone already knows the solution; but thatknowledge doesn’t get through to someonewith the power to make the change.” This value drives information sharing andtransparency in the XP methodology.84

2/5/2018Simplicity Value “What is the simplest thing that could possiblywork?” Start with the simplest possible solution; Addcomplexity only if necessary. XP does not prepare for future possibilitiesthat may or may not happen. It concentrateson the simplest solution for today’s problems.9Feedback Value Feedback from the system: Automated unittests and continuous integration returnfeedback on code changes within minutes. Feedback from the customer: Frequent closecontact, including acceptance tests, planningmeetings, and general project steering. Feedback from the team: When requirementschange, team gives new planning estimates.105

2/5/2018Courage Value “Courage is effective action in the face of fear.” “Sometimes courage manifests as a bias to action.Sometimes courage manifests as patience.” “Courage alone is dangerous; In concert with theother values it is powerful. The courage to speaktruths, pleasant or unpleasant, fosterscommunication and trust. The courage to discardfailing solutions and seek new ones encouragessimplicity. The courage to seek real, concreteanswers creates feedback.”11Respect Value Respect for team mates.Respect for the project.Respect for the customer.Respect for self.126

2/5/2018Other Values The values given above are those that comewith XP. Any given organization, team, or project mayand should add their own values. Some possibilities include safety, security,predictability, and quality-of-life.13Poll: Which XP Value do you see asmost kCourageRespect147

2/5/2018XP is based uponValues, Principals, and PracticesPracticesPrincipalsValues15XP Principals bridge the gapbetween values and practices HumanityEconomicsMutual on FlowOpportunityRedundancyFailureQualityBaby StepsAcceptedResponsibility168

2/5/2018Principals I Humanity – People develop software.Economics – Add business value.Mutual Benefit – Strive for win-win always.Self-Similarity – If something works in onesituation, try to apply it to others. Improvement – “Perfect” is a verb, not anadjective. Always strive to improve processes.17Principals II Diversity – It takes a variety of skills andperspectives to solve problems effectively.This can lead to conflicts when there aremultiple possible solutions or approaches. Reflection – How and why does this work? Flow – Bias towards a continuous flow ofdevelopment, as opposed to developing inphases or chunks. Continuous integration.189

2/5/2018Principals III Opportunity – “Learn to see problems asopportunities for change.” Redundancy – “The critical, difficult problems insoftware development should be solved severaldifferent ways.” e.g. defect elimination. Failure – Trial and error. Try things even if theydon’t work, and learn from the failures.( Edison learned 1000s of filaments that failed. )19Principals IV Quality – Quality is not a control variable.Always strive for high quality, and control theproject by adjusting scope as needed. Baby Steps – Lots of little steps can be fasterthan a few large bounds, with more control. Accepted Responsibility – Responsibility forcompleting tasks must be taken, not given.2010

2/5/2018Coming Soon Next we will look at the specific Practices ofXP.21Exercise: ReflectionBased on your past experience in SE, e.g. 440: What have you done that worked well, thatyou would do again on future projects? What have you done that has not worked well,and what could you change to ( try to ) make itwork better in the future?2211

2/5/2018XP is based uponValues, Principals, and PracticesPracticesPrincipalsValues23XP Practices –Primary and CorollaryBeck, Kent; Andres, Cynthia. ExtremeProgramming Explained: Embrace Change (KindleLocation 788). Pearson Education. Kindle Edition. Primary practicessafely giveimmediatebenefits. Corollary practicesshould only beattempted aftermastering primarypractices. Combiningpractices amplifiestheir effectiveness.2412

2/5/2018The List of Primary Practices Sit Together Whole Team InformativeWorkspace Energized Work Pair Programming Stories Weekly Cycle Quarterly CycleSlackTen-Minute BuildContinuousIntegration Test-FirstProgramming Incremental Design25Primary Practices I Sit Together – Find a large room where everyonecan sit together, at least part of the day. Whole Team – Bring together all skills andperspectives necessary. Foster sense of team. Informative Workspace – The space should be avisible display of the project and its currentstatus. The space should also have resources forpositive social interactions, e.g. coffee & snacks.2613

2/5/2018Informative Workspace ImagesBeck, Kent; Andres, Cynthia. Extreme Programming Explained: EmbraceChange (Kindle Location 845). Pearson Education. Kindle Edition.27Primary Practices II Energized Work – Work only as many hours asyou are productive and efficient. Pair Programming – Two people, One computer.–––––––Keep each other on task.Brainstorm refinements.Clarify ideas.Alternate initiative when one is stuck.Hold each other accountable to team standards.Rotate pairs after 1 to 3 hours. No more than 5 or 6 hours a day.Beware of inter-personal, hygiene, and other social issues.2814

2/5/2018Primary Practices III Stories – A more natural alternative to“requirements”. Functionality described bythe client and quickly estimated by thedevelopment team.Beck, Kent; Andres, Cynthia. Extreme Programming Explained: EmbraceChange (Kindle Location 845). Pearson Education. Kindle Edition.29Primary Practices IV Weekly Cycle – Plan each week at a Monday meeting:1. Review progress to date, including how actual progressfor the previous week matched expected progress.2. Have the customers pick a week’s worth of stories toimplement this week.3. Break the stories into tasks. Team members sign up fortasks and estimate them. (Alt: Draw tasks from hat/pile.) Start the week by writing automated tests that will runwhen the stories are completed. Then spend the rest ofthe week completing the stories and getting the teststo pass. Deliver functionality & celebrate every Friday.3015

2/5/2018Primary Practices V Quarterly Cycle – Another good time frame forplanning longer-term goals. During quarterlyplanning:– Identify bottlenecks, especially those controlledoutside the team.– Initiate repairs.– Plan the theme or themes for the quarter.– Pick a quarter’s worth of stories to address thosethemes.– Focus on the big picture, where the project fits withinthe organization.31Primary Practices VI Slack – Always include some minor tasks thatcan be dropped if needed to meet overallcommitments. Don’t over-commit and underdeliver, but set realistic attainable goals. Ten-Minute Build - Automatically build thewhole system and run all of the tests in tenminutes.3216

2/5/2018Primary Practices VII Continuous Integration - Integrate and testchanges after no more than a couple of hours. Test-First Programming - Write a failingautomated test before changing any code.– Avoid scope creep by keeping focused goals.– Build trust by writing code that passes tests.– Develop a rhythm: test, code, refactor, repeat.– Difficulty writing tests indicates a design problem.33Test-First Development CycleStartSelect a newfeature towork on.Write ( and automate )tests to determine ifthe new feature isworking.Refactor code, toimprove qualitywithout changingfunctionality.Develop new code,until all tests pass.3417

2/5/2018Primary Practices VIII Incremental Design – Make small safe designimprovements every day. ( Software is easierand cheaper to redesign than bricks andmortar, if done properly. )35Think-Pair-ShareWhich one(s) do you want to try out? Sit Together Whole Team InformativeWorkspace Energized Work Pair Programming Stories Weekly Cycle Quarterly CycleSlackTen-Minute BuildContinuousIntegration Test-FirstProgramming Incremental Design3618

2/5/2018FYI – The Corollary Practices Real CustomerInvolvement IncrementalDeployment Team Continuity Shrinking Teams Root-Cause Analysis Shared CodeCode andTestsSingle Code BaseDaily DeploymentNegotiated ScopeContract Pay-Per-Use37Planning Extreme Programming This material is presentedbased on an excerpt from“Planning ExtremeProgramming” by KentBeck and Martin Fowler,handed out in class. See“Resources”. Image eedback.gif , originallyauthored by Don Wells.3819

Extreme Programming John T. Bell Department of Computer Science University of Illinois, Chicago Prepared for CS 442, Spring 2017 2 Sources 1. Wikipedia: Extreme Programming 2. Wikipedia: Extreme Programming Practices 3. Wikipedia: Kent Beck 4. Kent eck and ynthia Andres, “Extreme Programming Explained: Embrace hange”, 2nd Edition 5.

Related Documents:

Extreme Programming Extreme Programming (XP) takes commonsense software engineering principles and practices to extreme levels For instance “Testing is good?” then “We will test every day” and “We will write test cases before we code” As Kent Beck says extreme programming takes

Creative Die Mold Corp. Glendale Heights, Illinois Simmons Knife & Saw Glendale Heights, Illinois J.H. Botts LLC Joliet, Illinois Termax Corporation Lake Zurich, Illinois RG Manufacturing Machesney Park, Illinois Metal Resource Solutions McHenry, Illinois Lyon LLC Montgomery, Illinois Sko-Die, Inc. Morton Grove, Illinois NTN USA Corporation

Extreme Programming: A Gentle Introduction. Extreme Programming: A gentle introduction. The goal of this site is to provide an introduction and overview of Extreme Programming (XP). For a guided tour of XP follow the trail of little buttons, starting here. Returning visitors can jump to recent changes to see what's new.

Page 1 of 12 EXTREME PROGRAMMING 2.1 Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,[1][2][3] it advocates frequent "releases" in short development cycles, which is intended to improve productivity

A majority ofArizona voters say that wildfires (84%), heat waves (79%), and drought (74%) have become at least somewhat more extreme in the past 3-5 years. 38% 36% 29% 36% 26% 43% 21% 55% 16% Drought Heat waves Wildfires Much more extreme Somewhat more extreme Not changed much at all Somewhat less extreme Much less extreme Perceptions of .

Extreme Programming Waterfall model inspired by civil engineering Civil engineering metaphor is not perfect – Software is more organic than concrete – You “grow the software” to meet changing requirements Extreme Programming (XP) addresses this – An iterative model – Recommended reading: “Extreme Software Engineering.

ANN L. ECKHARDT EDUCATION Ph.D. University of Illinois at Chicago 9/12 Chicago, Illinois B.S.N. Illinois Wesleyan University 5/03 Bloomington, Illinois PROFESSIONAL 8/12 – present Assistant Professor EXPERIENCE School of Nursing, Illinois Wesleyan University, Bloomington, Illinois 7/06 –

effort on your easy runs – many beginner runners try to run them a little too hard. You can always mix the sessions in the plan with XT. This 12 week beginners runner’s plan is designed for those who are either new to regular running or those stepping up to longer distances for the first time. This plan will see you training 3-4 times a week and we would encourage you to complement the .