Enablers and Inhibitors for Expediting Systems and Software Engineering &

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