Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.

Similar presentations


Presentation on theme: "Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming."— Presentation transcript:

1 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices eXtreme Programming In Action Radoslav Nemchev Nemetschek OOD

2 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices XP in action Choose the project Involve the customer Involve the team Apply the practices Automate

3 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Choose the project Not too big Not too small Not too important Not too unimportant

4 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Involve the Customer

5 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Involve the team Guarantee them immunity Give them time Strictly control the practices application Let them see the benefits by themselves Provide communication – stand-up meetings, open workspace,… Shared understanding and responsibility for the system – System Metaphor

6 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Apply the practices Introducing all practices at once, or just one practice at a time? Answer: Adopt one practice at a time. What the order should be? Answer: Follow the natural order – from CR oriented through design to testing and coding.

7 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Customer on-site Customer or Developer on-site? Get the user stories Make him determine priorities – high business value first Get him to give you immediate and frequent feedback Involve him into specification of functional acceptance tests

8 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Planning game ● How to plan? – Create and prioritize user stories - customer – Estimate difficulties - developers – Select stories for next release - customer – Split stories into tasks - developers – Plan the tasks for the next iteration - customer/developers

9 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Small Releases My program is all or nothing! Wrong! Inside every large program there are lots of little programs trying to get out. Make them into small releases. Make as many iterations as possible per release Keep good track of progress Deliver business value to the customer fast Gives sense of accomplishment to the team Keep the team focused

10 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Test First Test-Driven development –Design a test that will fail –Compile it and check that it fails –Write just enough code to make the test run Design evolves from tests The benefit must be higher than the cost Testing slows you down? Apply same quality standards for test and code Tests ARE documentation Automate

11 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Isolation Testing Collaborators of the unit under test are: –Trustworthy Implicit usage Object Mother Pattern –Substituted in the test Stubs Self-shunt pattern Mock objects

12 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices NUnit Unit tests framework Write tests Execute tests Assert results Show tests failure/success Keep the bar green http://nunit.org/default.htm

13 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices NUnit test example

14 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Write test that will fail

15 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Write just the code that makes the test pass

16 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Refactoring Why refactor? –Nobody does it quite right the first time –To improve design –To simplify code –To ease future changes in the code When do we refactor? –Continuously –When code or test smells Automation

17 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices C# Refactory Integrated tool for Visual Studio Simplifies code refactoring Performs automatic code metrics collection http://www.xtreme-simplicity.net/

18 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Integration into MS Visual Studio

19 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Code metrics collection

20 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Refactoring with C# Refactory

21 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Member reference finder

22 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Simple design How to achieve this? –Evolutionary design – design evolves while coding and refactoring –If you don’t need it now, you won’t need it ever - develop only functionality that is required –Satisfy tests in the simplest possible way –Refactoring as soon as the tests run And again – keep it as simple as possible!

23 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices System Metaphor What? Everybody is involved, everybody is interested Everybody understands and is responsible for: –Base architecture –Whole system How? –Don’t separate the team into designers and coders –Change pairs often

24 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Pair programming Why? –2 > 1 –Two programmers will understand the code –Keeps programmers focused When do it? –XP says always –Is it possible in real life? Is it really necessary all the time?

25 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Continuous Integration You can’t put it off forever. Better do it all the time Spare yourself the Big Bang disaster Keep the tests working 100% during the integration Use a dedicated integrated machine Keep the build time low Automate through scripts, tools, etc…

26 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Collective Code Ownership This is not my object! WRONG! Use version control system – CVS, VSS, … You brake it, you fix it

27 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices MS Visual Source Safe Automates Continuous Integration and Collective Code Ownership Provides version tracking Integrates with MS Visual Studio

28 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices Coding Standards I can always read my own code. Wait, it’s all my code! Let the team setup coding standards prior to coding and agree on them Force coding standards application, no exceptions Keep it simple

29 Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development http://www.esi.es/Expert 30 June - 2 July 2003 eXtreme programming - principles & practices 40 hour week Tired people make mistakes Tired people tend to overlook things like testing, refactoring, etc. Work at maximum concentration 8 hours per day 6 PM – you are tired, go home Don’t work more than 1 consecutive week of overtime


Download ppt "Sofia Bulgaria Summer School IST-2001-34488 eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming."

Similar presentations


Ads by Google