agile methods: fact or fiction
DESCRIPTION
Presentation given at the Trenton Computer Festival in April 2010TRANSCRIPT
Agile Software Methods(fact or fiction)
Matt Ganis, IBM/Pace University
[email protected]://webpage.pace.edu/mganis
presented at TCF 2010 (http://www.tcf-nj.org/)
presentation available at: http://www.slideshare.net/ganis/agile-methods-fact-or-fiction
(Template courtesy of: www.presentationmagazine.com)
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 2
Matt Ganis
•26 years at IBM
•Professor of Computer Science/Astronomy at Pace University, NY
•IBM Agile Leadership team (leading over 10,000 IBM’ers in their use of Agile/Scrum)
(due June 2010)
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 3
Agenda
• What IS Agile ?• Does it really work ?• Who’s doing it ?• But I’ve heard lots of “bad” things….
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 4
“Internet Time”
“The Conventional wisdom about competition in the age of the Internet is that the business world has become incredibly fast and unpredictable, and we need to throw out the old rules of the game…..
For companies competing in the new information economy, the Internet is forcing managers and employees to experiment, invent, plan, and change their ideas constantly while they try to build complex new products and technologies”
Competing on Internet Time: Lessons from Netscape and it’s battle with Microsoft
- Michael Cusumano and David Yoffie
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 5
Definition of Agile1
Agile is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner with "just enough" ceremony that produces high quality software which meets the changing needs of its stakeholders.
1 http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 6
Lean Crystal RUP
Extreme Programming
Scrum
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 7
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 8
Why Agile ?
• Many clients are struggling with application delivery issues:
– Poor IT relationship with the business– Track record of poor project delivery– Inability to deliver on-time, on-budget– Inability to delivery solutions that meet the needs of the business– Poor results with offshore delivery, or seek to avoid offshore delivery– Large project backlog
• Internal and external IBM delivery projects are interested in Agile techniques to help address delivery excellence challenges
– Requirements often are not well-defined– Speed time to deliver critical business functionality– Reduce technical risk for first of a kind solutions
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 9
Exploring (not Big Up-Front Planning)
• Agile is a methodology where by we come up with a solution to a problem not by planning or analysis, but by exploratory programming
• This leads us to Iterative development…
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 10
Iterative development(getting closer to the target)
Further iterations
Assuming you knew all the requirements
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 11
Agile (XP) Practices
• Planning Game• Small Releases• Simple Design• Continuous Testing• Refactoring• 40-hour work week
• Pair Programming• Collective code ownership• Continuous Integration• On-Site customer• Coding standards
XP is extreme in the sense that it takes 12 well-known software development "best practices" to an extreme
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 12
Key Agile Terms
Term Definition
Stories A project conducted under an Agile Method is broken up into a set of very small deliverables called stories.
Velocity Velocity is a method for measuring the rate at which teams consistently deliver business value in a software system (at what rate can they deliver stories)
Iteration
Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks. Each iteration is an entire software project: including planning, requirements analysis, design, coding, testing, and documentation. Stories are implemented within iterations
Customer The stakeholder that is responsible (i.e., has money) and “owns” the requirement
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 13
Iterative Development Flow
Stories
Velocity
Unfinished Work
New Function
BugFixes
New Velocity
Refactoring
Retrospective
Iteration Planning Development
Latest Version
ReleasePlan
Bugs
CustomerInteraction
Iteration Plan
Time (two week Iterations)
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 15
“You do not do Agile, you ‘are’ Agile” – Scaling Software Agility – Dean Leffingwell” A Developing Trend
• 65 % work in organizations that have adopted one or more Agile development techniques
• 41 % work in organizations that have adopted one or more Agile methodologies
• 60 % report increased productivity
• 66 % report increased quality
• 58 % report improved stakeholder satisfaction
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 16
A better chance for success
• VersionOne Reports
– The results show that, using Agile methods, 86% of respondents saw a better than 10% improvement in time-to-market, while 60% of respondents indicated more than a 25% accelerated time-to-market.
– 81% of respondents considered the Agile projects within their organization as “Somewhat Successful” or “Very Successful” in comparison with only 29% for non-Agile projects.
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 17
Happy Customers
A basic Agile principle states:
“Satisfy the customer through early and continuous delivery of valuable software“
If you let customers ask for only their highest priority features, deliver them quickly, then ask for the next highest priority, you are more likely to get short lists of what is important. Moreover, you can respond to their changing circumstances.
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 18
Happy Customers
(Taken from a 2009 Dr. Dobbs Survey on the State of Agile Development)
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 19
Less Waste !
Customers often don't know exactly what they want at the beginning of a project.
Customers often don't know exactly what they want at the beginning of a project.
64% of the features in a product aren’t
really useful!!!
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 20
The Road to success
• Project failures have declined to 15% of all projects, a vast improvement over the 31% failure rate reported in 1994.
• However, projects meeting the “challenged” description—meaning that they are over time, over budget and/or lacking critical features and requirements— total 51% of projects in a recent survey.
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 21
Why are they succeeding ?
• The Standish Group having studied over 40,000 projects in 10 years concludes:
– ‘The primary reason is the projects have gotten a lot smaller. Doing projects with iterative processing as opposed to the waterfall method, which called for all project requirements to be defined up front, is a major step forward.’
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 22
Saving money (or making more)
• Best in class performers are not only 1.4x more likely to have pursued Agile Development methods, they are hitting high marks on metrics that drive profitability, including revenue, product cost, quality, and launch date targets— 80% or more of the time.
• As a result of streamlining product development with Agile methods and best practices, these companies enjoy 53% more productive product development time per person than their average competitors, and bring products to market 25% faster on average.
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 23
Cash flow starts earlier, profits are higher
Opportunity costs are high in single big-bang releases. Agile projects are earlier to market with faster product evolution.
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 24
Quality
Surveys looking at the quality of code produced by teams that practice Agile methods shows a rate of
quality (based on the number of reported defects in the deployed code)
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 26
Test Driven Development
• Having a large set of unit tests enables the frequent change that will occur during an Agile project.
• A large suite of tests will also encourage the team to quickly assemble a working prototype, knowing full well that in future releases that code will be refactored
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 27
Let’s look at a few examples……
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 28
Lockheed Martin
• Before:
– Were Waterfall where last few months of projects were “fire-drills” which led to errors or omissions compounding “down the line” and “nobody was talking to each other”.
• After:
– A significant majority of those polled within the business area stated they saw a greater than 10% improvement in productivity, product quality, our ability to produce a product quickly with customer satisfaction
• Changes
– There was no ‘recipe' card with the answer for them. Experimentation with various Agile methods and practices was key and they settled on a Scrum framework with Agile best practices pulled from XP, Crystal, Lean, and others for the initial pilot
Source: http://www.agilejournal.com/content/view/313/33/
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 29
Adobe• Before:
– We were scrambling so hard to get all the committed features in by the feature complete date - working nights and weekends up to the deadline - that the program was always very buggy at that point.
• After:
– The quality of the program was higher throughout the development cycle, and they reported to have fewer total bugs.
– They were able to incorporate more feedback from outside testers because we didn't switch into "frantic bug fix mode" so early.
• Changes
– Moved from a traditional waterfall method to an incremental development model.
– Resulting in more weekends off, and a third fewer bugs to fix. Source: “Adobe edits the Development style”, - The Register, 2007
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 30
Sabre Holdings
Doing more in less time
With a higher level of quality
Matt Ganis – [email protected] / http://webpage.pace.edu/mganis
Slide 31
Summary
Agile is a user-centric development process that focuses on delivering systems that meet dynamic business requirements
Agile is designed to not only cope but welcome changing requirements. It is efficient because it builds quality into it’s
processes.
The customer gives up some certainty about scope and cost. In return, they get quality, value for money and visible progress.
All parties benefit from the open collaboration and transparency fostered by Agile processes