“ 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
Definition of Agile 1 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
XP is extreme in the sense that it takes 12 well-known software development "best practices" to an extreme
Key Agile Terms The stakeholder that is responsible (i.e., has money) and “owns” the requirement Customer 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 Iteration 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) Velocity A project conducted under an Agile Method is broken up into a set of very small deliverables called stories. Stories Definition Term
Iterative Development Flow Stories Velocity Unfinished Work New Function Bug Fixes New Velocity Refactoring Retrospective Iteration Planning Development Latest Version Release Plan Bugs Customer Interaction Iteration Plan Time (two week Iterations)
“ 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.
Happy Customers (Taken from a 2009 Dr. Dobbs Survey on the State of Agile Development)
Less Waste ! 64% of the features in a product aren’t really useful!!! Customers often don't know exactly what they want at the beginning of a project.
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.’
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.
Cash flow starts earlier, profits are higher Opportunity costs are high in s ingle big-bang releases. Agile projects are earlier to market with faster product evolution.
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)
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”.
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
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
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.
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.
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
Sabre Holdings Doing more in less time With a higher level of quality
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