Professional Documents
Culture Documents
1
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
2
About Myself
• B.S. in Computer Science, Kansas State, 2004
• KU MSIT Fall 2009
• Currently a software engineer at Garmin
– Recently moved to Marine chartplotters group
– Auto OEM for 3 ½ years
3
About the Authors
• Barry Boehm
– Professor at the University of Southern California
– COCOMO, Spiral Model, Win-Win Approach
• Richard Turner
– Professor at Stevens Institute of Technology
– Member of original CMMI author team
– Author of CMMI Distilled
4
What Are We Talking About?
• The software environment is changing
• Software project management methods need to
evolve to keep up
• Discipline vs. agility
– Adversarial relationship
– Old vs. new
– Heavy vs. light processes
– Strength vs. invention
• Success depends on balance of both
5
Who Should Care About This?
• Software project managers
• Software developers
• Students
• Academicians
• Proponents of both sides
• CIOs and CEOs
6
Why Is There Perplexity?
• Sources of perplexity
– Multiple definitions
– Use vs. misuse
– Overgeneralization
– Claims of universality
– Early success stories
– Purist interpretations
7
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
8
What Is Discipline?
• Traditional way to develop software
• Plan-driven
• Came from mainline engineering fields
– Rise of aerospace systems
– Systems engineering for component integration
• Methods
– Software Capability Maturity Model (SW-CMM)
– Cleanroom
– PSP/TSP
9
Where Did It Come From?
• DoD guidance documents
– MIL-STD-1521
– DoD-STD-2167
– MIL-STD-498
• Large companies
– IBM
– Hitachi
– Siemens
10
Characteristics
• Strengths
– Comparability
– Repeatability
– Minimize loss of personnel
• Drawbacks
– Impede innovation
– Checklist mentality
– Documentation generators
11
Plan-Driven Concepts
• Process improvement
• Process capability Improve
Process
• Organizational maturity
• Process group Define Control Measure
Process Process Process
• Risk management
• Verification Perform
Process
• Validation
• Software system architecture
12
Plan-Driven Success Criteria
• Management support
• Organizational infrastructure
• Understanding of importance of common
processes
• Well-trained practitioners
• Large programs
13
What Is Agility?
• Agile methods
– eXtreme Programming (XP)
– Scrum
– Crystal
– Feature-driven development
• Lightweight processes
• Embrace change rather than fight it
14
Where Did It Come From?
• Outgrowth of rapid prototyping
• Programming as a craft, not a process
• Internet-based economy
– Rapid change and long development cycles don’t mix
• Chaordic = chaos + order
• Agile manifesto
– Defines philosophy of agility
15
Agile Concepts
• Embracing change
• Fast cycle/frequent delivery
• Simple design/YAGNI
• Refactoring
• Pair programming
• Retrospective
• Tacit knowledge
• Test-driven development
16
Agile Success Criteria
• Close relationship with customer
• Highly-motivated, knowledgeable team
• Cultural acceptance
• Continuous improvement
• Smaller programs
17
Key Differences
• Plan-driven methods value processes over
people
– Documentation
– Interchangeable parts
– Waterfall
• Agile methods value people over processes
– Tacit knowledge
– Highly skilled people
– Cups of water
18
Finding the Middle Ground
• Phillipe Krutchen from Rational
• SW-CMM is like the dictionary
– Use the words needed to make the desired point
– Do not use all of the words
• Process toolbox
– “Plug-compatible” process assets
• Risk is the key
19
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
20
What Are the Misconceptions?
• No silver bullet
• Both approaches are tools in the toolbox
21
What Are the Realities?
• Plan-driven methods
Misconception Reality
Uniformly bureaucratic. Overly bureaucratic cultures and
methods can cripple software
development.
Having documented plans guarantees Not necessarily.
compliance with plans.
Can succeed with lack of talented Can succeed with smaller percentage
people. of talented people.
High maturity guarantees success. Provide more of a safety net than tacit
plans.
No penalties when change is Work best in accommodating
unforeseeable. foreseeable change.
22
What Are the Realities?
• Agile methods
Misconception Reality
Agile methods do not plan. Get much of their speed and agility
through creating and exploiting tacit
knowledge.
Require uniformly talented people. Work best when there is critical mass
of highly talented people involved.
Can make the slope of the cost-to- Can reduce the slope of the cost-to-
change vs. time curve uniformly flat. change vs. time curve.
YAGNI is universally safe assumption YAGNI helps handle unforeseeable
and will not alienate customers. change, but is risky when change is
foreseeable.
23
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
24
Contrasts and Home Grounds
• Home grounds are where each method performs
the best
• Home grounds depend on characteristics
– Application characteristics
– Management characteristics
– Technical characteristics
– Personnel characteristics
• Further away project is from a method’s home
grounds, the more risk in using a pure form
25
Application Characteristics
• Primary goals
– Plan-driven: predictability, stability, high assurance
– Agile: rapid value, responsiveness to change
• Size
– Plan-driven: large projects
– Agile: small to medium projects
• Environment
– Plan-driven: relatively stable
– Agile: high-change, focus on project at hand
26
Management Characteristics
• Customer relations
– Plan-driven: contract, process maturity
– Agile: dedicated customer, working software
• Planning and control
– Plan-driven: use plans to communicate & coordinate
– Agile: planning as a means to an end
• Project communication
– Plan-driven: explicit, documented knowledge
– Agile: tacit knowledge
27
Technical Characteristics
• Requirements
– Plan-driven: specific, formalized requirements
– Agile: informal, user-prioritized stories
• Development
– Plan-driven: advocates architecture
– Agile: advocates simple design
• Testing
– Plan-driven: test to specification
– Agile: develop tests before code, test incrementally
28
Personnel Characteristics
• Customers
– Both methods need CRACK customers
– Plan-driven does not require them full-time
• Developers
– Plan-driven: need fewer highly talented people
– Agile: need more than technical skills
• Culture
– Plan-driven: clear processes and roles
– Agile: many degrees of freedom
29
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
30
Five Critical Factors
• Factors in determining relative suitability of a
method on a particular project
– Size
– Criticality
– Dynamism
– Personnel
– Culture
31
Size Factor
• Plan-driven
– Methods evolved to handle large products and teams
– Hard to tailor down
• Agile
– Well matched to small products and teams
• Range (number of personnel)
– 3
– 10
– 30
– 100
– 300
32
Criticality Factor
• Plan-driven
– Methods evolved to highly critical products
– Hard to tailor down
• Agile
– Untested on safety-critical products
– Potential difficulties with simple design and lack of documentation
33
Dynamism Factor
• Plan-driven
– Excellent for highly stable environment
– Expensive rework for highly dynamic environment
• Agile
– Excellent for highly dynamic environment
– Expensive rework for highly stable environment
• Range (% requirements-change/month)
– 1
– 5
– 10
– 30
– 50
34
Personnel Factor
• Based on Cockburn scale
• Plan-driven
– Needs critical mass of level 2 and 3 experts during project definition
– Can work with fewer later in project unless highly dynamic environment
– Can usually accommodate some level 1B people
• Agile
– Requires continuous presence of critical mass of level 2 or 3 experts
– Risky to use non-agile level 1B people
• Range ( % level 1B / % level 2 and 3 )
– 0% level 1B / 35% level 2 and 3
– 10% level 1B / 30% level 2 and 3
– 20% level 1B / 25% level 2 and 3
– 30% level 1B / 20% level 2 and 3
– 40% level 1B / 15% level 2 and 3
35
The Cockburn Scale
36
Culture Factor
• Plan-driven
– Thrives on order
• Agile
– Thrives on chaos
• Range (% thriving on chaos vs. order)
– 10
– 30
– 50
– 70
– 90
37
When To Use Which Method?
38
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
39
Overview of The Risk-Based Method
40
The Risk-Based Method Process Flow
41
Risk Categories
• Environmental
– Risks that result from the project’s general
environment
• E-Tech: technology uncertainty
• E-Coord: many diverse stakeholders to coordinate
• E-Cmplx: complex system of systems
42
Risk Categories (2/3)
• Agile
– Risks that are specific to the use of agile methods
• A-Scale: scalability and criticality
• A-YAGNI: use of simple design or YAGNI
• A-Churn: personnel turnover or churn
• A-Skill: not enough people skilled in agile methods
43
Risk Categories (3/3)
• Plan-driven
– Risks that are specific to the use of plan-driven
methods
• P-Change: rapid change
• P-Speed: need for rapid results
• P-Emerge: emergent requirements
• P-Skill: not enough people skilled in plan-driven methods
44
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
45
Case Study: SupplyChain.com
• Turnkey agent-based supply chain management systems for large
manufacturing companies
Application Characteristics
Team Size 50
46
Step 1: Project Risk Ratings
• Environmental
– E-Tech: uncertainties with agent-based systems
– E-Coord: many separate suppliers and distributor networks
• Agile
– A-Scale: large development team
– A-YAGNI: stable components
– A-Churn: stable workforce
• Plan-driven
– P-Change: rapid changes in technology, organizations, market
conditions
– P-Speed: need to deliver quickly to keep pace with competition
– P-Emerge: changing requirements through user experience
47
Step 2: Compare Risks
• Plan-driven risks dominate
• Select risk-based agile approach
• Based on culture and environment
– Rapidly changing environment
– Speed to keep up with competition
– Emerging requirements
– Stable workforce
– Not financially critical marketplace
• Bypass Step 3
48
Home Grounds Polar Chart
49
Step 4a: Risk Resolution Strategies
• Environmental risks
– E-Tech
• Risk-driven technology prototypes
• Technology and COTS watch
– E-Coord
• CRACK representatives
• Stakeholder win-win
– E-Cmplx
• Architecture determination
• Early commitments on validated interfaces
50
Step 4a: Risk Resolution Strategies
• Agile risks
– A-Scale
• Longer iterations as size/complexity grows
– A-YAGNI
• Balance with high-level change-prescient architecture
• Design patterns
– A-Churn
• Project completion bonuses
• Personnel backups; pair programming
51
Step 4a: Risk Resolution Strategies
• Plan-driven risks
– P-Change
• Short iterations
• Balanced simple design and change-prescient architecture
– P-Speed
• Short iterations
• Pair programming
– P-Emerge
• Short iterations
• Dedicated customer
52
Step 4b: System Development
• Three participant groups
– Operational stakeholders
• CRACK representative from each operation
– Manufacturing
– Supplier
– Distributor
53
Step 4b: System Development
• Three phased development
– Inception
• Build the team
• Develop shared vision
• COTS evaluation and key feature prototyping
– Elaboration
• Overall operational concept
• Establish key COTS
• Increment 1 definition
– Incremental implementation
• Develop successive increments
• Deal with emerging risks/opportunities
• Plan next increment; possibly backtrack
54
Step 5 – Monitor and Track Progress
• Adjust plans as necessary
• Identify opportunities to improve customer
value
• Process improvement
55
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
56
Cargill
• Iterative process model for development
• Estimations based on analogy
– Excel spreadsheet
– No data repository
• Discipline aspects
– Business analysts elicited/defined requirements
• Use cases and scenarios
– Software developers produced tech specs.
– Code inspections
– Formal weekly status meetings
57
Cargill
• Agile aspects
– Stand up daily status meetings
– Pair programming
– Refactoring
– Short release schedules
– Not all tasks required documentation
– Lots of tacit knowledge
58
Arrowpoint
• CMMI Level 3 certified Naval site
• Discipline aspects
– MIL-STD-498
– Weekly status meetings
• Agile aspects
– Pair programming
– Write test cases first
59
Garmin
• Auto OEM
– Very little documentation
– Pair programming
– Tacit knowledge
– Quality engineers wrote test cases
– Moving toward AutoSPICE certifications
• Marine
– More documentation
– Software specification complete before development
60
Road Map
• Introduction
• What are Discipline and Agility?
• Misconceptions
• Contrasts and Home Grounds
• Five Critical Factors
• The Risk-Based Method
• Case Study
• Personal Experiences
• Summary and Wrap-Up
61
Top Six Conclusions
• No silver bullets
• Home grounds for each method
• Trends toward balance of both
• Balanced methods are emerging
• Build your method up
• Focus less on methods
62
No Silver Bullets
• Fred Brooks’ software engineering difficulties
– Complexity
– Conformity
– Changeability
– Invisibility
• Some techniques have achieved “lead bullet”
status
– Can solve some part of software engineering
problem
– Some agile and plan-driven elements are lead bullets
63
No Silver Bullets (2/4)
• Plan-driven methods
– Thrive on
• Conformity
• Invisibility
• Investment in documentation
– Founder on
• Changeability (documentation rework)
• Complexity of systems-of-systems and enterprise
integration
64
No Silver Bullets (3/4)
• Agile methods
– Thrive on
• Changeability
• Invisibility
– Founder on
• Complexity
– Scaling up
• Conformity
– Interfaces
– Product lines
65
No Silver Bullets (4/4)
• Cannot assume that lead bullet this year will
still be one next year
• Lead bullets founder on changeability
– Sequential waterfall model
– Pre-WYSIWYG word processing
– Pre-web book sales management systems
– Fixed-contract software management models
– Static domain and enterprise architectures
66
Home Grounds For Each Method
• Home grounds polar chart
• Critical factors
– Size
– Criticality
– Culture
– Personnel
– Dynamism
67
Trends Toward Balance of Both
• In the past projects were at the extremes
• Projecting the future
– Higher rates of change on large projects
– Expense associated with maintaining plans
– Agile alone cannot surmount complexity and
conformity “werewolves”
– Premium on methods to be situation-tailorable
68
Balanced Methods Are Emerging
• Risk-based method
• Crystal orange
• Lean development
• DSDM
• FDD
• New, lighter Rational Unified Process versions
69
Build Your Method Up
• Starting with full plan-driven method requires
experienced personnel
• Tailoring down wastes time and money
• Start with minimal set of techniques
• Add extras where clearly justified
70
Focus Less On Methods
• Focus more on
– People
– Values
– Communication
– Expectations management
• Good people and teams trump other factors
• People factors dominate other software cost
and quality drivers
– COCOMO II: 10:1 effects of personnel factors
71
Focus Less On Methods (2/5)
• People
– Of the people, by the people, for the people
– Separation of concerns
– Reduce the distance between the “user”
72
Focus Less On Methods (3/5)
• Values
– Reconcile different stakeholders
– Win-win outcome
– Outward vs. inward focus
• Higher value per unit cost to stakeholders
– Prioritization and responding to changes
73
Focus Less On Methods (4/5)
• Communication
– “I’ll know it when I see it” (IKIWISI) syndrome
– Development across organizational boundaries
• Map boundaries even
– Shared system vision and strategy
– Increasing pace of change raises stakes of
communication
74
Focus Less On Methods (5/5)
• Expectations management
– Difference between successful and troubled project
is most often difference between good and bad
expectations management
– Desire to please
– Avoid confrontation
– Lack of confidence in ability to predict
– Process mastery, preparation, courage
75
Steps Toward Achieving Balance
• Self-assessment
– Where is organization currently?
– Where do success-critical stakeholders want it to go?
– How will it cope with future trends?
– Consult with key stakeholders
– Consider future trends
• Increased pace of change
• Concern with software dependability
• Gap between supply and demand of level 2 and 3 people
76
Questions?
77
Bibliography
Boehm, Barry, & Turner, R. 2003, Balancing Agility and Discipline: A
Guide for the Perplexed, Addison-Wesley, Boston.
78