CIIforum_2013_Supannika_Koolmanojwong

advertisement
University of Southern California
Center for Systems and Software Engineering
Top Enablers and Inhibitors of
Affordable Systems
Supannika Koolmanojwong, Jo Ann Lane,
Rachchabhorn Wongsaroj,Thammanoon Kawinfruangfukul,
and Barry Boehm
COCOMO Forum
October 22, 2013
University of Southern California
Center for Systems and Software Engineering
Overview
• Affordability Tradespace
• Affordability Opportunity Tree
• Cost Model Parameters Reflect Tradespace
Decisions
• Enablers and Inhibitors of the Affordable systems
2
University of Southern California
Center for Systems and Software Engineering
Affordability
• “The balance of system performance, cost,
and schedule constraints over the system
life cycle, while satisfying mission needs in
concert with strategic and organizational
needs.”
INCOSE Systems Engineering Handbook, version 3.2.2.
• Affordable system is achievable via faster
engineering and less rework.
NDIA 8th Annual Disruptive Technologies Conference
3
University of Southern California
Center for Systems and Software Engineering
Expedited System Development
Faster,
Faster, &
FASTER!
We have
time !!
• Capability development schedule from
concept to delivery
• Market window opportunity
• Need to balance
– shortcuts, one-time solution, maintainability
4
University of Southern California
Center for Systems and Software Engineering
System Flexibility
One-time
solution
Everything
for everyone
• Design for reuse
• Easily evolve in the future to meet future
(unknown) needs
• Interoperate with future systems
• Need to balance
– Performance issues, total ownership costs
5
University of Southern California
Center for Systems and Software Engineering
Technical Debt
Untidy, poor
structured
Easy to
maintain
• Extra works to fix under par jobs
• Intentional or unintentional debts
• Need to balance
– Get it done now, Refactor later, evolutionary
plan
6
University of Southern California
Center for Systems and Software Engineering
Affordability Tradespace
Tradespace:
Capability
Schedule
Flexibility
Technical
Debt
Desired balance:
Capability
Tech
Debt
Flexibility
Schedule
Typical results:
Capability
Schedule
Flexibility
Technical
Debt
University of Southern California
Center for Systems and Software Engineering
Example Framework:
Affordability Opportunity Tree
Get the Best from People
(Expedite, Minimize Tech Debt)
Make Tasks More Efficient
(Expedite)
Eliminate Tasks
Affordability
Improvements
and Tradeoffs
(Expedite)
Eliminate Scrap, Rework
(Expedite, Minimize Tech Debt)



Staffing, Incentivizing, Teambuilding
Facilities, Support Services
Kaizen (continuous improvement)
Tools and Automation
Work and Oversight Streamlining
Collaboration Technology
Lean and Agile Methods
Task Automation
Model-Based Product Generation
Early Risk and Defect Elimination
Evidence-Based Decision Gates
Modularity Around Sources of Change
Incremental, Evolutionary Development
Value-Based, Agile Process Maturity
Risk-Based Prototyping
University of Southern California
Center for Systems and Software Engineering
Example Framework:
Affordability Opportunity Tree
Affordability
Improvements
and Tradeoffs



