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