Disciplined Agility

advertisement
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)
Download