did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321268891

Managing Iterative Software Development Projects

by ;
  • ISBN13:

    9780321268891

  • ISBN10:

    032126889X

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2006-06-27
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $59.99 Save up to $14.10
  • Digital
    $45.89
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

The Practical, Start-to-Finish Guide to Planning and Leading Iterative Software Projects Iterative processes have gained widespread acceptance because they help software developers reduce risk and cost, manage change, improve productivity, and deliver more effective, timely solutions. But conventional project management techniques donrs"t work well in iterative projects, and newer iterative management techniques have been poorly documented. Managing Iterative Software Development Projects is the solution: a relentlessly practical guide to planning, organizing, estimating, staffing, and managing any iterative project, from start to finish. Leading iterative development experts Kurt Bittner and Ian Spence introduce a proven, scalable approach that improves both agility and control at the same time, satisfying the needs of developers, managers, and the business alike. Their techniques are easy to understand, and easy to use with any iterative methodology, from Rational Unified Process to Extreme Programming to the Microsoft Solutions Framework. Whatever your roleteam leader, program manager, project manager, developer, sponsor, or user representativethis book will help you Understand the key drivers of success in iterative projects Leverage "time boxing" to define project lifecycles and measure results Use Unified Process phases to facilitate controlled iterative development Master core concepts of iterative project management, including layering and evolution Create project roadmaps, including release plans Discover key patterns of risk management, estimation, organization, and iteration planning Understand what must be controlled centrally, and what you can safely delegate Transition smoothly to iterative processes Scale iterative project management from the smallest to the largest projects Align software investments with the needs of the business Whether you are interested in software development using RUP, OpenUP, or other agile processes, this book will help you reduce the anxiety and cost associated with software improvement by providing an easy, non-intrusive path toward improved resultswithout overwhelming you and your team.

Author Biography

Kurt Bittner works for IBM on software development solutions strategy. In a career spanning 24 years, he has successfully applied an iterative approach to software development in a number of industries and problem domains. He was a member of the original team that developed the IBM Rational Unified Process and is a co-author with Ian Spence of Use Case Modeling, published by Addison-Wesley in 2002.

 

Ian Spence is a chief scientist and principle consultant at Ivar Jacobson Consulting, specializing in the adoption of the Unified Process and the iter­ative, use-case driven approach that it recommends. He has more than 20 years of experience in the software industry, including more than 10 years of experience in managing and participating in iterative projects. He is cur­rently involved in the development of the next generation of lightweight software development processes and is a co-author with Kurt Bittner of Use Case Modeling, published by Addison-Wesley in 2002.

 

Table of Contents