Simplify Products (KISS)
(Expedite)
Reuse Components
(Expedite)
Reduce Operations, Support Costs
(Minimize Tech Debt)
Value- and Architecture-Based
Tradeoffs and Balancing
(Longer-term investment, min Tech Debt)
Risk-Based Prototyping
Value-Based Capability Prioritization
Satisficing vs. Optimizing Performance
Domain Engineering and Architecture
Composable Components,Services, COTS
Legacy System Repurposing
Automate Operations Elements
Design for Maintainability, Evolvability
Streamline Supply Chain
Anticipate, Prepare for Change
University of Southern California
Center for Systems and Software Engineering
Affordability Analysis with
Cost Models
University of Southern California
Center for Systems and Software Engineering
Cost Model Parameters Reflect Tradespace
Decisions -
University of Southern California
Center for Systems and Software Engineering
Cost Model Parameters Reflect Tradespace
Decisions –
University of Southern California
Center for Systems and Software Engineering
Pilot Study: Data Collection
• Software Engineering-related Classes
– 60 graduate students
• ~ 20%: full-time employee with 2-20 years experience
• ~80%: Newly graduates, 0-5 years experience
– 59 undergraduate students
• 0-3 years experience (internship, co-op)
• Information sources
– Lectures, papers, class workshops
• List enablers and inhibitors for
– Technical Debt, Expedited Sys Development, Flexibility
13
University of Southern California
Center for Systems and Software Engineering
Top Enablers
Expedited Sys Development
Flexibility
Technical Debt
1
Rapid Prototyping
Reuse, Use of NDI / COTS
Good/ proper documentation
2
Agile/Lean Approaches
Common Standard / Interfaces /
Services
Refactoring
3
Reuse, Use of NDI/COTS
Use OO Design
Agile / Lean Approach
4
Incremental test and feedback
Strong leadership and skill
empowerment
Incremental test and feedback
5
Strong leadership and skill
empowerment
Component-based design
Proper system architecture /
foundations
6
Requirements Flexibility
Good/ proper documentation
Pair programming
7
Team Cohesion
Use of architectural patterns and
styles
Rapid Prototyping
8
Tools, Automation, Simulation
Agile / Lean Approach
Test-Driven Development
9
Decision making authority
Requirements Flexibility
Strong leadership and skill
empowerment
10
Minimize set of features
Incremental test and feedback
Explicit list of debt; Known
Technical Debt inventory
14
University of Southern California
Center for Systems and Software Engineering
Top Enablers
Expedited Sys Development
Flexibility
Technical Debt
1
Rapid Prototyping
Reuse, Use of NDI / COTS
Good/ proper documentation
2
Agile/Lean Approaches
Common Standard / Interfaces /
Services
Refactoring
3
Reuse, Use of NDI/COTS
Use OO Design
Agile / Lean Approach
4
Incremental test and feedback
Strong leadership and skill
empowerment
Incremental test and feedback
5
Strong leadership and skill
empowerment
Component-based design
Proper system architecture /
foundations
6
Requirements Flexibility
Good/ proper documentation
Pair programming
7
Team Cohesion
Use of architectural patterns and
styles
Rapid Prototyping
8
Tools, Automation, Simulation
Agile / Lean Approach
Test-Driven Development
9
Decision making authority
Requirements Flexibility
Strong leadership and skill
empowerment
10
Minimize set of features
Incremental test and feedback
Explicit list of debt; Known
Technical Debt inventory
15
University of Southern California
Center for Systems and Software Engineering
Top Enablers
Expedited Sys Development
Flexibility
Technical Debt
1
Rapid Prototyping
Reuse, Use of NDI / COTS
Good/ proper documentation
2
Agile/Lean Approaches
Common Standard / Interfaces /
Services
Refactoring
3
Reuse, Use of NDI/COTS
Use OO Design
Agile / Lean Approach
4
Incremental test and feedback
Skilled team members
Incremental test and feedback
5
Skilled team members
Component-based design
Proper system architecture /
foundations
6
Requirements Flexibility
Good/ proper documentation
Pair programming
7
Team Cohesion
Use of architectural patterns and
styles
Rapid Prototyping
8
Tools, Automation, Simulation
Agile / Lean Approach
Test-Driven Development
9
Decision making authority
Requirements Flexibility
Skilled team members
10
Minimize set of features
Incremental test and feedback
Explicit list of debt; Known
Technical Debt inventory
16
University of Southern California
Center for Systems and Software Engineering
Common Enablers
• Rapid Prototyping
Expedited
Sys Dev
Technical
Debt
• Agile / Lean Approaches
• Incremental test and Feedback
• Skilled team members
System
Flexibility
• Incremental test and Feedback
• Reuse, Use of NDI / COTS
• Incremental test and Feedback
• Requirements Flexibility
17
University of Southern California
Center for Systems and Software Engineering
Top Inhibitors
Expedited Sys Development
Flexibility
Technical Debt
1
Requirements Volatility
Lack of / Poor documentation
Lack of / Poor documentation
2
Inexperience team members
Inexperience team members
Parallel Development
3
Unprecedentedness
Unrealistic expectations
Business Pressure
4
Vague requirements
Requirements Volatility
Delayed Refactoring
5
Delayed authority to proceed
Organizational impediments
Inadequate testing, lack of
unified testing method
6
Unrealistic expectations
Technology immaturity/volatility
Shortcuts, poor dev practices
7
Technology immaturity/volatility
Not-invented-here syndrome; Need
full architectural control
Tight coupling code
8
Lack of domain knowledge /
experience
Relying on Third-Party Software
Lack of process
understanding
9
High number external/internal
dependencies
Vague requirements
Inexperience team members
10
Conflicting stakeholders
Unplanned/poor/inflexible
architecture
Unrealistic expectations
18
University of Southern California
Center for Systems and Software Engineering
Top Inhibitors
Expedited Sys Development
Flexibility
Technical Debt
1
Requirements Volatility
Lack of / Poor documentation
Lack of / Poor documentation
2
Inexperience team members
Inexperience team members
Parallel Development
3
Unprecedentedness
Unrealistic expectations
Business Pressure
4
Vague requirements
Requirements Volatility
Delayed Refactoring
5
Delayed authority to proceed
Organizational impediments
Inadequate testing, lack of
unified testing method
6
Unrealistic expectations
Technology immaturity/volatility
Shortcuts, poor dev practices
7
Technology immaturity/volatility
Not-invented-here syndrome; Need
full architectural control
Tight coupling code
8
Lack of domain knowledge /
experience
Relying on Third-Party Software
Lack of process
understanding
9
High number external/internal
dependencies
Vague requirements
Inexperience team members
10
Conflicting stakeholders
Unplanned/poor/inflexible
architecture
Unrealistic expectations
19
University of Southern California
Center for Systems and Software Engineering
Top Inhibitors
Expedited Sys Development
Flexibility
Technical Debt
1
Requirements Volatility
Lack of / Poor documentation
Lack of / Poor documentation
2
Inexperience team members
Inexperience team members
Parallel Development
3
Unprecedentedness
Unrealistic expectations
Business Pressure
4
Vague requirements
Requirements Volatility
Delayed Refactoring
5
Delayed authority to proceed
Organizational impediments
Inadequate testing, lack of
unified testing method
6
Unrealistic expectations
Technology immaturity/volatility
Shortcuts, poor dev practices
7
Technology immaturity/volatility
Not-invented-here syndrome; Need
full architectural control
Tight coupling code
8
Lack of domain knowledge /
experience
Relying on Third-Party Software
Lack of process
understanding
9
High number external/internal
dependencies
Vague requirements
Inexperience team members
10
Conflicting stakeholders
Unplanned/poor/inflexible
architecture
Unrealistic expectations
20
University of Southern California
Center for Systems and Software Engineering
Common Inhibitors
Expedited
Sys Dev
Technical
Debt
• Inexperience Team Members
• Unrealistic expectations
System
Flexibility
• Lack of / Poor documentation
• Technology Immaturity /
Volatility
• Requirements Volatility
21
University of Southern California
Center for Systems and Software Engineering
Two sides of the same coin
• Reuse, Use of NDI / COTS
– Enable and inhibit at the same time for all three
aspects
• Lack of documentation
• Enable the Expedition, but inhibit the TD
management and flexibility
• Agile/Lean Approach
– Enable the Expedition, but inhibit the TD
management and flexibility
22
University of Southern California
Center for Systems and Software Engineering
Conclusions
• High similarity of the affordability enablers from
Opportunity tree, cost model, and class workshop
– Get the best people
– Incremental development
• Top inhibitors
– Inexperienced people
– Unrealistic expectation
• Wildcard
– Reuse, use of COTS/ NDI
– Agile/Lean
– Lack of documentation
23
University of Southern California
Center for Systems and Software Engineering
References
•
INCOSE, Systems Engineering Handbook, version 3.2.2. San Diego, CA,
USA: International Council on Systems Engineering (INCOSE). INCOSETP-2003-002-03.2, December 2011.
•
Robert Neches, Engineered Resilient Systems (ERS) S&T Priority
Description and Roadmap, NDIA 8th Annual Disruptive Technologies
Conference , 8 November 2011
24
Download