Iterative Development & SDLC AN OVERVIEW By Ahmad K. Shuja IDLC, MAp, Waterfall & Iterative – Relationships Overview Iterative MAp Business Weak in Goals Mapping Business Analysis Goals with IT IDLC / iSDLC System Analysis & Architecture Development SDLC Waterfall SDLC Programs / Projects required to meet business goals identified Software Solution delivered Solution Architecture completed Waterfall Business Goal (An Idea or Problem) Software Solution (Tangible Solution) Goals Model Overview Each program refines goals from its parent program Xxx xxx xx x xx xxx x x Xxx xxx xx x xx xxx x x Xxx xxx xx x xx xxx x x Xxx xxx xx x xx xxx x x Xxx xxx xx x xx xxx x x ISTFI Goals Xxx xxx xx x xx xxx x x Legend Goal Goal refinement within a program Goal refinement between programs Xxx xxx xx x xx xxx x x Xxx xxx xx x xx xxx x x ID&EM End-to-end Goals ER Goals Xxx xxx xx x xx xxx x x PD Goals Xxx xxx xx x xx xxx x x CAAS Goals Xxx xxx xx x xx xxx x x How the Blackbox and Whitebox relate Ports on blackbox become ports on whitebox Other System Port_C Port_A Port_B Note: This is a notional cartoon diagram ID&EM Blackbox Port_C ID&EM Whitebox Assembly Port_D Port_A Prov. / De-Prov. Port_E Port_C Port_B Port_F Entitlement Review Port_G Port_H CAAS Port_J Program Management Q: How do we plan and manage large programs (multi-year) in IDLC, when they are targeted to retire existing systems? Enterprise Level Goal Associated Program to Meet that Goal Target State Current State Migration Plan Business Modeling of the Current State What is the problem that is preventing the enterprise to meet the goal stated above? What sub-goals, if realized, will enable the organization to transition from the current state to the desired state? What programs, sub-programs, and projects need to be undertaken to realize these sub-goals? Sub-Program Other Sub-Programs Core Identity SW Intensive Non-SW Project Project Project Project (IDLC) Projects such as SOA Infrastructure Iterative Development Lifecycle Business Modeling of the desired or target state. What state do we want to achieve where we enable the enterprise to realize the above stated goal? Software Management Software-Intensive Project Project Goals Captured in “Project Charter” & “Software Development & Project Management Plan” Current State Target State What is the current state of the software system (if one exists), upstream and downstream systems that this system needs to integrate with, and the environment where this system will operate? Migration Plan What activities are required to be done to achieve this goal? What resources are required to carry out those activities? What target system and environment are required to ensure that project goals are accomplished? IDLC, MAp, Waterfall & Iterative – Revisiting Iterative MAp Business Goals Analysis IDLC / iSDLC System Analysis & Architecture Development SDLC Waterfall SDLC Programs / Projects required to meet business goals identified Software Solution delivered Solution Architecture completed Waterfall Business Goal (An Idea or Problem) Software Solution (Tangible Solution) Development of IDLC Iterative Development Framework Project Management Best Practices “Rational Unified Process” “PMI PMBOK” Architecture Development Framework Iterative Development Lifecycle Software Development & Management Framework Experience “MAp” One Iteration Represents Single Iteration 2 to 8 weeks period Business Modeling Black Box Architecture Planning Project Management White Box Architecture Implementation Evaluation Test Deployment Each iteration results in an executable “Iteration Build” Each Iteration Converges On Project Goal I1 I2 I3 I4 Business Modeling Business Modeling Business Modeling Business Modeling Black Box Architectur Black Box Architecture Black Box Architecture Black Box Architecture Planning Planning Planning Planning Evaluation Project White Box Project White Box Architecture Project Project White Box Architecture White Box Architecture Management Management Management Management Project Goal Implementat Implementation Evaluation Evaluation Test Deployment Deployment Implementation Evaluation Test IB 1.1 Implementation Test Test IB 1.2 Deployment IB 1.3 Deployment REL 1.0 Changing Focus of IDLC Iterations Over Time Iteration 1 Iteration 2 Business Arch Black Box Arch White Box Arch Imp Deploy Time Iteration 3 Iterative Development & IDLC Definition Elaboration I1 I2 BA I3 BA BB I T D D BB WB I T BA BB WB I T I6 BA BB WB I I5 BA BB WB Validation I4 BA BB WB Creation WB I T D I T D T D D ITERATIONS Time R1 PoC Frame the problem & Agree on the scope Understand the solution & Baseline Project Plan Product sufficiently mature for use IDLC – From WBS To Iteration Plan 1 1 1 1 2 1 2 1 1 1 3 0 2 1 3 0 3. 2 4 3. 3 3 3 4 1 1 23 2 2 4 1 0 3 4 3 3 3 4 0 0 2 Signoff 1 2 3 2 2 3 4 4 3 Signoff 2 1 0 I1 I2 BA BA R1 Initiation 4 Signoff 2 I3 I4 BA BA BB WB WB 0 D WB I T T BB WB I I 4 Signoff Signoff BB BB 3. 4 Signoff 0 2 I T D T D D 2 What Is an Iteration? In an iteration, you walk through all disciplines Iteration: A distinct sequence of activities with a baselined plan and evaluation criteria resulting in a release (internal and external) Definition Phase: Objectives Establish the project’s software scope and boundary conditions, including an operational concept, acceptance criteria, and descriptions of what is and is not intended to be in the product. Discriminate the critical use cases of the system, that is, the primary scenarios of behavior that will drive the system’s functionality and will shape the major design trade-offs. Exhibit, and perhaps demonstrate, at least one candidate architecture against some of the primary scenarios. Estimate the overall cost and schedule for the entire project and provide detailed estimates for the elaboration phase that will immediately follow. Customize the process to meet project-specific needs. Estimate risks (the sources of unpredictability). Definition Phase: Evaluation Criteria Stakeholder concurrence on scope definition and cost / schedule estimates Agreement that the right set of requirements has been captured and that there is a shared understanding of these requirements. Such requirements understanding is achieved by the identification of the primary use cases Agreement that the cost / schedule estimates, priorities, risks, and development process are appropriate Development Case produced (What artifacts need to be produced and at what level of details in order to ensure success?). Milestone accomplished: Lifecycle Objectives Milestone (LOM) IDLC Rel 1.0 – Definition Phase WBS Elements 1 1 1 1 1 1 1 1 1 1 1 1 1 1 I1 I2 I3 I4 BA BA BA BA BB BB BB WB WB WB I I D WB I T T BB I T D T D D Definition Phase – Process Model From Activity to Steps to Iteration Plan Template Definition Phase – Iteration Plan Template Iteration Plan Example Shows goals of an iteration, artifacts produced and evaluation criteria. Iteration Schedule section for Business Modeling Definition Phase Outline of an Iteration Plan Definition Phase Review – Underlying IDLC Principles Attack major risks early and continuously … or they will attack you Ensure alignment of product development with real business problems / goals Ensure that you deliver value to your customer through optimal visibility Stay focused on executable software Accommodate change early in the project Baseline an executable architecture early on Make quality a way of life, not an afterthought Ensure well-defined customer involvement Evolution of SDLC Q: What is the learning curve for a technology team to learn iterative development and apply this effectively on a project? Initial Steps Evolve existing SDLC into iterative methodology - iSDLC Set up the environment with right tools First Phase – Use iSDLC methodology on a pilot project Second Phase – To maximize benefits and ensure greater success, refine & evolve iSDLC to incorporate other industry best practices such as MDA / MAp, Goals Modeling, PMI PMBOK and others. Third Phase – Build iSDLC Knowledge Center and integrate it with end-to-end portfolio management (from Problem Identification to Solution Rollout) for enhanced productivity. Adding Iterations to Waterfall SDLC Q: How can we incorporate some of the benefits of IDLC in our plans without jeopardizing the key milestone(s) dates? iSDLCSDLC Evolution I DEFINITION BRD, FRD, & L1 Each Iteration must have: • Well Defined Goals • Sound Evaluation Criteria DESIGN TDD & L3 CONSTRUCTION Dev Acc Plan, Rel Plan VALIDATION UAT I1 I2 I3 I4 I5 I6 I7 I8 SDLC Phases vs. IDLC Iterations I6 I5 I4 I3 Q: If a project already has 7 phases & an evolvable prototype is being developed as part of Phase I, how is different from IDLC Iterations? I2 REQUIREMENTS BRD & FRD I7 SDLC I8 ANALYSIS & DESIGN TDD CONSTRUCTION Development Test & Release Plans VALIDATION User Acceptance Approval & UAT I9 IMPLEMENTATION Release to Production I1 Q: In iterative development, we would only develop a few components at a time. Having handful of components at a time, won’t let me retire the system until all components are available – in that case, the iterative development yields no benefits compared to SDLC. DEFINITION BRD, FRD, & L1 DESIGN TDD & L3 CONSTRUCTION Dev Acc Plan, Rel Plan VALIDATION UAT IMPLEMENTATION Production Handover DEFINITION R1 BRD, FRD, & L1 DESIGN TDD & L3 CONSTRUCTION Dev Acc Plan, Rel Plan VALIDATION UAT Key benefits of Iterative Approach: • Optimal visibility to customer • Higher quality product? • Effective management of evolving requirements evolve IMPLEMENTATION Production Handover R1 Q: How do we ensure that the team does not indulge into doing throw Goals Driven Development Definition Elaboration I1 I2 BA I T D D BB WB I T BA BB WB I T I6 BA BB WB I I5 BA BB WB Validation I4 BA BB WB Creation I3 BA BB away work when doing iterative development? How do we measure our productivity in IDLC compared to SLDC? WB I T D I T D T D D ITERATIONS Time R1 PoC Frame the problem & Agree on the scope Understand the solution & Baseline Project Plan Product sufficiently mature for use Q: How do we ensure that the team does not indulge into CTS Release I – A Roadmap View 04/29 INITIATION 06/30 06/02 ELABORATION ELABORATION INCEPTION DEFINITION doing throw away work when doing iterative development? How do we measure our productivity in IDLC compared to SLDC? 09/06 08/03 CONSTRUCTION CREATION 09/30 TRANSITION VALIDATION time Problem Statement Preliminary Iteration Elaboration Iteration I Elaboration Iteration II Construction Iteration I Construction Iteration II Transition Iteration Project Project Charter Charter User-Interface Prototype CTS IB 1.1 Refine on Based thecustomer User-Interface feedback, Understand the problem based use refine on customer cases implemented Establish CTS Project Goals Based Based on on customer customer feedback. in earlier builds. CTS Prototype CTS Prototype feedback, feedback,refine refineuse usecases cases April 29 CTS IB 1.2 implemented implemented earlier earlier Use CTS IB 1.2 Implement theinin following User-Interface Prototypes completed builds. builds.in parallel: CTS IB 1.3 Cases Draft Reqs Architecture SpecsJune ready2 Draft Design Specs Test &ready Deploy CTS IB 1.1 Implement Implement the the following following Use Use • “Track Company Info” Contacts”, User-Interface refined Cases Casesininparallel: parallel: June 30 Reqs Arch Specs signed-off CTS CTSBuild IB 1.4 1.4 August 3 Test & Deploy CTS IB 1.2 • “Record “Track Company Company Revenue Opinions Draft Design Specs ready Standards •& •“Use “UseCase Case X”&& Test &&Deploy Analyze Applicable PoliciesCTS IB 1.3 Objects” Experiences” & VII”, • •“Use “UseCase CaseVIII” XI” & InvestigateAddress Trainingapplicable Needs standards & policies •• “Use Case IX” Search Address CTS Prototype (PoC) ready training needs “Manage “Provide Email Company Docs” September 6 Capability” Test & Deploy CTS Build 1.4 CTS Rel 1.0 Successive Refinement Each consecutive iteration should be marked by: Growth of capability, as measured by the implementation of additional functionality during each iteration Greater depth, as measured by a more complete implementation of the product Greater stability, as measured by a reduction in the number of changes to the product Typical Effort and Time Percentages by Phase Q: How does one go about staffing using the Iterative Model? How does it differ from the SDLC waterfall model? People Def Ela Cre Val Time Effort Time/Schedule Definition 5% 10% Elaboration 20% 30% Creation 65% 50% Validation 10% 10% Cost Estimate Refinements Error in Cost to Complete Estimate 4X X/4 Over-estimated 0 Definition Elaboration Creation Under-estimated Validation Iteration Length and Number of Iterations Q: How many iterations are standard for a project? 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. Total # of iterations 3 [I,D,E,C,V,P] Typical 7 [0,1,2,2,1,1] High 11 [0,1,3,3,2,2] Very High 13 [0,2,3,3,2,3] Low [0,0,1,1,1,0] Conditions that Increase the Number of Iterations Initiation There are no iterations during the “Initiation” phase. This phase concludes with the creation of “Project Charter” which forms the foundation of a project. Elaboration Working with new system environment (new architectural features) Untested architectural elements Need for system prototypes Validation Need for alphas and betas Conversions of customer base Incremental delivery to customers Definition Working with new functionality Unknown business environment Highly volatile scope Make-buy decisions Creation Lots of code to write and verify New technology or development tools Production Number of enhancements required Managing Iterative Dev Projects Q: What does IDLC do to the Project Management Disciplines? Is it the same as before or should PMs think in a different and new way? You apply PM principles to each iteration in iterative development vs. once to the entire project in SDLC (PMBOK 2003 recommendation). Accept evolving nature of requirements and manage them appropriately compared to signoff requirements document in SLDC. Prepare to do multi-tasking as follows: Monitor and Manage current iteration Based on iteration performance and risk evaluation, plan for the next iteration keeping not only phase goals but overall project goals in mind Adjust plans to ensure that key milestones are achieved as required. Other Questions from GTPL Team If Iteration 1 can be completed anywhere between 2 to 8 weeks, when to get a development hardware purchase from CTI (which takes from 8 to 12 weeks)? What is the ideal size (in function points) for running one iteration (2-8 weeks)? What is an ideal team size for an iteration? For a large program like GTPL, a lot of time is spent upfront in defining requirements. Is the same done in IDLC under the MAp model prior to initiating Iteration 1? Are we really gaining time? Or is it being spent anyway under MAp? How can we engage the CIBTech SDLC’s (Mariam Barack) team to get their buy-in to include this approach in PlanView and SDLCW? How do we handle the Change Management Process in iterative model? What testing tools / practices need to be in place for iterative development? Questions? For questions and inquiries, please contact: Ahmad K. Shuja Email: ahmad@alum.mit.edu Cell: 1-917-821-8541 Appendix – Addition Information Initiation Phase: Objectives To state the business problem to be solved To establish a well-researched project goal and have it approved by the Senior Management / Sponsor to dedicate organizational resources to it for further exploration To prioritize and rationalize the project To determine estimates of resources requirements Optionally, to create Level 0 Estimates (-25% to +75%) Initiation Phase: Evaluation Criteria Project goal is well-established and overview of the project’s product (which will help the team realize the project goal) has been understood Common understanding of the high-level project goal between the project team members has been achieved Project has been rationalized and prioritized. Project Charter has been completed, reviewed, and approved or rejected. Milestone accomplished: Goals & Prioritization Milestone (GPM) Initiation Phase – Process Model Elaboration Phase: Objectives Define, validate, and baseline the architecture as rapidly as practical. Demonstrate that the baseline architecture will support the goal for a reasonable cost in a reasonable time. Establish concurrence among senior management and / or sponsor on the accuracy of cost / schedule estimates Elaboration Phase: Evaluation Criteria Software Development & Project Management Plan (SDPM) is baselined – Stable Product Scope, Level 3 Cost / Schedule Estimates (-5% to +10%), and baselined Project Plan Iteration plans for Construction Phase are of sufficient detail and fidelity to allow work to proceed, and are supported by credible estimates. PoC concluded – Stable Architecture, key test and evaluation approaches are proven, and major risk elements have been addressed and resolved All stakeholders agree that the current goal can be achieved if the current plan is executed to develop the complete system, in the context of the current architecture Milestone accomplished: Lifecycle Architecture (LCA) IDLC Rel 1.0 – Elaboration Phase WBS Elements 2 2 2 2 2 2 2 2 2 2 2 2 2 I1 I2 I3 I4 BA BA BA BA BB BB WB WB D WB I T T BB WB I I 2 BB I T D T D D Elaboration Phase – Process Model Elaboration Phase – Iteration Plan Template Creation Phase: Objectives Complete the software product for transition to production Minimize development costs by optimizing resources and avoiding unnecessary scrap and rework. Achieve adequate quality as rapidly as is practical. Achieve useful versions (alpha, beta, or other appropriate test releases) as rapidly as practical. Creation Phase: Evaluation Criteria Product release stable and mature enough to be deployed in the user community All stakeholders are ready for the transition into the user community. Milestone accomplished: Initial Operational Capability (IOC) IDLC Rel 1.0 – Creation Phase WBS Elements 3 3 3 3 3 3. 3 3 3 3 3 3. 3 3 3. 3 I1 I2 I3 I4 BA BA BA BA BB BB BB WB WB WB I I D WB I T T BB I T D T D D Creation Phase – Process Model Creation Phase – Iteration Plan Template Validation Phase: Objectives Achieve user self-supportability through training and knowledge sharing. To transition any resources (human, documentation, or systems) required to successfully support the production system to the product owner Achieve stakeholder concurrence that deployment baselines are complete and consistent with the evaluation criteria of the goal. Achieve final product baseline as rapidly and cost- effectively as practical. Validation Phase: Evaluation Criteria User and / or Customer is satisfied with the product and is able to operate and support it Product solves the problem stated in the charter and meets project goals Milestone accomplished: Initial Product Release (IPR) IDLC Rel 1.0 – Validation Phase WBS Elements 4 4 4 4 4 4 4 4 4 I1 I2 I3 I4 BA BA BA BA BB BB WB WB D WB I T T BB WB I I 4 BB I T D T D D Validation Phase – Process Model Validation Phase – Iteration Plan Template Production Phase: Objectives To gain formal acceptance of the product by the stakeholders (customer, business or technology owner). To formally dis-engage EAD resources from the project completely To ensure that any (if at all) gaps identified in the product during the transition or production phase have been satisfactorily met. Production Phase: Evaluation Criteria The product is completely handed over to the owner Product owner is satisfied with the product and its transition Product owner is now able to operate and support the product without EAD’s assistance EAD team is no longer engaged. Milestone accomplished: Final Product Release (FPR)