University of Southern California Center for Systems and Software Engineering Enablers and Inhibitors for Expediting Systems and Software Engineering & Estimating Agile Project Schedule Acceleration Sue Koolmanojwong and Dan Ingold COCOMO Forum October 17, 2012 University of Southern California Center for Systems and Software Engineering Workshop Participants • Facilitators – Sue Koolmanojwong – Dan Ingold • Participants – – – – – – Bob Epps, Lockheed Martin Diana Baklizky, TI Metricas Quan Keenan, BAE Systems Linda Esker, Fraunhofer Tony Abolfotoah, Robbins Gioia Kai Maetzel, IBM 2 University of Southern California Center for Systems and Software Engineering Summary • Review the list of enablers and inhibitors • Add, Refine the factors • How each factor contribute to – Technical Debt – Flexibility 3 University of Southern California Center for Systems and Software Engineering Enablers - by ICSM life cycle phases Exploration & Valuation Foundations Development & Operations • COTS • Customer /tech requirements flexibility • Small focused set of requirements • Requirements Validation, clarification + Prioritization (ValueBased) • Domain knowledge • Rapid Prototyping • Reusing assets, building blocks, frameworks • Understanding of the existing system and interfaces • Operational Analysis • Building the common architecture/foundation • Common standard, interface • COTS • Model-based engineering • Reusing assets • Automated testing to discover architectural problems • Incremental Delivery & feedback • Incremental test and feedback • Mature configuration management • Overnight build • Target hardware lab / test like you fly & simulation Text – New additions from the workshop 4 University of Southern California Center for Systems and Software Engineering Enablers - by ICSM life cycle phases All phases • • • • • • • • • • • • • • • • • • • • • Text – New additions from the workshop Optimize along the way Smell detection Agile/lean approach Best people / personnel capability Business process reengineering / process streamlining Colocation of hw & sw engineers Common standard and protocol Constituent Documentation Crowdsourcing Decision making authority Development process tailoring/adjustment Feasibility Evidence, Milestone review Flexible / tailorable rules Less context switching when doing multiple projects Mature configuration management Model-based engineering Outsourcing / surge support Risk Management Synchronization and Stabilization Team cohesion Tools and automation (Code generation) 5 University of Southern California Center for Systems and Software Engineering Inhibitors - by ICSM life cycle phases Exploration & Valuation Foundations Development & Operations • • • • • • • Design for reuse • High number of external interfaces • -ilities standard • Interoperability / compatibility • Lack of / incompatible standard & protocol • Poor extendability • Technology Immaturity • Technology Volatility • Functional dependency • Inability and unavailability to test across systems • Lack of development infrastructure • Multiple operational sites with different configuration / platform / OS • Functional dependency • Unspecified / incompatible constraints of constituent systems • • • • • • • • • • • • • • Architecture constraint / heritage Backpropagation Bad documentation Bad RFP Contracting limitation Delayed authority to proceed/start with fixed milestone Embedded poor quality software fear to protest the contract award resulting in poor requirements -ilities standard Lack of Domain Experience Lack of understanding of the existing system and interfaces Outdated / stovepipe technology Overspecified requirements Poor / unknown heritage/pedigree Requirements Volatility System understanding Technical debt Technology Immaturity Technology Volatility Vague Requirements Text – New additions from the workshop 6 University of Southern California Center for Systems and Software Engineering Enablers - by ICSM life cycle phases All phases • • • • • • • • • • • • • • • • • • • • • • Text – New additions from the workshop Classification / sensitivity Conflicting Stakeholders contracting limitation delayed authority to proceed/start with fixed milestone Developers / subcontractors not co-located Embedded poor quality software fear to protest the contract award resulting in poor requirements forced to use unfamiliar process infeasible schedule/staffing profile Lack of communication between teams Lack of constituent expert Lack of decision making at lower levels Lack of decision making authority Lack of program empowerment large number of subcontractors / stakeholders Personnel Turnover Process immaturity Rules and Regulations Sequential Development Under average people / Personnel Capability Unprecedentedness Infrastructure Debt 7 University of Southern California Center for Systems and Software Engineering Relationship between factors to Technical Debt & Flexibility • Identify whether each factor hurts or helps the technical debt & flexibility – Challenges • Definition of technical debt is mature yet • Situation dependent 8