® IBM Software Group Agile Software Development: What’s Really Going On Scott W. Ambler Practice Leader Agile Development © 2007 IBM Corporation IBM Software Group | Rational software Scott Ambler - Background Practice Leader Agile Development Fellow – International Association of Software Architects www-306.ibm.com/software/rational/bios/ambler.html 2 IBM Software Group | Rational software Presentation Overview Warning! Agile Software Development (ASD) Agile Adoption Rates Going Beyond the Extreme Rhetoric 3 IBM Software Group | Rational software Warning! I’m spectacularly blunt at times Many new ideas will be presented Some may not fit well into your existing environment Some will challenge your existing notions about software development Some will confirm your unvoiced suspicions Don’t make any “career-ending moves” Be skeptical but open minded 4 ® IBM Software Group Agile Software Development (ASD) What is ASD? How it’s different Mythbusters Why does ASD Work? Some Common Practices © 2007 IBM Corporation IBM Software Group | Rational software What is Agile? An iterative and incremental (evolutionary) approach performed in a highly collaborative manner with just the right amount of ceremony to produce high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders. Core principles “Fits just right” process Continuous testing and validation Consistent team collaboration Rapid response to change Ongoing customer involvement Frequent delivery of working software 6 IBM Software Group | Rational software How Agile is Different Focus on collaboration: Less paperwork and more conversation Stakeholders actively involved Focus on working software: Greater feedback makes agile projects easier to manage Less documentation is required Less bureaucracy Agilists are generalizing specialists: Less hand offs between people Less people required Specialists find it difficult at first to fit into the team Agile is based on practice, not theory: This is a significant change from traditional You need to see how agile works in practice to truly understand it 7 IBM Software Group | Rational software Mythbusters Myth Reality 1. No Documentation 1. Agile Documentation 2. Undisciplined 2. Requires great discipline 3. No Planning 3. Just-in-time (JIT) planning 4. Not Predictable 4. Far more predictable 5. Does Not Scale 5. Eclipse is agile 6. Is a Fad 6. It’s quickly becoming the norm 7. Silver Bullet 7. It requires skilled people 8. RUP isn’t agile 8. RUP is as agile as you make it 9. Not Fixed Price 9. Agile provides stakeholders control over the budget, schedule, and scope 8 IBM Software Group | Rational software Why Agile Works www.ambysoft.com/essays/whyAgileWorksFeedback.htm 9 IBM Software Group | Rational software Some Common Practices Regular Deployment of Working Software Pair Programming Refactoring Continuous Integration Test Driven Development (TDD) Shared Code Ownership Active Stakeholder Participation 10 ® IBM Software Group Agile Adoption Rates* Have you Adopted Agile? Number of Projects Run Success Rates *Figures from an April 2007 Survey to be summarized in the August 2007 issue of Dr. Dobb’s Journal © 2007 IBM Corporation IBM Software Group | Rational software Has Your Organization Adopted One or More Agile Techniques? No 31% Yes 69% 12 IBM Software Group | Rational software Number of Agile Projects Run 20+ 10 to 20 57 30 5 to 10 82 2 to 5 1 194 64 13 IBM Software Group | Rational software % of Successful Agile Projects 5% 6% 12% 44% 33% 90%+ 75-90% 50-74% 25-49% >25% 14 ® IBM Software Group Going Beyond the Extreme Rhetoric Modeling and Documentation Rational Unified Process (RUP) Testing Database Refactoring Database Regression Testing Governance © 2007 IBM Corporation IBM Software Group | Rational software Agile Model Driven Development (AMDD) Project Level www.agilemodeling.com/essays/amdd.htm 16 IBM Software Group | Rational software Agile Documentation Document the stable, not the speculative Agile documents: Maximize stakeholder ROI Describe “good things to know” Have a specific customer and facilitate the work efforts of that customer Are sufficiently accurate, consistent, and detailed 17 IBM Software Group | Rational software Rational Unified Process (RUP) 18 IBM Software Group | Rational software Agile Testing www.ddj.com/dept/debug/196603549?cid=Ambysoft Regression testing is critical to the success of evolutionary (iterative and incremental) development Acceptance tests are considered to be primary requirements artifacts Unit tests are considered to be detailed design artifacts 19 IBM Software Group | Rational software Database Refactoring A database refactoring is a simple change to a database schema that improves its design while retaining both its behavioral and informational semantics. Examples: Move Column, Rename Table, and Replace Blob With Table. A database schema includes both structural aspects such as table and view definitions as well as functional aspects such as stored procedures and triggers. Important: Database refactorings are a subset of schema transformations, but they do not add functionality. www.agiledata.org 20 IBM Software Group | Rational software Database Testing www.agiledata.org/essays/databaseTesting.html 21 IBM Software Group | Rational software Agility at Scale: “Right-Sizing” Governance Pragmatic Governance Body Manage Project Pipeline By Business Value Iterative Development Staged Program Delivery Scenario-Driven Development Risk-Based Milestones Adapt The Process Continuous Improvement Simple And Relevant Metrics Continuous Project Monitoring Embedded Compliance Organization & Meetings Mission & Principles Processes Measures Roles & Responsibilities Policies & Standards Self-Organizing Teams Integrated Lifecycle Environment Align HR Policies With IT Values Valued Corporate Assets Align Organization Structure With Architecture Flexible Architectures 22 Keep In Touch! ® IBM Software Group Scott W. Ambler www-306.ibm.com/software/rational/bios/ambler.html © 2007 IBM Corporation IBM Software Group | Rational software References and Recommended Reading www.agilealliance.com www.agilemodeling.com www.agiledata.org www.ambysoft.com www.databaserefactoring.com www.enterpriseunifiedprocess.com Ambler, S.W. (2002). Agile Modeling: Effective Practices for XP and the UP. New York: John Wiley & Sons. Ambler, S.W. (2003). Agile Database Techniques. New York: John Wiley & Sons. Ambler, S.W. (2004). The Object Primer 3rd Edition: AMDD with UML 2. New York: Cambridge University Press. Ambler, S.W. and Sadalage, P.J. (2006). Refactoring Databases: Evolutionary Database Design. Reading, MA: Addison Wesley Longman, Inc. Larman, C. (2004). Agile and Iterative Development: A Manager’s Guide. Reading, MA: Addison Wesley McGovern, J., Ambler, S.W., Stevens, M., Linn, J., Sharan, V., & Jo, E. (2003). The Practical Guide to Enterprise Architecture. Prentice Hall PTR. 24