The Co-Evolution of Agile and Continuous Integration Jeffrey Fredrick Technical Evangelist jtf@urbancode.com 1
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. 2
Ch 18: Daily Build and Smoke Test 3
Tinderbox 4
Daily builds are for wimps 5
2001: First open source CI tools 6
CI is about discovering problems early Manual Continuous Integration the practice of frequently integrating my work with the work of the team Automated Continuous Integration the practice of giving automated feedback as rapidly as possible following a change 7
Automated CI works with people People generally want to be good citizens... People tend to inconsistency People can do similar things repeatedly, but never the same thing. Jim Highsmith Alistair Cockburn, Characterizing People as Non Linear, First Order Components in Software Development 8
CI improves productivity and quality 90% rise in LOC output/programmer when performing builds at least daily 36% reduction in defect rate when integration/regression testing at each code check in Trade offs between Productivity and Quality in Selecting Software Development Practices, IEEE Software, Sept Oct 2003 9
Technology Adoption Lifecycle 10
G. Moore: Crossing the Chasm 11
Agile & CI in 2001-2004 Agile (XP) Small teams Developer centric High discipline Co located Continuous Integration (CruiseControl) Build focused Developer testing Open source Lava lamps 12
CI feedback used to support agile adoption 13
State of Agile in 2005: Tool-Centric At what stage is agile approach adoption at your location? Investigating: 14% Pilot projects: 4% Partial implementation (some practices): 17% Partial deployed (some projects): 12% Deployed (all new projects): 8% Methods & Tools Poll: Ended May 2005 http://www.methodsandtools.com/dynpoll/oldpoll.php?agile 14
State of Agile 2005: Management-Centric State of Agile process in your organization? Interested or planning to deploy: 19% Using: 14% Corporate IT Leads the Second Wave of Agile Adoption Forrester Research, Nov. 2005 15
Agile Growth 2005-2008 Forrester (Q3 2007): 26% using Agile vs. 14% in 2005 Methods & Tools (Feb 2008): 48% usage vs. 37% in 2005 http://www.rallydev.com/ agileblog/2008/03/ agile adoption rates sowhat and why do i care/ 16
The Ken Schwaber Index 2002 Agile Software Development with Scrum 2004 Agile Project Management with Scrum 2007 The Enterprise and Scrum 17
2009: Enterprise CI Maturity Model 18
ECI Maturity: Building http://www.anthillpro.com/html/resources Enterprise Continuous Integration Maturity Model 19
ECI Maturity: Deploying http://www.anthillpro.com/html/resources Enterprise Continuous Integration Maturity Model 20
ECI Maturity: Testing http://www.anthillpro.com/html/resources Enterprise Continuous Integration Maturity Model 21
ECI Maturity: Reporting http://www.anthillpro.com/html/resources Enterprise Continuous Integration Maturity Model 22
Our enterprise continuous integration system... provides us an end to end automation across our build lifecycle. We now have a faster cycle time, fewer manual errors and an easier time in audits.... allowed our small, globally distributed scrum teams to cooperate in large system builds automatically. By keeping the code integrated we eliminated late errors, improved coordination across teams, and eliminated our release bottleneck.... handles our wide range of platforms and prevents our ports from going stale. Our bill of materials is now generated automatically and our support people can access historical information any time. 23
Enterprise Agile Governance? clients told me of their plans to use Scrum on a $5 million project with 400 developers in three countries Its not the engineering practices that will trip us up, continuous integration, test first, refactoring these things are understood. Its governance that s going to be the problem. http://blogs.gartner.com/david_norton /2010/01/20/ enterprise agile in 2010/ 24
Agile has a Lean future 7 Lean Principles: Eliminate waste, Amplify learning, Decide as late as possible, Deliver as fast as possible, Empower the team, Build integrity in, See the whole. The Seven Wastes of Software Development Partially Done Work Extra Processes Extra Features Task Switching Waiting Motion Defects 25
Manual processes become bottlenecks 26
End-to-end automation removes bottlenecks 27
Continuous Integration on a Dollar a Day 28
Doing the impossible 50-times a day 29
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. 30
Questions? Jeffrey Fredrick Technical Evangelist jtf@urbancode.com 31