Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.

Similar presentations


Presentation on theme: "Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer."— Presentation transcript:

1 Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb http://www.alshayeb.com Information and Computer Science Department King Fahd University of Petroleum and Minerals March (6,13), 2004

2 Extreme Programming: Practices and Strategies 2 Agenda What is XP? XP Practices Management Strategy Facilities Strategy Planning Strategy Design Strategy Development Strategy Testing Strategy When to use XP?

3 Extreme Programming: Practices and Strategies 3 What is XP? “XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software”. -Kent Beck

4 Extreme Programming: Practices and Strategies 4 XP is Different Early, concrete, and continuous feedback from short-cycles. Incremental planning approach. Flexibility of scheduling the implementation based on changing business needs. Reliance on tests written by the programmers. Reliance on the collaboration of programmers.

5 Extreme Programming: Practices and Strategies 5 Software Processes Analysis Design Code Test WaterfallIterativeXP Kent Beck 1999

6 Extreme Programming: Practices and Strategies 6 XP Practices Planning game. Small releases. Simple design. Testing. Refactoring. Coding standards. Pair programming. Collective ownership. On-site customer. 40-hour week. Open workspace. Continuous integration.

7 Extreme Programming: Practices and Strategies 7 Management Strategy Be available as a development partner. See long term refactoring goals. Help programmers with individual technical skills like testing and refactoring. Explain the process to upper level managers. Keep track with software metrics.

8 Extreme Programming: Practices and Strategies 8 Management Strategy- Meeting Daily Stand-up Meeting Entire team Problems. Solutions. Stand in a circle Avoid long discussions. No side conversations.

9 Extreme Programming: Practices and Strategies 9 Summary of Management Strategy Coach: help, plan and manage. Track software metrics. Daily stand-up meeting.

10 Extreme Programming: Practices and Strategies 10 Facilities Strategy Kent Beck, Extreme Programming Explained 2000 Open space. Tables in the middle of the space. Cubbies around the outside of the space. A room with a nice view -if possible. The DaimlerChrysler C3 work area

11 Extreme Programming: Practices and Strategies 11 Planning Strategy- Guidelines Only plan -in details- for the next release. Accepted responsibility. The person responsible for implementation gets to estimate.

12 Extreme Programming: Practices and Strategies 12 Planning: User Stories User stories are written by the customers – features the system needs to do Stories that are most valuable to the customer are developed first. Much simpler format than traditional requirements specifications: 3 sentences written by customers. Non-technical terminology.

13 Extreme Programming: Practices and Strategies 13 Planning -Story Card Kent Beck, Extreme Programming Explained 2000

14 Extreme Programming: Practices and Strategies 14 Planning: Iterations Developers give each user story an estimate of 1, 2, or 3 weeks. Stories are then organized in order of importance to the customer. The development schedule is divided into iterations of 1 to 3 weeks in length based on the user stories.

15 Extreme Programming: Practices and Strategies 15 Planning: Releases Releases are iterative versions of the system released by the development team to the customers. Released at the end of iteration. An integrated working system. Includes the latest successfully implemented, integrated, and tested story from that iteration.

16 Extreme Programming: Practices and Strategies 16 Story Breakdown Iterations assigned for the development of each story Customer System Priority Organization of user stories Release 1Release 2Release 3 Story 1Story 2Story 3 Division of system into user stories Iteration 1 Iteration 2 Iteration 3 Story 2Story 3Story 1

17 Extreme Programming: Practices and Strategies 17 Iteration Breakdown Each iteration is broken down into programming tasks for developing the user story of that iteration. Each task is 1-3 days in duration. Each programming pair choose a task (or more). The programming pair then design test cases and implement them.

18 Extreme Programming: Practices and Strategies 18 Iteration Breakdown Test Case 3 Integrate into the system Passed Test Case 2Test Case 1 Task 3Task 2Task 1 One iteration Development of one user story

19 Extreme Programming: Practices and Strategies 19 Summary of XP Planning User Stories Priorities IterationsReleases Tasks Test Cases

20 Extreme Programming: Practices and Strategies 20 Design Strategy -Rules Always do the simplest thing that could possibly work. Use CRC cards for design One card per object.

