520 likes | 537 Views
Learn the principles of iterative and incremental development, team dynamics, and project success factors in software development projects. Discuss risks, increments, and the importance of iteration planning. Explore the concept of iteration in self-contained mini-projects with clear objectives and measurable evaluation criteria.
E N D
Iterative Project Management Module 1 - Iterative and Incremental Development
Objectives • Understand what iterative and incremental development is • Understand the different perspectives and bounds of iteration • Understand what makes an iterative project successful • Introduce the team dynamics of an iterative project Iterative Project Management / 01 - Iterative and Incremental Development
Discussion • What does iterative and incremental development mean to you? • Discuss Iterative Project Management / 01 - Iterative and Incremental Development
Definitions • Iterate vt • to utter or do repeatedly • iteration n. – iterative adj • Increment n • 1. amount of increase • 2. a becoming greater or larger; increase • incremental adj How does all this apply to a software development project?? How does a project team work iteratively while incrementally developing a product? Source: Collins Modern English Dictionary Iterative Project Management / 01 - Iterative and Incremental Development
Definition: Iterative and Incremental Development • Iterative and incremental development • A style of development that involves the iterative application of a set of activities to incrementally produce and refine an effective solution • It is iterative in that it involves the successive refinement of the solution definition and implementation by the repetitive application of the core development activities • It is incremental in that each pass through the iterative cycle grows the understanding of the problem and the capability offered by the solution Iterative Project Management / 01 - Iterative and Incremental Development
More on Iteration and Increment What does all this mean? • Can we have iterative development without it being incremental?? • If so, how so? • Discuss. • How does risk play into this? • What’s the ‘increment?’ • Do we need both? If so, why? If not, why not? • Let’s look at Risk a bit and realize that this is a key component in an iteration and in iteration planning… Iterative Project Management / 01 - Iterative and Incremental Development
Risk – All Kinds of Risks • Environmental • War zone; satellite; earthquake region; weather regions • Technical • Team expertise; available development environment; team size; • Personnel • Death; pregnancy; illness; vacations; accidents • Financial • Cost of project; due dates feasible? • Competition • Other competitors offering same services? How does our differ? • Process models / management expertise…… Iterative Project Management / 01 - Iterative and Incremental Development
Develop Projects with Considerable Uncertainty and Risk • Recognize we develop software in a midst of considerable uncertainty. • Recognize that when projects start there are risks that are really real. Some may be small; some large. • Some can totally kill a project, but are very unlikely to occur; some are small, but are likely to occur – but may / may not seriously degrade the software if not mitigated… and more!! • Risk in capturing all the business rules: While there is a vision for the product, there is a great deal of uncertainty in really capturing all the business rules, that provided the real value to the customer. • Risk in acknowledging change, assessing it, and, if necessary, incorporating change into the development process while all the while incrementally providing a product with increased value, while remaining within cost parameters and on schedule. • So, we consider iterative development… Iterative Project Management / 01 - Iterative and Incremental Development
Definition: Iteration Iteration: A self-contained mini-project, with a well-definedresult, that results in a stable, integrated and tested release • An iteration consists of • a distinct set of activities • conducted according to a dedicated (iteration) plan • With a set of objective, measurableevaluation criteria • That provides businessvalue • The release may be either an internal release or an external release • Here – on page 6. a mini project? Iterative Project Management / 01 - Iterative and Incremental Development
Iteration: A Self-Contained Mini-Project … • Each iteration has: • Clear objectives and activities • Agreed upon by all; unified efforts of all • Measurable evaluation criteria • Must be ‘measurable;’ and evaluated objectively • A dedicated team • All dedicated to achieving the objectives of the iteration. Focused! • A schedule • Mgmt must agree to the schedule and note how it impacts overall development plan. • Iteration schedule may be simple: start / end dates, or complicated – detailed task descriptions • Produce a unique version of the product • Is objectively assessed against iteration’s objectives. • Continuously assessed during iteration; summarized at end. • Used to control the project. Whoassesses? • Must have a Well Defined Result!! More Iterative Project Management / 01 - Iterative and Incremental Development
Iterations • In more detail: Iterative Project Management / 01 - Iterative and Incremental Development
Iteration has a Distinct Set of Activities (not the Overall Project Plan) • Thus, it must have specific plan that embodies the unique set of activities to produce the well-defined result. • Plan may vary in detail: • High risk more detailed planning (when might this occur?) • Team size may need to carefully coordinate • Experience Level no substitute for this; New people? Bring them along • Can leave details to development team • Dependencies on team member contribution may necessitate more detailed planning. • Iteration Plan must nevertheless: • Establish the objectives, and • Evaluate resources, and • Develop the schedule Iterative Project Management / 01 - Iterative and Incremental Development
Iteration has a Distinct Set of Activities – pg. 2 • Number of Plans to work with? • One for current iteration; • One for evolving next iteration plan • Recognize that iteration plans must fitwithin context of overall project plan • Overall project plan is also developed iteratively and adapted to the lessons learned from the execution of the development iterations. • Project Plan – usually high level; Details relegated to iteration plans. Iterative Project Management / 01 - Iterative and Incremental Development
Iteration Results in an ExecutableRelease • Very important to understand this! • We spoke of a well-defined result, well: • Release can be both internal and external but must be something measurable, tangible, • Clearly advances the project: • A real incrementreduces risk and builds capability! • Something of value is produced. • Examples (a few) • Prototype – that demonstrates a specific capability • ‘Internal Release’ where feedback from customers is needed • ‘External Release’ where definite businessvalue is given to customers • These are considered well-defined results! There are others! Iterative Project Management / 01 - Iterative and Incremental Development
…the sequence of releases… • A release is a ‘stable and executable version of a system,” or “…stable, integrated and tested, partially complete system,” and more… • A sequence of releases does the following: • each with definite value, • measurable outputs, etc. that • providesmanagementregular, technical visibility as to where the state of the project lies and • Assures management that the project is moving incrementally toward completion. • Particularly critical to management! Iterative Project Management / 01 - Iterative and Incremental Development
Releases - more • Releases – common misconception – need not be ‘executable’ in the developer sense. • Rather, they must provide • clearreduction of risk, • higher (improved) quality, and • incrementallymorefunctionality – • iteration after iteration.. • Each iteration provides real business value culminating in the final delivery to the customer. Iterative Project Management / 01 - Iterative and Incremental Development
Iteration: Resulting in a Release The releases provide regular ‘technical visibility points’. essential to management! Iterative Project Management / 01 - Iterative and Incremental Development
Benefits of Iterative Development - Summary • You need to be able to discuss / explain how iterative development: • Improves quality • Mitigates risk early • Evaluates quality early • Incorporates continuous integration • Allows early deployment • Allows for change • Increases a project’s chance of success • Some of this is discussed ahead and in Chapter 2. Iterative Project Management / 01 - Iterative and Incremental Development
The Iterative Experience • “Iterative development …[is] a team-based approach to problem solving and solution development.” (p. 12) • Important to recognize that we have • A Development team • A Customer team • A Management team. • All dance to different drummers • All have different perspectives! Iterative Project Management / 01 - Iterative and Incremental Development
Perspectives of Some Stakeholders • Need all of these!! • All these stakeholders view the iterative process a bit differently. • These stakeholders, with their different perspectives, must work together if the final product is to provide real business value to the customer on time and within budget. • Look at these perspectives carefully… Iterative Project Management / 01 - Iterative and Incremental Development
1. The Developer Team Perspective • (Note these stakeholders view ‘iteration’ and ‘increment’ a bit differently too…) Iterative Project Management / 01 - Iterative and Incremental Development
1. Iterating: The Developer Team Perspective Note: Developer ‘assumes’ the specs / change notices are ‘provided.’ Specification or change request Note the traditional activities developers are concerned with… Analysis Design Implementation The developer’s mindset : Usually not concerned with ROI, benefits realization, and risk management. Developers select sets of requirements and change requests from a backlog: analyze them, design solutions, implement, test, and integrate. Developers work to accommodate functionality that meets / exceeds requirements on schedule Tested “Component”for inclusion ina release Note: ‘requirements’ considered a Customer Team responsibility. Iterative Project Management / 01 - Iterative and Incremental Development
Progress By Daily Build 40 35 30 25 Product 20 New Work Backlog 15 Product Backlog 10 Work Done 5 0 1 2 3 4 5 6 7 8 9 10 Day Incrementally: The Developer’s Perspective Life is simple for individual developer; create their own ‘silo.’ Often okay for small to medium projects. Developer-centric view… Developer View: Team leader needs to integrate changes / work into a release that meets shared responsibilities Team leader looks at time-boxed activities a new release. Each day items are taken from the backlog.Each day the build implements more items Iterative Project Management / 01 - Iterative and Incremental Development
Iterating: The Development Team’s Perspective Again, often releases are internal – inappropriate for release. May/may not be suitable for customer feedback – depending on nature of the release. Notice: constant evaluation and assessment! Build For Some Requirements / Change Requests Build For Some More Requirements / Change Requests Build For Some More Requirements / Change Requests Feedback Feedback RELEASE TO CUSTOMERS release An Iteration typically 2 – 6 weeks in length Feedback from iteration n leads to refinement and adaptation of the requirements and design in iteration n + 1 Must fully understand objectives, etc. when starting an iteration. Source: Adapted from Agile and Iterative Development, A Manager’s Guide by Craig Larman, Addison Wesley, 2004 Iterative Project Management / 01 - Iterative and Incremental Development
100% Development Progress(% complete) 0% Iteration 1 Iteration 2 Iteration 3 Iteration 4 Incrementally: The Development Team’s Perspective How complete is the integrated working releases produced by the development teams? To developer, seems like little projects: design, code, test, and integrate. To teamleader, it is much more a matter of integration! Only via successful Integration/verification can the incremental nature of project be tracked! May be internal external release release Note the headers on these slides: iteration …. Increment …. Iteration …. Increment… Increments become ‘base-lined.’ Iterative Project Management / 01 - Iterative and Incremental Development
Incrementally: The Development Team’s Perspective - Planning • Planning is critical to support releases. • Minimize interdependencies of individual developers as much as possible. • (can accommodate much of this via design – subsystems…) • Developers must agree on their interdependencies! • Components; interfaces; agreements between developers • Planning is very difficult: • Dependencies between components must be fully understood in order to develop any kind of reasonable plan (schedule) • Significant effort is needed for planning and, thus, estimating. • We will return later (this chapter) to this topic • Suffice it to say at this time that planning and estimating are essential to keep a project on track once it has begun. • Customers funding the project demand nothing less. Iterative Project Management / 01 - Iterative and Incremental Development
The Customer Team Perspectives • The customer perspective - general • The business analysts (BAs) • The end-user • The business leader (sponsor) Iterative Project Management / 01 - Iterative and Incremental Development
Iterating: The Customer Team Perspective • Do we only want a technical approach? If we only undertake / advocate iterative / incremental development for the developmentteam, then we are relegating ‘this’ procedure only to development – a technical approach – • Need the customer and the managementperspective – necessary to get the full power of incremental/iterative development! • Iterative/incremental participation from the Customer Fundamentally changes the way we • specify, • pay for, and • realize business benefit from a software solution. (paraphrased) • We don’t develop systems for developers. We provide businessresults and business value! Thus, customer rep: BAs, end-users, and sponsors must participate in this all encompassing process. Iterative Project Management / 01 - Iterative and Incremental Development
Iterating: The Customer Team Representative • The real, profound value the Customer representative brings is how they can interact with the developers! • Customer rep feedback: essentialas increments produced. • Customers: evaluate, make changes, if needed, and provide inputs on future directions / iterations / releases! • By observing some degree of working functionality in each release, entire flavor of development can be positively influenced. • Can assure business needs are being met and progressing and developers gain better understanding of project. The demonstration of the capability of each release allows the customers to provide objective feedback leading to the refinement and adaptation of the next release’s requirements. Note: objective feedback is via Customer and notDeveloper!! Iterative Project Management / 01 - Iterative and Incremental Development
Incrementally: The Customer’s Perspective SO, what does all this do from Customer’s perspective? Incrementally increases: • Confidence in the teams ability to deliver – they’ve ‘worked’ together • Understanding of the project as a whole – everyone learns! • Convergence on an acceptable business solution – gradually evolving • Convergence on an acceptable plan – plans iterate; map to overall • Reality to the customer’s expectations – feel good! • And typically these are espoused to senior level management… • This is the part where the developers (project manager) must convince senior level management (old school) that the development is supporting the overall plan. The rapid cycle of development, demonstration and assessment has many benefits for the development team and its customers. Iterative Project Management / 01 - Iterative and Incremental Development
2A. Iterating: The BusinessAnalyst’s Perspective2A Major Controversy: Should requirements be part of the iterative process? Position: only when all team members participate are the interests of the business assured. So, ‘requirements’ must be an integralpart of each iteration! BA Perspective: Iteration objectives or change requests Requirements Analysis Design Implementation Note the addition of Requirements activity as part of the iteration’s activities…and System Test. System Test Tested Release Iterative Project Management / 01 - Iterative and Incremental Development
Iterating: Business Analyst’s Perspective • FACTS AND HEURISTICS: • Often specify requirements that will be never implemented and features ‘for the next version’ • Often specify features that exceed budget / time / etc. • Often spend so very much time developing requirements for features ‘down the line’ in this development when realdevelopment could start! • Often specify features – many of which are NOT of equal importance! • Takes lots of time and brainpower and effort to develop ‘requirements’. • Far better: find a minimumset of requirements needed to solve the business problem. • More requirements are NOT BETTER! • Many projects have been ruined by trying to implement too many features! Iterative Project Management / 01 - Iterative and Incremental Development
Customer Inspection and Acceptance Iterating: More on the BA’s Perspective • DO NOT NEED all requirements specified to start work! • Only need features for the currentiteration. • For a given iteration, requirements must be fully known • This iteration will produce a partial solution / partial working set that can be evaluated objectively, as discussed. Demonstration ofRelease Build For Some Requirements / Change Requests Build For Some More Requirements / Change Requests Iterative Project Management / 01 - Iterative and Incremental Development
2B. The User Perspective (part of Customer Perspective) • These are the real ‘users’ of the systems – not the BAs. The users! • Successful projects MUST involve the users in key parts of many iterations. • The functionality and the interface – usability, learnability, utility, etc. must be clear to the user! • To the end-user, the Interface IS the system! • When iterations provide partial solutions or interfaces leading to detailed work, the user must be brought in to provide objective evaluation / feedback on the iteration! Iterative Project Management / 01 - Iterative and Incremental Development
2C.The Business Leader (Sponsor) – part of Customer Perspective • Must provide support for incrementalcommitment of resources needed to balance investmentin project against project risk and project’s chances of success. • Funding might be limited to a current iteration. • This is fine. • If risk is not mitigated or if progress is not forthcoming, then adjustments can be made or project scrapped before huge expenditures of resources are brought to bear. • The iterative approach brings forth increased ability to predict, reduced time to market, higher quality solutions, increased project agility, and increased productivity. • Great test question. How does this approach to this?? Iterative Project Management / 01 - Iterative and Incremental Development
3. The Management Team’s Perspective • Management Team - general • The Project Manager • The Quality-Assurance Manger Iterative Project Management / 01 - Iterative and Incremental Development
3. The Management Team’s Perspective • Development Team Perspective and Customer Team Perspectives: • discussed these • We stressed both the necessity and super advantages of the Customer Team’s perspective and participation in the iterative process. • What about the Management Team? • I view this as the responsible agency for development – high level responsibilities. • What is the role of the Management Team? • How does the management team participation benefit the project? • Need iterationsmappedout in order to know • where we are going and (provide visibility; assurance; learning; increasing confidence for delivery; incremental value….) • when we will arrive, • estimates of resources needed (continued funding; people; many support items (planning for training, transition, etc.) and ‘when’ and • potentialcosts. • We cannot expect customers and sponsors to expend resources with no assurance of a plan to deliver the business solution! Iterative Project Management / 01 - Iterative and Incremental Development
Management team perspective: • Management must ensure that (besides the obvious) we are solving the ‘right’ problem,’ • Management must address the reality of availableresources to support the project; • Management is concerned with, • “Can the business value be really delivered on time, within budget and with identified resources?” • Is the development effort progressing toward our goal of a viable business solution? Iterative Project Management / 01 - Iterative and Incremental Development
Who is the management team? • Where housed? • Who is on the team? Iterative Project Management / 01 - Iterative and Incremental Development
Requirements Requirements Requirements Analysis Analysis Analysis Design Design Design Implementation Implementation Implementation System Test System Test System Test 3A. Iterating: The Project Manager’s Perspective Create TestedBuild toMeet a DefinedSet of Objectives AssessFeedback Create Tested Build toMeet Another Defined Set of Objectives Create Tested Build toMeet Another Defined Set of Objectives Demonstration ofRelease Demonstration ofRelease RELEASE TO CUSTOMERS Customer Inspection and Acceptance Customer Inspection and Acceptance To the Project Manager each iteration appears as a small project producing a unique product (the release) to meet a set of clearly defined objectives. INCREMENTAL, DEMONSTRATRABLE VALUE VISIBLE TO HIGHEST LEVELS! Iterative Project Management / 01 - Iterative and Incremental Development
Iterating: The Project Manager’s Perspective Each iteration is treated as a small, self-contained project (though temporary – typically 4-6 weeks; some say 2-6 weeks) containing all disciplines resulting in a release of a ‘product’ meeting a specific shared set of objectives. (~book) Each iteration goes through the management cycle ofAgree, Execute and Assess. Iterative Project Management / 01 - Iterative and Incremental Development
Agree, Execute, and Assess What?? • So, what does ‘agree, execute, and assess’ really mean? • Agree on: • Objectives for the iteration • Evaluation criteria and assessment for the iteration • A plan on exactly how the team will achieve the objectives • Execute the plan • Assess • Results as compared to the objectives and evaluation criteria • Overall impact of iteration’s result on product as a whole • Lock in and start next iteration • From the management perspective, these are the components of each iteration that repeat themselves over and over… • Must facilitate the iteration so that it contributes to a succession of successful integrations. Iterative Project Management / 01 - Iterative and Incremental Development
Measurement of Progress • In older development strategies, progress was measured (very flaw-filled I might add) – via completion of work documents: often models, specs, documentation, incidence of reviews (technical / managerial), and code. • Now, in the iterative model, we measure progress in terms of successfully-completed scenarios (developed, measured, tested, verified and integrated). • Each iteration must incrementally add to viable business solution. • No longer focus subjectively on documentation developed; rather, we focus on work products / software produced! • With objective assessment undertaken (during and) at the end of each iteration, the project manager is more able to control the project as it incrementally evolves. Iterative Project Management / 01 - Iterative and Incremental Development
Incrementally: The Project Manager’s Perspective These are criteria the project manager uses: coded, measured, tested, verified, and integrated. 100% Development Progress(% complete) 0% Iteration 1 Iteration 2 Iteration 3 Iteration 4 Key: Coded Tested Tested & Passed Iterative Project Management / 01 - Iterative and Incremental Development
3B. Iterating: The Quality Manager’s Perspective • Regular iteration assessments • Provide insight and lessons learned to feed subsequent iterations… • Affects changes / modifications that may arise. • Quality managers deal closely with controlling ‘change.’ • Controlling, mitigating, prioritizing, acknowledging… • This perspective is the one that is most difficult! But must be done! • Continuous integration and test • Increased amounts of testing as increments are added. • Includes regression testing of previous iterations • May well result in midcourse corrections – fine! • Objective measurements • Management and quality indicators – are we progressing? • Trends across iterations With the iterative approach it is very difficult to hide the truth for very long. Iterative Project Management / 01 - Iterative and Incremental Development
Incrementally: The Quality Manager’s Perspective The Test workload increases, naturally, incrementally iteration by iteration Iterative Project Management / 01 - Iterative and Incremental Development
Some Models Iterative Project Management / 01 - Iterative and Incremental Development
ModelsUsedtoDrive Iteration Solution Development • Waterfall – Iterative Solution • All requirements specified up front. • Clearly, some requirements will never be implemented; • All done / base-lined at one time; • over specified, provides unrealistic expectations; result: disappointment • Wastes tremendous time. Could say so much more… • Development team is ready to develop and iterate, but management not convinced of comprehensive iterative approach. • Not sure how progress will be measured? What is it that will make management feel good?? • Author: creates; functional ‘silos” based on the type of work each does… Iterative Project Management / 01 - Iterative and Incremental Development
Models: Used to Drive Iteration Solution Development • Forward Loaded Requirements; Backwards-Loaded Development • This is a bit more iterative. • Can be done with staggered sets of requirements if • Some sets of requirements are stable up front or • Some requirements have not changed in a redesign effort. • Thus, there is an initial ‘set’ of requirements to get things going; • After and initial thrust, requirements are parts of each iteration. • This is an improvement. Iterative Project Management / 01 - Iterative and Incremental Development
Models: Used to Drive Iteration Solution Development • Requirements Pipeline • Staggered requirements. • Requirements developed. • Next: develop requirements for the next ‘phase’ whiledeveloping functionality for the initial set of requirements. • So, ‘activities’ in iteration are NOT all pertinent to ‘current’ iteration. • ZigZag approach – (I definitely don’t like this one) • Different team members working on different ‘iterations.’ • Do they overlap? • Team is working on more than one iteration. So, how to interface?? Iterative Project Management / 01 - Iterative and Incremental Development