Agile Engineering and other stuff I m working on 2008 Gilb conference on Risk Ryan Shriver > Managing Consultant > rshriver@dominiondigital.com Leader in IT Performance Improvement > www.dominiondigital.com The Agile Engineer - theagileengineer.com 1 1
About Me Live and work in Richmond, Virginia, USA Leader in 50-person consulting boutique Like slinging code...just not every day Mostly coaching and high-level architecture currently Starting to write a bit at theagileengineer.com 2
Today s Agenda Story Telling Agile Engineering Augmenting Scrum with Evo Recent Case Studies Value Meter Demo 3
What I know about Risk 4
What I know about Risk Next to nothing Mitigation by Design Tackle head-on 4
Story Telling 5
My Agile Journey 1995.. 2000 2001 2002 2003 2004 2005 2006 2007 2008 Scrum XP Evo Developer Software Architect Agile Coach Systems Engineer Started using XP Lead Architect - Product Development development practices J2EE extreme Programming Explained Beck Design Patterns JUnit Refactoring Fowler Martin Test-Driven Domain Driven Project Start using XP with 6 developers. In 18 months we had 40 developers, 100+ project members Automation Scaling Agility Gilb Learned how to make XP adapt firsthand, but struggled with issues not addressed by XP (size and complexity) FitNesse 3-week iterations Sun Labs Collins Contract: 4,400 2,000+ requirements user stories Evo and Scrum Lean Smart Rails Decisions Drucker What s Business Value? Production 6
My Agile Journey 1995.. 2000 2001 2002 2003 2004 2005 2006 2007 2008 Scrum XP Evo Developer Software Architect Agile Coach Systems Engineer Started using XP Lead Architect - Product Development development practices J2EE extreme Programming Explained Beck Design Patterns JUnit Refactoring Fowler Martin Test-Driven Domain Driven Project Start using XP with 6 developers. In 18 months we had 40 developers, 100+ project members Scaling Agility Gilb Automation Learned how to make XP adapt firsthand, but struggled with issues not addressed by XP (size and complexity) FitNesse 3-week Collins iterations Sun Labs Contract: 4,400 requirements 2,000+ user stories Evo and Scrum Lean Smart Rails Decisions Drucker What s Business Value? Production Can we build large scale systems efficiently and effectively using Agile? 6
System Background Suite of Lending Products Web-based system-of-record for billions in assets Platform O/S Database App Servers Rules OS Libraries Tools Testing Performance Java 2 Enterprise Edition Solaris, Windows, Linux, z390 Oracle, SQL Server, DB2 BEA WebLogic, IBM WebSphere Embedded Blaze Rules Engine Hibernate, Spring, Struts, Apache Commons CVS, Maven, CruiseControl, Eclipse, Jira, WIki JUnit, FitNesse, Selenium Mercury, JProfiler, verbose:gc 7
Software Specifications Lines of Code 673,000 Java classes 5,300 FitNesse Selenium JUnit 118,000 assertions run nightly 9,000 test scripts 637 Test classes - 3,243 test methods Libraries 97 Architecture Adapters MVC, Domain Driven, Events, Services Web Services, JMS, File 8
Sources of Complexity Accounting Domain Configurability of Product Range of Client Needs Implementation Complexity Performance Requirements 9
Our User Stories Story Estimate Story Name Unique Story Number QA Testing Estimate Color-coded sticker per application layer / components Signed and dated by QA when approved Strikethrough signifies this developer is done with their piece Developer s initials & their estimate 10
Our Iteration Tracking 11
Our Release Backlog Upcoming Stories Upcoming Iterations 12
Our Continuous Integration 13
What I Learned 14
What I Learned Agile technical books didn t provide much guidance on building large scale, high-performance systems 14
What I Learned Agile technical books didn t provide much guidance on building large scale, high-performance systems System qualities must be Priority #1 for Architects 14
What I Learned Agile technical books didn t provide much guidance on building large scale, high-performance systems System qualities must be Priority #1 for Architects It s never too late if you follow simple design principles and have an agile codebase Customer Search: 3.962 s => 1.056 s 2x TPS 14
What I Learned Agile technical books didn t provide much guidance on building large scale, high-performance systems System qualities must be Priority #1 for Architects It s never too late if you follow simple design principles and have an agile codebase Customer Search: 3.962 s => 1.056 s 2x TPS I wish I had known sooner about the exponential importance of qualities...i was busy focusing on user stories 14
What I Want To Do Establish Agile as a legitimate method for building large, complex systems Get beyond code-level and move towards systemsengineering agile topics Distill the best ideas into digestible Principles and Practices 15
Agile Engineering 16
Principles of Agile Engineering 1. Deliver Value 2. Quantify Qualities 3. Reduce Feedback Cycles 4. Explore Alternatives 5. Last Responsible Moment 6. Front-to-Back 7. Test-Driven Development 17
Principles of Agile Engineering 1. Deliver Value 2. Quantify Qualities 3. Reduce Feedback Cycles 4. Explore Alternatives 5. Last Responsible Moment 6. Front-to-Back 7. Test-Driven Development 17
Focus on Delivering Value to Stakeholders What they said 18
Quantify Qualities Why people buy ipods: It s not what you do, it s how well you do it, that matters 19
Quantify Qualities Why people buy ipods: It s not what you do, it s how well you do it, that matters $10 price Sales: Zune [Nov 2006 - May 2008]: 2 million units ipod [Oct 2006 - Mar 2008]: 84 million units difference 19
Reduce Feedback Cycles Communication Learning Release Build Integration Testing Plan Do Act Study The only sustainable competitive advantage is the ability to learn faster than the competition. - Arie de Geus, author of The Living Company 20
Last Responsible Moment Maximize time to gather data and make decision Design for Unknowns 21
Last Responsible Moment Maximize time to gather data and make decision Design for Unknowns 21
Explore Alternative Designs Time Don t decide here Decide here 22
Explore Alternative Designs Alternative Design Prototypes Time Don t decide here Gathering Facts Team Learning & Knowledge Decide here 22
Front-to-Back 23
Front-to-Back Client System 23
Front-to-Back Client System User Interface Layer Business Logic Layer Data Access Layer Operating System 23
Front-to-Back Client System User Interface Layer Business Logic Layer Data Access Layer Operating System Database System 23
Front-to-Back S P I K E Client System User Interface Layer Business Logic Layer Data Access Layer Operating System Database System 23
Front-to-Back S P I K E Client System User Interface Layer Business Logic Layer Data Access Layer Operating System Database System 23
Front-to-Back Client System S S S P I K User Interface Layer Business Logic Layer P I K P I K E Data Access Layer E E Operating System Database System 23
Test-Driven Development 24
Test-Driven Development Design Implement Test? 24
Test-Driven Development Design Implement Test? 24
Test-Driven Development Design Implement Test? Test Design Implement Test 24
Measuring Business Value with Scrum 25
Premise Agile is a fine method to help you do things right Agile doesn t help you do the right things 26
So can we adapt Agile? Yes, but we need to: 27
So can we adapt Agile? Yes, but we need to: Deliver the Right Thing 27
So can we adapt Agile? Yes, but we need to: Deliver the Right Thing Measure Business Value 27
So can we adapt Agile? Yes, but we need to: Deliver the Right Thing Measure Business Value Focus on Value Alignment 27
So can we adapt Agile? Yes, but we need to: Deliver the Right Thing Measure Business Value Focus on Value Alignment Measure Progress to Goals 27
Recent Case Studies 28
Evo + Scrum Case Study Start-up subsidiary of international company Building patent-pending, dynamic online marketing engine. Company founded Jan 2007. We started in Mar. Production in Nov. Used Evo for Business Objectives & Requirements. Scrum for implementation As of April 2008 three US airlines and large online travel company live, 3 more airlines and rail in Q3-Q4 2008. ~1 million daily transactions hitting target response times 29
Value Meter Demo 30
Value Meter Tool to specify and measure progress to goals Shooting to open source project in Q3 - Q4 Also hope for hosted solution 31
Thank You Questions? Ryan Shriver > Managing Consultant > rshriver@dominiondigital.com Leader in IT Performance Improvement > www.dominiondigital.com Download this and all my presentations from theagileengineer.com 32 32