90 likes | 183 Views
Adoption of XP in web application projects. www.vasoftware.com. Mark Striebeck Engineering Director VA Software Corp. mstriebeck@vasoftware.com May 12, 2004. Case: Rewriting SourceForge in J2EE. SourceForge Enterprise Edition is commercial version of sourceforge.net ~ 500,000 LOC
E N D
Adoption of XP in web application projects www.vasoftware.com Mark Striebeck Engineering Director VA Software Corp. mstriebeck@vasoftware.com May 12, 2004
Case: Rewriting SourceForge in J2EE • SourceForge Enterprise Edition is commercial version of sourceforge.net • ~ 500,000 LOC • 50 man years development • Initial plan – Phased approach: • Prototype (Q2/2002) • Framework requirements (Q3/2002) • Framework implementation (Q4/2002 – Q1/2003) • Application requirements (Q4/2002 – Q1/2003) • Application implementation (Q2/2003 – Q4/2003) • Roadblock: Product Management could not deliver application requirements in time (End 2002) • Alternative: Iterative Method – XP
Adopting XP: The Cortez Method “Burn the boats”
The Cortez Method • Do not try to keep legacy processes and documents alive • Monolithic requirement documents • Big design documents (which are outdated the day after development starts) • Code reviews • Written testing scripts and extensive manual tests after development • XP’s 12 practices address all these but in a very different way – TRUST!
Courage! • XP will slow down coding BUT accelerate development • Advantages of XP are NOT seen upfront but down the road (higher quality, no integration phase, redesigns possible)
Process Challenges • The XP process seems counterintuitive and conflicts with traditional Software Development methodologies • Onsite / fulltime customer • User Story based requirements • Test-Driven development (acceptance tests upfront!) • Pair programming • Constant Acceptance Testing • Difficult to get used to – needs constant reminders • Don’t try to fix XP process by avoiding XP practices
Technical Challenges • Continuous Integration • Automated Tests • Constant (merciless) Refactoring
Technical Challenges – Web-based applications • HTML applications are not build from OO toolkits • Separate presentation logic from business logic in presentation layer • Use CSS excessively • Create or use templating framework • Need testing framework that only tests logic but not presentation • HttpUnit • JWebUnit
Resources Build tools • Ant (http://ant.apache.org/) • CruiseControl (http://cruisecontrol.sourceforge.net/) • Tinderbox (http://www.mozilla.org/tinderbox.html) Testing tools • Cactus (http://jakarta.apache.org/cactus/) • JUnit (http://www.junit.org/) • JWebUnit (http://jwebunit.sourceforge.net/) • HttpUnit (http://httpunit.sourceforge.net/) Interesting Knowledge Sources • Continuous Integration (http://www.martinfowler.com/articles/continuousIntegration.html) • Wards Wiki (http://c2.com/cgi/wiki?ExtremeProgramming) • XP Mailing List (http://groups.yahoo.com/group/extremeprogramming/)