Featured Whitepapers
- Apples, Oranges, and Acorns - All Agile Development Tools Are Not the Same
- One's Enough for Agile Application Development Management
- Requirements Management 101 – 4 Basics Everyone Should Know
- Tips on Requirements Traceability – Learn How to Control Change and Improve Quality
- Scaling Continuous Integration to Large and Distributed Teams
|
1. Background “Project Management is the application of knowledge, skills, tools and techniques to project activities to meet project requirements.”[i] Up to the present, the PMI perspective on managing projects has focused primarily on plan-driven strategies.[ii] Plan-driven strategies assume that the work of a project can be planned in advance of its execution, and that execution can be made to follow the plan reasonably well. Plan-driven projects emphasize gathering requirements (scope), defining the project’s work items, dependencies, sequence, and estimated effort (the Work Breakdown Structure), and executing the work to create the desired results. In the field of software development, plan-driven projects frequently use the Waterfall model,[iii] which divides the schedule into explicit phases, as in Figure 1:
Figure 1 Phases of a Waterfall Process Plan-driven strategies have been effective for projects in many industries, but attempts to apply these strategies to the world of computer software development, using the Waterfall model, have been less successful. For example, the Standish Group’s 2009 survey of 50,000 software projects revealed that 32% of the projects succeeded, 44% of projects qualified as “challenged” (late, over budget, lacking functionality, or having low quality), and 24% failed.[iv]
Figure 2 Standish Chaos Report: 2004 – 2009. Copyright © 2010 by The Standish Group International, Inc. The difficulty of managing software projects has long been noted, and many alternative strategies have been proposed. A major contribution to this effort occurred in 2001 with the publication of the Agile Manifesto[v], which emphasized collaboration, results, and adaptability over process, documentation, and adherence to plans. While none of these concepts was innately incompatible with plan-driven strategies, taken together they represented a significant shift in perspective regarding what matters more in the management of successful software projects, and what matters less. A number of agile project-management frameworks have arisen, including Scrum, XP (Extreme Programming), Commitment-Based Project Management (CBPM)[vi], and others. In many cases, these strategies predate the Agile Manifesto (Scrum, for example, debuted in 1995), but have been grouped under the umbrella of agile development because of a common emphasis on the agile principles listed in the Manifesto. That agile projects can succeed is not in dispute. Less clear are the answers to these two questions:
This paper will attempt to answer these questions. 2. Common Problems in Software Projects 1. Creating detailed specifications is time-consuming, and requires substantial effort. 2. Creating the project schedule is challenging because the work breakdown structure is complex, and the associated estimates require substantial effort. 3. Although work seems to progress smoothly at first, getting an accurate picture of project status is difficult, as it is often not clear whether work items are truly complete. 4. Various unexpected things occur throughout the project: a. Requirements are not accurate and detailed enough for implementation. Some have been omitted, and some are incorrect. Resolving the discrepancies takes time. b. Design artifacts that appear at first to be complete are not, and require an unpredictable number of revision cycles to finalize. c. Development work proceeds more slowly than expected. Design issues have to be re-visited, code reviews uncover problems that need to be fixed, and estimates are often unreliable even in the absence of these issues. d. The development teams are distracted by the need to fix critical production problems. e. Because the project will take many months to complete, customers who “missed the boat” during the requirements phase submit change requests to get their high-priority features implemented. The resulting scope changes increase project duration. f. Integration of new components is more difficult, and takes longer, than expected. g. Testing turns up more defects than can be fixed in the allotted time. h. Defect repairs create unexpected regression errors that require fixing. i. The deployment process contains new elements introduced by this project. Initial deployment efforts fail, and deployment takes more time than expected. 5. The project finishes late, over budget, and with higher defect rates or less functionality than intended. 6. Customers discover that the new release doesn’t provide what they really wanted. The key point is that every aspect of the project is subject to substantial uncertainty. The cumulative effects of uncertainty extend the project duration well beyond the planned period, and waste development funds on the wrong features. 3. Statistics on Success Rates for Plan-Driven and Agile Projects 3.1 Scott Ambler, 2007 3.2 QSM Associates, 2008 3.3 Conclusions from the Surveys
The Ambler and QSMA surveys both indicate better results for agile projects, but the absence of common metrics for success means that the three reports are not directly comparable. In fact, it may not be possible to define success consistently across plan-driven and agile projects, given the radically different ways these projects operate. “Planned scope, on time” makes sense for a plan-driven project, but is not directly applicable to agile projects that freeze schedule and adjust scope. As a result, comparisons of success rates for the two styles of project may not be meaningful. Yet we would still like some guidance as to whether (and why) plan-driven or agile processes are more effective for software projects, so we will develop a different approach below. 4. Key Differences between Agile and Plan-Driven Strategies
The differences are extensive, and at first glance, it isn’t clear which of the agile characteristics (if any) would lead to improved performance for software projects. It is also possible that no one of the characteristics dominates, and that a synergistic combination is responsible for benefits. On further inspection, though, one can see that most of the characteristics in the table relate to the time dimension, which suggests an avenue for exploration. 5. Gedanken Experiment Section 2 suggests that the greatest challenge to successful software projects is uncertainty, which impacts the project in many ways. Thus our Gedanken Experiment will assess the impact of uncertainty on two projects that are designed to produce the same deliverables, using identical teams. One project will follow a plan-driven process, while the other will follow an agile process. To make the comparison as simple as possible, we will focus on only one of the distinguishing characteristics of the two processes—the length of the development cycle—and ignore the others. We will then subject both projects to the same set of unexpected problems, and see how the impact of uncertainty differs between them. 5.1 Project Description Analysis of expected costs and revenues indicate that the project should be cost-effective if we can begin to receive revenues after investing a maximum of one year’s funding. Thus each project has funding for one year, and extension is contingent on showing revenues by the end of the funded year. The system architecture contains the following components:
Figure 3 Data Warehouse and Reporting System
The major pieces of work to be done are as follows:
5.2 Uncertainty
5.3 The Plan-Driven Project The plan-driven project contains nine major phases, as shown in Figure 4.
Figure 4 Microsoft Project schedule for plan-driven project The elapsed time estimated for the project is slightly less than nine months, which leaves about three months of buffer time in the funded period. 5.4 The Agile Project
Figure 5 Microsoft Project schedule for agile project At the conclusion of each major task, a new report is available for use in the production environment. This means that each major task contains testing and deployment overhead, including regression testing to ensure that the creation of each new report has not broken any of the previous reports. Thus the project as a whole contains more time allocated to these types of work than does the plan-driven project, which performs such work once for all reports. We account for the additional overhead of the agile project by adding more time for requirements, testing, and deployment work, relative to the plan-driven project. The time increment (at 23%) is somewhat arbitrary, and may be an overestimate, but reducing it to, say, 10% does not materially affect the conclusions. (See Table 2 in the Appendix for details.) The estimated schedule shows that Report #1 requires more time than the others, because the work includes setting up the production environment. The schedule as a whole requires approximately eleven months, which leaves one month of buffer time in the funded period. 6. Comparison 6.1 Comparison of Planned Project Schedules 6.2 Comparison of Actual Project Schedules The effects of uncertainty on the agile project also change its delivery timeline, as shown in Table 1.
Table 1 Effect of uncertainty on agile project schedule Three of the reports are delivered within the funded year, and the total schedule expands to 17 months. 6.3 Comparison of Project Results 7. Lessons Learned from the Gedanken Experiment 7.1 The Financial Impact of Uncertainty When uncertainty is low, ROI is a calculation: A project will take X months to complete, cost $Y, and yield $Z of revenue over the following twelve months. When uncertainty is high, ROI is a gamble:
o It may be late, and not complete before the company goes out of business
o Business priorities can change. The company may get out of the tire business, and start selling rear-view mirrors.
o Last year’s best-selling Pet Rock is this year’s gravel In high-uncertainty environments, risk is more about losing the entire investment than it is in having less ROI than expected. 7.2 Risk 7.3 Value Delivery and ROI versus Time It is generally understood that receiving $100 per month for ten months is better than receiving $1000 after ten months. This is because having cash now is more useful than not having it, and because the time value of money favors increments over time (i.e., we might invest each increment and earn more interest than we’d get from the single large payment). The same logic applies to agile projects that deliver functionality in useful increments over time, rather than deferring delivery of all functionality to the end of a large project. 8. How Projects Map to the Adaptive Spectrum In practice, “all else” is seldom equal, and the incremental deliveries of agile projects may add overhead relative to a plan-driven project. The overhead is worth paying for high-uncertainty projects, because the agile project delivers value more reliably. However, if uncertainty is low, plan-driven projects may be more efficient. These conclusions lead us to recommend that the type of process to be used for managing a project be appropriate for the project’s expected level of uncertainty. For this paper, we consider uncertainty in scope and effort as contributing to the total uncertainty: Scope Uncertainty: Uncertainty in project requirements. Scope uncertainty is low if requirements are well-understood, and stable through the duration of the project. Scope uncertainty is high if requirements are poorly understood, and/or change frequently throughout the duration of the project. Effort Uncertainty: Uncertainty regarding the effort required to implement requirements. Effort uncertainty is low if we can estimate effort reliably, and high if we cannot. We characterize the relationship between total uncertainty and appropriate type of process by the Adaptive Spectrum of Figure 6.
Figure 6 The Adaptive Spectrum of process types 8.1 Predictive Planning 8.2 Adaptive Planning 8.3 Reactive Planning 9. Conclusion
Table 2 Task Durations for the Plan-Driven and Agile schedules
[ii] The PMBOK does not use the term “plan-driven,” but the latter has become a common term for any process that assumes predictability over time scales longer than a few weeks. [iii] “Managing the Development of Large Software Systems,” by Winston W. Royce. Proceedings of the IEEE WESCON, August, 1970. Royce did not coin the term “Waterfall,” or recommend the process to which this term was later applied, but did document the process. [iv] CHAOS Summary 2009, The Standish Group International. (http://www.standishgroup.com/newsroom/chaos_2009.php). 2009 [v] Manifesto for Agile Software Development. www.agilemanifesto.org, 2001. [vi] No Surprises Project Management: A Proven Early Warning System for Staying on Track, by Timm Esque. Ensemble Management Consulting. December 1, 1999. See also the white paper by Jose Solera at http://www.pmlead.com/. [vii] Defining Success, by Scott W. Ambler. Dr. Dobb’s Journal. (http://www.drdobbs.com/architecture-and-design/202800777). Oct 31, 2007. [viii] The Agile Impact Report: Proven Performance Metrics from the Agile Enterprise. Rally Software Development Corp. 2008. [ix] Kanban originated at Toyota as a process for improving automobile manufacturing. The adaptation to software development differs significantly from the manufacturing version, but shares the lean emphasis and focus on work-in-progress constraints. About the Author Dr. Kevin Thompson, Ph.D., is a Senior Instructor and Consultant for cPrime, a company that provides training and consulting services in Project management. He has a doctorate in Physics from Princeton University, and extensive background in managing software development projects. Dr. Thompson helps companies make the challenging transition to agile development, by working with development teams and business stakeholders to define and implement the right process for their business.
Dr. Thompson has Project Management Professional (PMP), Scrum Master (CSM), and Scrum Practitioner (CSP) certifications. He is currently writing a book on the use of mathematical models and metrics that enable Scrum to scale to large projects.
Set as favorite
Bookmark
Email this
Hits: 5945 Trackback(0)Comments (0)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Last Updated on Friday, 11 March 2011 15:47 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agile Marketplace - Announcements and Special Offers
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


Proponents of agile development processes, such as Scrum, often claim that agile software projects are more likely to succeed than traditional plan-driven projects. Unfortunately, attempts to validate this claim based on statistical evidence are problematic, because the definition of “success” is not consistent across studies. This paper addresses the question by performing a simple mathematical analysis of these projects. We model agile and plan-driven software projects that have identical requirements, and show how they fare when subjected to the same set of unanticipated problems. The results show that the agile project provides clear benefits for return-on-investment and risk reduction, compared to the plan-driven project, when uncertainty is high. When uncertainty is low, plan-driven projects may be more cost-effective.






