Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices XP in Action Practices in Rila Penko Ivanov Rila Solution
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Contents XP More than just Programming Introducing XP in the Company Adopting XP practices
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices XP – More Than Programming Defines new process Deeper client involvement New people culture New development style
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Presenting XP to the Management Managers feel comfortable with the company accepted process and methodologies Present XP as a problem solving strategy
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Present XP to the Client High extend of involvement in the project Approved monitoring on the project progress Fast response to project outcomes
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Present the XP to the team Prepare the team for the new development process Pass a short course in XP with the team Discuss the possible problems and solving strategies
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Prevent from Chaos New methodologies lead to chaos Minimizing the Chaos –Discuss it with the client –Discuss issues with team members –Fast response
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices When to use XP Small Projects Small Teams Dedicated customer Adaptive team
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Not using XP Larger team size Bad client communication Conservative team members
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices How to Introduce XP Practices All together One at a time Grouped
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Practices already adopted Coding Standards – each company have adopted coding standards. Continuous Integration – staging environment that keeps the latest system running. Never break the build in the Source control System
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Newly Adopted Practices Practices Adopted without modifications – practices that match company style Modified practices – not fully acceptable practices or practices that cannot be applied entirely
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Not Modified Practices 40 hours week Pair Programming – not modified it its essence Small Releases – no more than 1-3 months per release according to the XP. 1.5 – 2 month is perfect. Release and Iteration Planning – forecast about 3 iteration per release. Include QA
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Not Modified Practices - 2 System Metaphor – be sure at the project start that all team members are aware with the system metaphor Simple Design – we kept the overall design the same for the whole system. Do not design more than is needed
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Continuous Integration Visual Source Safe – every day check in all the outcomes The system is always integrated at the end of the day. No broken builds. Constant staging system for customer reviews
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Open Workspace Put the whole team as near as possible. Improves communication Improves pairing and saparating practice Improves team culture and synchronization
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Modified Practices Customer on-site Refactoring Unit testing
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Customer on-site Difficulties for on-site available customer Stimulating customer activeness Latest outcomes evaluated
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Involve the customer remotely Staging Environment Continuous Integration Constant on-line access Customer Reviews and Feedback
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Refactoring Refactoring large projects Code reviews Finding bottlenecks Refactoring strategy in Rila –When to refactor –Where to refactor
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Refactoring inspection Performing business calls statistics Present the results in Pivot Table Discover the bottlenecks: –Reduce the most often business calls. Find Alternatives –Choose business methods to refactor Long execution times Often calls
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Inspection example PerfTest pf=null; if (PerfTest.ON){ pf = new PerfTest(); } if (PerfTest.ON){ pf.startLog("PortfolioServiceEJB", "getAllPortfolios"); }... // Business Logic Comes Here... if (PerfTest.ON){ pf.endLog(); }
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Unit testing Often Modifications of the presentation Modifications of the business logic Writing unit tests
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Unit tests – business logic Using JUnit –integrated in the JBuilder –Framework for writing unit test –Initialization of resources –Creating Test suits that include all test units.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Test suits example package test; import junit.framework.*; public class AllTests extends TestCase { public AllTests(String s) { super(s); } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(test.TestAddressBookServiceEJBBean.class); suite.addTestSuite(test.TestRegistryClientsServiceEJBBean.class); suite.addTestSuite(test.TestRegistryBrokersServiceEJBBean.class); suite.addTestSuite(test.TestRegistryEmissionsServiceEJBBean.class); return suite; }
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Difficult Practices Apart of customer on-site Pair Programming –People work on several projects –Team coordination Work 40 hours with heavy steps is difficult according to the developers
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming - principles & practices Questions