Foreword xix
Preface xxiii
Acknowledgments xxxiii
PART I THE PRINCIPLES OF ITERATIVE PROJECT MANAGEMENT
1(156)
What Is Iterative Development?
3(40)
Iterating and the Scientific Method
4(2)
What Is an Iteration?
6(6)
The Iteration Is a Self-Contained Mini-Project
6(2)
The Iteration Has a Distinct Set of Activities
8(1)
Each Iteration Results in a ``Release''
9(2)
The Defining Characteristics of Iterative Development
11(1)
The Iterative Experience
12(28)
Iterating from the Core Development Team Perspective
13(7)
Iterating from the Customer Perspective
20(12)
Iterating from the Management Team Perspective
32(8)
Summary
40(3)
How Do Iterative Projects Function?
43(34)
Iterative Development: Maximizing the Chances of Project Success
44(8)
Defining Project Success
44(4)
Success and the Iterative Project
48(2)
Success and the Iteration: Gathering Evidence of Project Success
50(2)
The Key Characteristics of a Successful Iterative Project
52(22)
Demonstrable, Objectively Measured Progress
52(5)
Avoiding ``Feature Creep''
57(1)
Incrementally Increasing Functionality
58(2)
Continuously Improving Quality
60(2)
Continuous Risk Reduction
62(2)
Controlling Change
64(1)
Increasingly Accurate Estimates
65(5)
Increasing Enthusiasm, Morale, Collaboration, and Effective Teamwork
70(2)
Convergence on an Accurate Business Solution
72(2)
Summary
74(3)
Controlling Iterative Projects
77(46)
The Variables That Shape Projects: Scope, Quality, Time, and Cost
79(2)
Stakeholders: The Real Drivers of Project Success
81(1)
Controlling Individual Iterations
82(10)
Time Boxing
83(6)
Scope Boxing
89(2)
Guidelines for Controlling Iterations
91(1)
Controlling the Project as a Whole
92(7)
The Importance of Phases and Milestones
95(2)
Iterations, Phases, and Milestones
97(2)
The Unified Process Phases
99(10)
The Inception Phase
99(1)
The Elaboration Phase
100(1)
The Construction Phase
100(2)
The Transition Phase
102(1)
Alternative Views of the Phases and Milestones
102(5)
Common Misconceptions About the Unified Process Lifecycle
107(2)
Objective Measurement of Results: Controlling the Iterations Within the Project Lifecycle
109(1)
Measurement and Iterations: Feedback Control for Projects
110(9)
Measurement and Phases
112(6)
Controlling the Project Through Measurement
118(1)
Summary
119(4)
Are You Ready for Iterative Project Management?
123(34)
Value Delivery: The Key to Success
125(6)
Iterations Focus on Delivering Value
126(1)
Use Cases: Unifying the Iterative Development Approach
127(1)
Desired Outcomes, Risks, Scenarios, and Iteration Planning
128(3)
Team Building for an Iterative Project
131(11)
Team Skills and Attitudes
132(1)
The Leadership Team
133(4)
The Role of Architecture: Providing a Firm Foundation
137(3)
Working with the Extended Team
140(1)
Iterative Attitudes and Values
141(1)
Changing the Way You Think About Planning
142(12)
Conventional Planning Wisdom
143(2)
Why Conventional Planning Wisdom Is Wrong When Applied to Software
145(2)
Progressive Thinking About Planning
147(2)
Comparing the Two Approaches
149(3)
Seven Habits of Successful Iterative Project Managers
152(2)
Summary
154(3)
PART II PLANNING AND MANAGING AN ITERATIVE PROJECT
157(298)
A Layered Approach to Planning and Managing Iterative Projects
159(44)
The Management Layers
161(4)
The Program Management Layer
163(1)
The Overall Project Management Layer
163(1)
The Development Layer
164(1)
The Iteration Layer
164(1)
The Role of the Layers
165(1)
Planning Through the Layers
165(14)
Positioning the Unified Process Lifecycle
167(2)
Layering the Plans and Milestones
169(8)
Positioning the Other Key Management Artifacts
177(2)
Distributing the Management Responsibilities
179(7)
Key Management Roles
179(2)
Assigning Management Responsibilities
181(4)
Working as an Integrated Management Team
185(1)
Management Through the Layers
186(13)
Tolerances Through the Layers
186(2)
Estimating Through the Layers
188(5)
Monitoring and Control
193(6)
Summary
199(4)
Overall Project Planning
203(40)
Evolution and Release Planning
205(10)
Balancing Risks Across Multiple Evolutions
207(2)
Handling Sequential Evolutions
209(1)
Planning for Multiple Evolutions
210(1)
Factors That Affect the Number of Evolutions
211(2)
The Composition of the Overall Project Plan
213(1)
The Style of the Overall Project Plan
214(1)
The Principles of Lifecycle Planning
215(7)
The Importance of Balance
221(1)
Applying the Principles to Overall Project Planning
222(20)
Principle 1: Understand the Desired Outcomes
223(2)
Principle 2: Identify and Assess Risks
225(2)
Principle 3: Set the Management Strategy
227(1)
Principle 4: Create an Achievement-Based Roadmap
228(2)
Principle 5: Understand the Solution and Its Scope
230(1)
Principle 6: Assess and Estimate the Work to Be Done
231(3)
Principle 7: Secure Agreement on the Project Plan(s)
234(4)
Principle 8: Facilitate the Execution of the Plan(s)
238(3)
Principle 9: Iteratively Evolve and Challenge the Plan(s)
241(1)
Summary
242(1)
Evolution and Phase Planning
243(48)
What Happens Inside an Evolution?
244(14)
Balancing Breadth and Depth Across the Phases
244(2)
The Type of Release Produced Varies by Phase
246(2)
Effort and Schedule Across the Phases
248(3)
Iteration Duration and Frequency
251(5)
Forces That Add Iterations and Extend Phases
256(1)
Staying on Schedule
257(1)
Planning an Evolution
258(17)
Bootstrapping the Evolution Plan
259(3)
Evolution Iteration Patterns
262(9)
Evolving the Evolution Plan
271(4)
Working with the Disciplines and Artifacts
275(7)
Estimating and Work Breakdown Structures
282(6)
Estimating Effort
283(2)
Staffing Levels and Skill Sets
285(3)
Adapting and Revising the Estimates and the Plans
288(1)
Summary
288(3)
Iteration Planning
291(48)
Agreeing on the Iteration Plan
292(21)
Assessing the Current State of Project Risks
293(3)
Agreeing on the Scope of the Iteration
296(11)
Agreeing on the Iteration Evaluation Criteria
307(4)
Pulling It All Together into a Simple Plan
311(2)
Planning the Execution of the Iteration
313(20)
Agreeing upon the Approach to Be Taken
313(2)
Defining Iteration Milestones
315(3)
Agreeing Upon the Work Allocation
318(2)
Agreeing Upon When Assessments Will Take Place
320(1)
Presenting the Detail as Part of the Iteration Plan
321(1)
Patterns for Iteration Planning
322(1)
Iterations in the Inception Phase
322(2)
Iterations in the Elaboration Phase
324(3)
Iterations in the Construction Phase
327(3)
Iterations in the Transition Phase
330(2)
Using the Iteration Planning Patterns
332(1)
Executing the Iteration Plan
333(4)
Planning the Iteration
334(1)
Leading the Team
334(1)
Protecting the Team
335(1)
Adjusting the Plans
336(1)
Monitoring and Assessing the Iteration
336(1)
Summary
337(2)
Iteration, Phase, and Project Assessments
339(54)
Assessing Iterations
341(16)
Assessing ``In Flight''
342(3)
The Assessment Process
345(5)
Assessing from Different Perspectives
350(5)
Planning the Iteration Assessment
355(2)
Concluding an Iteration
357(13)
Measurement and Analysis
357(4)
Conducting the Iteration Acceptance Review and Recording the Results of the Iteration
361(3)
Common Iteration Problems
364(5)
Acting On the Iteration Assessment Results
369(1)
Assessing Phases
370(16)
The Phase Assessment Process
372(2)
Planning a Phase Assessment
374(2)
Assessing the Inception Phase
376(2)
Assessing the Elaboration Phase
378(1)
Assessing the Construction Phase
379(3)
Assessing the Transition Phase
382(2)
Concluding a Phase
384(2)
Project Assessments
386(4)
The Project Assessment Process
387(1)
Handling Exceptions
388(1)
Providing Additional Management Control Points
388(1)
Post-Project Reviews
388(2)
Reviewing the Overall Project
390(1)
Summary
390(3)
A Scalable Approach to Managing Iterative Projects
393(36)
Managing Small Projects
394(2)
How Small Is Small?
396(1)
Scaling Up the Project
397(15)
The ``Core Architecture Team'' Pattern
398(3)
The ``Core Project'' Pattern
401(2)
The ``Control Project'' Pattern
403(9)
Delivering Incremental Business Value
412(10)
Staged Delivery of Business Value
412(3)
Aligning Stages and Evolutions
415(2)
Handling Sequential and Parallel Evolutions
417(3)
Assessing Stages
420(2)
Projects and Programs
422(5)
Organizing Programs Using Stages
423(4)
The Important Role of Architecture
427(1)
Summary
427(2)
Getting Started with Iterative Project Management
429(26)
Embarking on Your First Iterative Project
430(13)
Why Iterate?
430(2)
Potential Barriers to the Adoption of Iterative Practices
432(3)
Communicating the Goals of Change
435(2)
Determining the Pace of Change
437(1)
Dealing with Skepticism
437(1)
Starting with Just Iterative Development
438(2)
Bootstrapping an Iterative Project
440(3)
Maintaining Momentum
443(1)
Adopting an Iterative Approach Iteratively
443(10)
Understanding Where to Start
444(1)
Improving Practices Iteratively
445(3)
Learning by Doing
448(2)
The Role of Coaching
450(1)
Using the Iteration Plan to Provide a Roadmap for Change
451(2)
Conclusion
453(2)
PART III APPENDICES
455(2)
Appendix A A Brief Introduction to Use-Case Driven Development
457(24)
Use Cases and the Requirements Discipline
458(7)
Use Cases, Development, and Testing
465(8)
Use Cases and Unified Process Lifecycle
473(6)
Summary
479(2)
Appendix B Outlines, Templates, and Checklists
481(60)
Template Role Definitions
482(8)
Overall Project Manager
484(2)
Development Lead
486(2)
Iteration Lead
488(2)
Outline Plan and Assessment Documents
490(38)
Overall Project Plan---Outline
492(12)
Development Plan---Outline
504(8)
Iteration Plan---Outline
512(7)
Iteration Assessment---Outline
519(5)
Project / Phase Assessment---Outline
524(4)
Checklists
528(12)
Iteration Assessment
529(2)
Generic Phase Checklist
531(1)
Inception Phase Checklist
532(2)
Elaboration Phase Checklist
534(2)
Construction Phase Checklist
536(2)
Transition Phase Checklist
538(2)
Project and Stage Assessment
540(1)
Summary
540(1)
Appendix C Examples
541(60)
About This Example
543(2)
About the Sample Documents
545(1)
ACME Super ATM Product Development
546(1)
Overall Project Plan Version 1.0
546(21)
ACME Super ATM Product Development
567(1)
ACME Super ATM Evolution 1: A Next-GenerationVending Platform
567(1)
Development Plan Version 1.0
567(16)
ACME Super ATM Product Development
583(1)
ACME Super ATM Evolution 1 Iteration E1---Demonstrate Cash Withdrawal
583(1)
Iteration Plan Version 1.0
583(14)
ACME Super ATM Product Development
597(1)
ACME Super ATM Evolution 1 Iteration E1---Demonstrate Cash Withdrawal
597(1)
Iteration Assessment Version 1.0
597(4)
Index 601

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