21 Extreme Programming: Practices and Strategies 21 Design Strategy -Rules Never add functionality early. “Only 10% of that extra stuff will ever get used, so you are wasting 90% of your time” “Concentrate on what is scheduled for today only” ExtremeProgramming.org Refactor: replace anything complex with something simpler. Remove redundancy. Eliminate unused functionality. Enhance efficiency.

22 Extreme Programming: Practices and Strategies 22 Summary of Design Rules The goal is simple code on time so: Keep things simple and clean. Refactor. Stick to the planned schedule.

23 Extreme Programming: Practices and Strategies 23 Development Strategy -Guidelines Collective code ownership Encourages all programmers to contribute to all segments of the project. Coding standards Consistency saves time and money. Makes it easier for the entire team to code and refactor.

24 Extreme Programming: Practices and Strategies 24 Development Strategy -Guidelines Write the test case before the code. Continuous integration. 40 hour week Projects requiring overtime will be late anyway. Avoid overtime. Pair programming.

25 Extreme Programming: Practices and Strategies 25 Pair Programming Two brains are better than one. Pairs consider more possible solutions to a problem. Design alternatives increase.

26 Extreme Programming: Practices and Strategies 26 Pair Programming Individuals (mean) Teams (mean) Readability1.42.0 Functionality4.25.6 Score5.67.6 Confidence3.86.5 Enjoy4.06.6 Time42.630.2 John Nosek, “The Case for Collaborative Programming,” Communications of the ACM, March 1998, Vol. 41, No. 3 pp. 105-108.

27 Extreme Programming: Practices and Strategies 27 Summary of Development Strategy Write the test case before the code. Collective code ownership. Coding standards. Continuous integration. Pair programming. 40 hour week.

28 Extreme Programming: Practices and Strategies 28 Testing Strategy –Unit Testing Unit testing (test cases) Programmers write their own unit tests Create tests BEFORE the code. Programmers implement one unit test at a time. After 100% of unit tests are passed, that unit can be integrated. During integration, all previous tests are run to verify the overall system still runs.

29 Extreme Programming: Practices and Strategies 29 Testing Strategy -Integration Code integration One pair at a time. Prevents problems introduced when integrating modules. Maintain a latest version. Allows for parallel coding. Integrate often.

30 Extreme Programming: Practices and Strategies 30 Testing Strategy -Acceptance Test Acceptance tests User stories are the basis for acceptance testing. Black box testing.

31 Extreme Programming: Practices and Strategies 31 Summary of Testing Pair Programming Continuous Integration 100% Unit Tests Passed Acceptance Tests Passed Create Unit Test Failed Passed End of Task Run all unit tests ExtremeProgramming.org

32 Extreme Programming: Practices and Strategies 32 Customers Customer availability On site customer. Duties Write stories. Define the priorities of the stories. Define the scope or timing of releases.

33 Extreme Programming: Practices and Strategies 33 XP Favorable Conditions Dynamically changing requirements and functionality. Small groups of programmers 2-12. Short-term projects. Input by customers and managers. Testability.

34 Extreme Programming: Practices and Strategies 34 Companies That Use XP Thought works. Acxiom. Chrysler. Knowledge management software. Andrena objects. EuropeLoan bank. Evant solutions. Workshare technology.

35 Extreme Programming: Practices and Strategies 35 References “Extreme Programming Explained: Embrace Change,” by Kent Beck “Planning Extreme Programming,” by Kent Beck, Martin Fowler “Extreme Programming Installed,” by Ron Jeffries, Ann Anderson, Chet Hendrickson, Kent Beck, Ronald E. Jeffries “Extreme Programming in Practice,” by James W. Newkirk, Robert C. Martin “Extreme Programming Examined,” by Giancarlo Succi, Michele Marchesi

36 Extreme Programming: Practices and Strategies 36 Websites www.extremeprogramming.org www.xprogramming.com www.pairprogramming.com www.xp123.com

37 Extreme Programming: Practices and Strategies 37 Questions?


Download ppt "Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer."

Similar presentations


Ads by Google