f7cb8d3ad3d3edde9094600ae4b71c9e.ppt
- Количество слайдов: 36
® IBM Software Group PRJ 480 Mastering the Management of Iterative Development v 2 Module 1: Iterative Development © 2006 IBM Corporation
Module 1 Objectives Understand iterative development and its benefits by: 4 Understanding terms related to iterative development. 4 Becoming familiar with the main principles of iterative development, and issues related to its implementation. 4 Understanding why the project focus needs to change during a project lifecycle. 4 Introducing the software economics formula. 4 Discussing and recording the main reasons some projects are successful. 1 -2
Discussion: Project Success § Think of a successful project that you participated in: 4 Were all the initial specifications met? 4 Was the quality perfect? 4 Was it completed within cost and time commitments? 4 What made it a success? § How do you define project success? 1 -3
Key Principles for Business-Driven Development Adapt The Process A B C D Balance Competing Stakeholder Priorities Collaborate Across Teams Demonstrate Value Iteratively E Elevate Level Of Abstraction F Focus Continuously On Quality 1 -4
Definition of Iterative Development Iterative development: steering a project by using periodic objective assessments, and re-planning based on those assessments. Good iterative development means: 4 Addressing risks early 4 Using an architecture-driven approach 4 Measuring objectively 1 -5
Contrasting Traditional and Iterative Processes Waterfall Process Requirements Analysis Design Code and Unit Test Subsystem Integration Iterative Process System Test § Requirements-driven and mostly custom development § Architecture-driven and component-based § Late risk resolution § Early risk resolution § Diseconomy of scale § Economy of scale 1 -6
Stages At a high level, the iterative process is viewed in two stages: Engineering stage 4 Driven by less predictable, smaller teams doing mainly design and synthesis activities Production stage 4 Driven by more predictable, larger teams doing mainly construction, test, and deployment activities 1 -7
Differences in Emphasis in Stages Lifecycle Aspect Engineering Stage Production Stage Risk Reduction Schedule, technical feasibility Cost Products Architecture baseline Product release baseline Assessment Demonstration, inspection, analysis Testing Economics Resolving diseconomies of scale Exploiting economies of scale Management Flexible Predictable 1 -8
Iterative Lifecycle Engineering Stage Inception Production Stage Elaboration Construction Transition time In the iterative lifecycle: 4 Each phase is named to depict the goal of the project at that point in time. 4 Each phase has a different emphasis, and includes activities in varying proportions. 1 -9
Phase Objectives Inception Elaboration Construction Transition time Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release Milestone § Inception: To achieve concurrence among all stakeholders on the lifecycle objectives for the project § Elaboration: Start coding the product to demonstrate that the baselined architecture provides a stable basis for the development efforts in Construction § Construction: To complete the development of the product § Transition: To ensure the product is available for its end users 1 -10
Iterations Within Phases Inception Preliminary Iteration Elaboration Architecture Iteration Construction Architecture Iteration Development Iteration Transition Iteration Executable Releases § Iteration: A distinct sequence of tasks within a time box based on an established plan and evaluation criteria, resulting in an executable release (internal or external) § Release: a stable, complete, and executable version of a system 1 -11
Activities Within an Iteration One Iteration 1 -12
Iterative Development Produces Executables Requirements Analysis & Design Planning Implementation Management Environment Test Evaluation Deployment Each iteration results in an executable release 1 -13
Application of the Iterative Lifecycle § Produce releases in each iteration 4 Internal and external releases § Identify the scenarios to be completed or reworked based on the highest remaining project risks § Assign clear tasks to the development team to carry out this release 4 Establish appropriate review points and milestones § Force closure of the iteration by integrating and releasing the executable release 1 -14
Successive Refinement § Each consecutive release should be marked by: 4 Growth of capability, as measured by the implementation of additional functionality during each iteration 4 Greater depth, as measured by a more complete implementation of the product 4 Greater stability, as measured by a reduction in the number of changes to the product 1 -15
An Iteration Involves: § The completion of work planned for that iteration § An assessment of the project baseline at the end of the iteration § Planning for Next Iteration 1 -16
Iteration Length and Number of Iterations § Length varies according to the objective. § Iteration length may vary by phase. § Typically, Elaboration iterations are longer than Construction iterations. § Within a phase, iterations are generally the same length. Complexity Total # of iterations 3 [I, E, C, T] Typical 6 [1, 2, 2, 1] High 9 [1, 2, 4, 2] Very High 10 [2, 3, 3, 2] Low 1 -17 [0, 1, 1, 1]
Conditions that Increase the Number of Iterations Inception § Working with new functionality § Unknown business environment § Highly volatile scope § Make-buy decisions Construction § Lots of code to write and verify § New technology or development tools Elaboration § Working with new system environment (new architectural features) § Untested architectural elements § Need for system prototypes Transition § Need for alphas and betas § Conversions of customer base § Incremental delivery to customers 1 -18
The First Time You Iterate Inception Preliminary Iteration Elaboration Architecture Iteration Construction Development Iteration Transition Iteration Consider that § Teams new to an iterative approach are usually overly-optimistic § The first iteration is usually the hardest 4 It requires participation and consensus from the project leaders 4 It must resolve tool integration issues, team-building issues, staffing issues, and so on. § To ensure success, aim for a modest amount of functionality in the first iteration. Otherwise: 4 The completion of the first iteration will be delayed 4 There will be pressure to reduce the number of iterations, causing the loss of iterative approach benefits 1 -19
Iteration Strategies PROBLEM Wide and Shallow 4 Analyze entire domain § All use cases fleshed out 4 Define broad architecture PROBLEM Narrow and Deep 4 One slice of the domain is analyzed thoroughly 4 Development of one slice is performed PROBLEM Elaboration Hybrid 4 A mixture of the strategies Construction Transition 1 -20
Benefits of Iterative Development § Manages risk 4 Iterative Development attacks highest project risks first § Commits resources on a proven plan § Improves software economics § Provides a framework in which adjustments can be made as the project progresses § Progress is measured objectively The following slides provide details on these benefits. 1 -21
Definition of Risk: An uncertain event or condition that, if it occurs, has a positive or negative effect on a project’s objectives. 1 -22
Risk Profiles Inception Elaboration Construction – Transition Project Risk Exposure High Iterative Project Risk Profile Low Project Lifecycle 1 -23 Conventional (Waterfall) Project Risk Profile
Common Risks Mitigated by Iterative Development § Iterative development helps mitigate two common risks inherent to any software project. COMMON RISK MITIGATED BY Requirements changes Iterative assessments Iterative product objective adjustments Stakeholder dissatisfaction Iterative stakeholder exposure Iterative stakeholder buy-in 1 -24
Commitment of Resources in Iterative Development The following is an example allocation of resources. Inception Elaboration Construction Transition Effort 5% 20% 65% 10% Time/Schedule 10% 30% 50% 1 -25
Software Economics COCOMO II COST ESTIMATE EQUATION: Effort = (Personnel)(Environment)(Quality) (Size. Process*) *reflects process effectiveness §Factors are not independent §Since the Process exponent is typically greater than 1, there is a diseconomy of scale (that is, greater size causes unit costs to grow. ) 1 -26
Improving Software Economics Effort = (Personnel)(Environment)(Quality) (Size. Process) Factors are not independent § Reduce Size or complexity of application § Improve development Process § Use more skilled Personnel and better teams (not necessarily the same thing) § Improve Environment with tools § Trade-off on Quality Using iterative development can have a favorable impact on the Process exponent. 1 -27
Principal External Stakeholders of a Project Establish Project Vision Marketing/User Manager Executive Manager Establish Project Scope Commit Project Resources System User Commit to Sell or Use the Project’s Results Establish Detailed Specifications 1 -28 Main interfacing roles from the development team: • Project Manager who commits to deliver features within cost and quality specifications. • System Analyst who collects, documents, and supplies project technical specifications.
Discussion: Stakeholders § Identify stakeholders for your project and explain how they should be kept involved for the duration of the project. 1 -29
Steering a Project to Completion Iterative development enables project teams to: w Repeatedly assess the current situation. w Adjust the remaining path based on renewed objectives. 1 -30
Project Navigation END: Within stakeholder satisfaction space (that is, they like it, it’s within cost and quality parameters, and its features solve customer problems or better position the business). START: General idea of direction, but need to steer with each iteration and with stakeholder involvement. E-end START C-end I-end 1 -31 * Stakeholder involvement T-end
The PMI’s Project Management Body Of Knowledge PMBOK® Knowledge Area RUP® Discipline Project Human Resource Management Project Management Requirements Deployment Configuration & Change Management Project Management Requirements Configuration & Change Management Project Management Configuration & Change Management Project Communications Management Project Risk Management Project Procurement Management Project Management Requirements Project Integration Management Project Scope Management Project Time Management Project Cost Management Project Quality Management From Software Project Management -- A Mapping between RUP and the PMBOK, a IBM whitepaper by Serge Charbonneau 1 -32
Review: Iterative Development Recommendations § § § Resolve major risks before making large investments Enable early user feedback Make testing and integration continuous Give focus through short-term objective milestones Deploy partial implementations Iteration 1 Iteration 2 Iteration 3 BM R A&D I T D CCM PM E T I M E 1 -33
Module 1 Review § Benefits of Iterative Development: 4 Manages risk 4 Commits resources on a proven plan 4 Improves software economics 4 Provides a framework in which adjustments can be made as the project progresses 4 Progress is measured objectively § The activities involved in iterative development are broken down into the: 4 Engineering stage, composed of Inception and Elaboration phases 4 Production stage, composed of Construction and Transition phases § Each phase is measured by a milestone and has an overriding objective: 4 Inception -- Achieve stakeholder concurrence on project milestones and objectives. 4 Elaboration -- Start product development, baseline architecture, and agree on refined project scope 4 Construction -- Complete product development. 4 Transition -- Ensure availability for end-users. 1 -34
Module 1 Review (Cont. ) § The Iterative Project Manager steers the project through continuous planning and assessment at agreed-upon review points. § Good iterative development involves: 4 Addressing risks and architectural concerns early, and using objective measurements § Using a better process in your project can help reduce overall effort. 1 -35
1 -36
f7cb8d3ad3d3edde9094600ae4b71c9e.ppt