Preface Preface "No plan survives contact with the enemy." --Field Marshall Helmuth von Moltke, 1800-1891 1 If we could plan perfectly, if nothing out of the ordinary ever occurred, if things always went as planned, there would be no need for iterative development. Iterative development is founded on the recognition that we need an approach that enables us to make progress in the face of change, or perhaps in spite of change. Iterative development is basically a dynamic planning and management approach that incorporates, even seeks out, new information to manage risks and deliver incremental value continuously throughout the project. Iterative development is not particularly new. It has been around for a long time, and it has probably evolved independently a number of times. Because it tends to focus on situational responses, it has not tended to be well documented, and for this reason it has appeared to be ad hoc. Our goal with this book is to change that--to provide a systematic introduction to managing iterative development that you can apply to your own projects. At the core of the iterative approach is the explicit management of risk as the guiding principle behind the project management approach. The project is divided up into a series of iterations, each of which is directed at mitigating a set of risks by implementing scenarios that will force the confrontation and mastery of the risks. Our goal is to take these concepts and breathe life into them by bringing them down to ground level. We aim to present a simple, straightforward, and practical approach to organizing, estimating, staffing, and managing the project, but one that can be applied to very small projects and yet be scaled up to very large programs. In doing this we aim to promote a pragmatic approach that attacks the problem of obtaining results in a predictable, repeatable, non-chaotic way. Our experience is based on helping many companies adopt iterative development using the IBM Rational Unified Process (RUP), 2 but the techniques presented here are not only applicable to Unified Process 3 projects; they represent a general approach to any iterative software development effort. They are equally useful when managing an iterative project using Extreme Programming, 4 Microsoft Solution Framework for Agile Software Development, 5 or any other agile or iterative software development process. This book is focused on making the techniques of managing iterative development understandable and accessible to anyone with a basic background in managing software projects. It strives to provide you with the practical guidance you need to start managing your iterative and incremental projects in a controlled, agile, and disciplined fashion. The Challenge of Managing Software Development Projects Managing software development projects is challenging: Responding to a rapidly changing business and technological environment means that teams are always pushing the limits of the possible. This pressure to deliver results is compounded by the fact that their are never enough of the right people with the right skills; the technology is evolving too fast. Yet teams must respond and succeed, for the stakes are very high. Almost everything done in the business world today requires software, so the success of the business often rests on the success of some team developing a solution that consists of a lot of software. Software development projects must be able to respond with speed and agility to rapid and incessant change in both the business requirements and the implementation technology. Agility in software development is essentia

Rewards Program