University of Southern California Center for Systems and Software Engineering Process and Product Architectures and Practices for Achieving both Agility and High Assurance ----Tutorial---- Barry Boehm and Jo Ann Lane University of Southern California Center for Systems and Software Engineering http://csse.usc.edu (tech report 2009-500) Presented at ICSE 2009, May 19, 2009 University of Southern California Center for Systems and Software Engineering Goals of Tutorial • Describe – Current and new challenges with respect to the development of software-intensive systems – How the Incremental Commitment Model (ICM) and its capabilities can help developers meet these challenges – Use of risk patterns to determine which system elements can be done in an agile fashion and which should use more formal processes • Review several case studies that illustrate challenges and the power of the ICM process decision table • Conduct exercise to develop ICM special case model May 19, 2009 Copyright © USC-CSSE 2 University of Southern California Center for Systems and Software Engineering Tutorial Outline • Challenges for developing nextgeneration software systems • • • • • Overview of ICM Risk-based balance of agility and assurance ICM process decision table Guidance and examples for using the ICM ICM tailoring exercise May 19, 2009 Copyright © USC-CSSE 3 University of Southern California Center for Systems and Software Engineering Future Process Challenges-I • Multi-owner, multi-mission systems of systems (SoS) – Integrated supply chain: strategic planning, marketing, merchandising, outsourcing, just-in-time manufacturing, logistics, finance, customer relations management – Over 50 separately evolving external systems or services – Need to satisfice among multiple stakeholders – No one-size-fits-all solutions or processes • Emergence and human-intensiveness – – – – Requirements not pre-specifiable Budgets and schedules not pre-specifiable Need for evolutionary growth Need to manage uncertainty and risk May 19, 2009 Copyright © USC-CSSE 4 University of Southern California Center for Systems and Software Engineering Example: SoSE Synchronization Points FCR1 SoS-Level Exploration Valuation Candidate Supplier/ Strategic Partner n ● DCR1 OCR1 Architecting Develop OCR2 Operation LCO-type Proposal & Feasibility Info ● Source Selection Rebaseline/ Adjustment FCR1 ● Candidate Supplier/ Strategic Partner 1 OCRx2 OCRx1 System x Develop OCRx3 Operation Operation OCRx5 OCRx4 Operation Operation DCRC OCRC1 ● ● ● System C FCRC Exploration Valuation Architecting FCRB System B Exploration Valuation DCRB Architecting FCRA System A May 19, 2009 Exploration Valuation Develop Operation OCRB1 Develop Copyright © USC-CSSE OCRB2 Operation OCRA1 DCRA Architecting OCRC2 Develop Operation 5 University of Southern California Center for Systems and Software Engineering The Broadening Early Cone of Uncertainty (CU) • Need greater investments in narrowing CU Global Interactive, Brownfield Batch, Greenfield ConOps Local Interactive, Some Legacy Specs/Plans IOC – Mission, investment, legacy analysis – Competitive prototyping – Concurrent engineering – Associated estimation methods and management metrics • Larger systems will often have subsystems with narrower CU’s May 19, 2009 Copyright © USC-CSSE 6 University of Southern California Center for Systems and Software Engineering Current System Acquisition Methods Easy to misinterpret as one-size-fits-all • V-Model1 • Spiral Model2 High level guidance assumes that acquirers have extensive acquisition experience... Without experience, too easy to misinterpret and auger in with disastrous results... 1 2 http://en.wikipedia.org/wiki/V-Model May 19, 2009 Copyright © USC-CSSE http://en.wikipedia.org/wiki/Spiral_model 7 University of Southern California Center for Systems and Software Engineering Future Process Challenges-II • Rapid pace of change – In competition, mission priorities, technology, Commercial Off-the-Shelf (COTS), environment – Need incremental development to avoid obsolescence – Need concurrent vs. sequential processes – Need both prescience and rapid adaptability • Software important; humans more important • Brownfield vs. Greenfield development – Need to provide legacy continuity of service – Need to accommodate legacy, OTS constraints • Always-on, never-fail systems – Need well-controlled, high-assurance processes – Need to synchronize and stabilize concurrency – Need to balance assurance and agility May 19, 2009 Copyright © USC-CSSE 8 University of Southern California Center for Systems and Software Engineering Rapid Change Creates a Late Cone of Uncertainty – Need incremental vs. one-shot development 4x Uncertainties in competition, technology, organizations, mission priorities 2x 1.5x 1.25x Relative Cost Range x 0.8x 0.67x 0.5x 0.25x Concept of Operation Feasibility Plans and Rqts. Detail Design Spec. Product Design Spec. Rqts. Spec. Product Design Detail Design Accepted Software Devel. and Test Phases and Milestones May 15 July 19,2008 2009 Copyright ©USC-CSSE © USC-CSSE 99 University of Southern California Center for Systems and Software Engineering Tutorial Outline • Challenges for developing next-generation software systems • Overview of ICM • • • • Risk-based balance of agility and assurance ICM process decision table Guidance and examples for using the ICM ICM tailoring exercise May 19, 2009 Copyright © USC-CSSE 10 University of Southern California Center for Systems and Software Engineering What is the ICM? • Risk-driven framework for determining and evolving best-fit system life-cycle process • Integrates the strengths of phased and riskdriven spiral process models • Synthesizes together principles critical to successful system development – Commitment and accountability of system sponsors – Success-critical stakeholder satisficing – Incremental growth of system definition and stakeholder commitment – Concurrent engineering – Iterative development cycles – Risk-based activity levels and anchor point milestones Principles trump diagrams… Principles used by 60-80% of CrossTalk Top-5 projects, 2002-2005 May 19, 2009 Copyright © USC-CSSE 11 University of Southern California Center for Systems and Software Engineering ICM Nature and Origins • Integrates hardware, software, and human factors elements of systems engineering – Concurrent exploration of needs and opportunities – Concurrent engineering of hardware, software, human aspects – Concurrency stabilized via anchor point milestones • Developed in response to systems/software issues – Clarify “spiral development” usage in DoD Instruction 5000.2 • Initial phased version (2005) – Explain Future Combat System of systems spiral usage to GAO • Underlying process principles (2006) – Provide framework for human-systems integration • National Research Council report (2007) • Integrates strengths of current process models – But not their weaknesses May 19, 2009 Copyright ©USC-CSSE © USC-CSSE 12 University of Southern California Center for Systems and Software Engineering Incremental Commitment in Gambling • Total Commitment: Roulette – Put your chips on a number • E.g., a value of a key performance parameter – Wait and see if you win or lose • Incremental Commitment: Poker, Blackjack – Put some chips in – See your cards, some of others’ cards – Decide whether, how much to commit to proceed May 19, 2009 12/31/2007 Copyright ©USC-CSSE © USC-CSSE 13 13 University of Southern California Center for Systems and Software Engineering Scalable Remotely Controlled Operations May 19, 2009 12/31/2007 Copyright ©USC-CSSE © USC-CSSE 14 14 University of Southern California Center for Systems and Software Engineering Total vs. Incremental Commitment – 4:1 RPV • Total Commitment – – – – – Agent technology demo and PR: Can do 4:1 for $1B Winning bidder: $800M; PDR in 120 days; 4:1 capability in 40 months PDR: many outstanding risks, undefined interfaces $800M, 40 months: “halfway” through integration and test 1:1 IOC after $3B, 80 months • Incremental Commitment [with a number of competing teams] – – – – – $25M, 6 mo. to VCR [4]: may beat 1:2 with agent technology, but not 4:1 $75M, 8 mo. to FCR [3]: agent technology may do 1:1; some risks $225M, 10 mo. to DCR [2]: validated architecture, high-risk elements $675M, 18 mo. to IOC [1]: viable 1:1 capability 1:1 IOC after $1B, 42 months May 19, 2009 12/31/2007 Copyright ©USC-CSSE © USC-CSSE 15 15 University of Southern California Center for Systems and Software Engineering The Incremental Commitment Life Cycle Process: Overview Anchor Point Milestones Synchronize, stabilize concurrency via FEDs Risk patterns determine life cycle process May 19, 2009 Copyright © USC-CSSE 16 University of Southern California Center for Systems and Software Engineering ICM Activity Levels for Complex Systems May 19, 2009 Copyright © USC-CSSE 17 University of Southern California Center for Systems and Software Engineering Anchor Point Feasibility Evidence Descriptions • Evidence provided by developer and validated by independent experts that: If the system is built to the specified architecture, it will – Satisfy the requirements: capability, interfaces, level of service, and evolution – Support the operational concept – Be buildable within the budgets and schedules in the plan – Generate a viable return on investment – Generate satisfactory outcomes for all of the success-critical stakeholders • All major risks resolved or covered by risk management plans • Serves as basis for stakeholders’ commitment to proceed Can be used to strengthen current schedule- or event-based reviews May 19, 2009 Copyright ©USC-CSSE © USC-CSSE 18 University of Southern California Center for Systems and Software Engineering The Incremental Commitment Life Cycle Process: Overview Anchor Point Milestones Concurrently engr. OpCon, rqts, arch, plans, prototypes May 19, 2009 Copyright © USC-CSSE Concurrently engr. Incr.N (ops), N+1 (devel), N+2 (arch) 19 University of Southern California Center for Systems and Software Engineering Risk-Driven Scalable Spiral Model: Increment View Rapid Change Foreseeable Change (Plan) Increment N Baseline High Assurance May 19, 2009 Short Development Increments Short, Stabilized Development Of Increment N Increment N Transition/O&M Stable Development Increments Copyright © USC-CSSE 20 University of Southern California Center for Systems and Software Engineering Risk-Driven Scalable Spiral Model: Increment View Unforeseeable Change (Adapt) Future Increment Baselines Agile Rebaselining for Future Increments Rapid Change Foreseeable Change (Plan) Short Development Increments Increment N Baseline Stable Development Increments High Assurance Current V&V Resources Continuous V&V May 19, 2009 Deferrals Short, Stabilized Development of Increment N Artifacts Operations and Maintenance Concerns Verification and Validation (V&V) of Increment N Copyright © USC-CSSE Increment N Transition/ Future V&V Resources 21 University of Southern California Center for Systems and Software Engineering Incremental Commitment In Systems and Life: Anchor Point Milestones • Common System/Software stakeholder commitment points – Defined in concert with Government, industry organizations – Initially coordinated with Rational’s Unified Software Development Process • Exploration Commitment Review (ECR) – Stakeholders’ commitment to support initial system scoping – Like dating • Validation Commitment Review (VCR) – Stakeholders’ commitment to support system concept definition and investment analysis – Like going steady May 19, 2009 Copyright © USC-CSSE 22 University of Southern California Center for Systems and Software Engineering Incremental Commitment In Systems and Life: Anchor Point Milestones (continued) • Foundations Commitment Review (FCR) – Stakeholders’ commitment to support system architecting – Like getting engaged • Development Commitment Review (DCR) – Stakeholders’ commitment to support system development – Like getting married • Incremental Operational Capabilities (OCs) – Stakeholders’ commitment to support operations – Like having children May 19, 2009 Copyright © USC-CSSE 23 University of Southern California Center for Systems and Software Engineering Example ICM Commercial Application: Symbiq Medical Infusion Pump Winner of 2006 HFES Best New Design Award Described in NRC HSI Report, Chapter 5 May 19, 2009 Copyright © USC-CSSE 24 University of Southern California Center for Systems and Software Engineering Symbiq IV Pump ICM Process - I • Exploration Phase – – – – Stakeholder needs interviews, field observations Initial user interface prototypes Competitive analysis, system scoping Commitment to proceed • Valuation Phase – – – – – Feature analysis and prioritization Display vendor option prototyping and analysis Top-level life cycle plan, business case analysis Safety and business risk assessment Commitment to proceed while addressing risks May 19, 2009 Copyright © USC-CSSE 25 University of Southern California Center for Systems and Software Engineering Symbiq IV Pump ICM Process - II • Architecting Phase – – – – – – Modularity of pumping channels Safety feature and alarms prototyping and iteration Programmable therapy types, touchscreen analysis Failure modes and effects analyses (FMEAs) Prototype usage in teaching hospital Commitment to proceed into development • Development Phase – – – – Extensive usability criteria and testing Iterated FMEAs and safety analyses Patient-simulator testing; adaptation to concerns Commitment to production and business plans May 19, 2009 Copyright © USC-CSSE 26 University of Southern California Center for Systems and Software Engineering May 19, 2009 Copyright © USC-CSSE 27 University of Southern California Center for Systems and Software Engineering May 19, 2009 Copyright © USC-CSSE 28 University of Southern California Center for Systems and Software Engineering May 19, 2009 Copyright © USC-CSSE 29 University of Southern California Center for Systems and Software Engineering ICM Summary • Current processes not well matched to future challenges – Emergent, rapidly changing requirements – High assurance of scalable performance and qualities • Incremental Commitment Model addresses challenges – Assurance via evidence-based milestone commitment reviews, stabilized incremental builds with concurrent V&V • Evidence shortfalls treated as risks – Adaptability via concurrent agile team handling change traffic and providing evidence-based rebaselining of next-increment specifications and plans – Use of critical success factor principles: stakeholder satisficing, incremental growth, concurrent engineering, iterative development, riskbased activities and milestones • Major implications for funding, contracting, career paths May 19, 2009 Copyright © USC-CSSE 30 University of Southern California Center for Systems and Software Engineering Tutorial Outline • Challenges for developing next-generation software systems • Overview of ICM • Risk-based balance of agility and assurance • ICM process decision table • Guidance and examples for using the ICM • ICM tailoring exercise May 19, 2009 Copyright © USC-CSSE 31 University of Southern California Center for Systems and Software Engineering Using Risk to Balance Assurance and Agility - Overview Step 1. Risk Analysis Plan-driven risks dominate Step 2. Risk Comparison Rate the project’s environmental, agilityoriented and plan-driven risks. Compare the agile and Plandriven risks Agility risks dominate Go Risk-based Agile Go Risk-based Plan-driven Neither dominate Uncertain about ratings? Yes Buy information via prototyping, data collection and analysis No Step 3. Architecture Analysis Architect application to encapsulate agile parts Go Risk-based Agile in agile parts; Go Riskbased Plandriven elsewhere Step 5. Execute and Monitor Note: Feedback loops present, but omitted for simplicity May 19, 2009 Deliver incremental capabilities according to strategy Monitor progress and risks/opportunities, readjust balance and process as appropriate Copyright © USC-CSSE Tailor life cycle process around risk patterns and anchor point commitment milestones Step 4. Tailor Life Cycle 32 University of Southern California Center for Systems and Software Engineering Risks Used in Risk Comparison • Environmental risks – – – – Technology uncertainties Many stakeholders Complex system-of-systems Legacy compatibility • Agility risks – – – – – Scalability Use of simple design Personnel turnover Too-frequent releases Not enough agile-capable people • Plan-driven risks – – – – Rapid change Need for rapid results Emergent requirements Not enough discipline-capable people May 19, 2009 Copyright © USC-CSSE 33 University of Southern California Center for Systems and Software Engineering Two Examples • Two agent-based systems – Small – Event Managers application – Large – National Information System for Crisis Management (NISCM) application • Each example results in a development strategy based on risk analyses May 19, 2009 Copyright © USC-CSSE 34 University of Southern California Center for Systems and Software Engineering Event Managers Project • Small startup company • Diverse set of smaller agent-based planning applications • This project: support for managing the infrastructure and operations of conferences and conventions • Widening variety of options and interdependencies, makes an agent-based approach highly attractive May 19, 2009 Copyright © USC-CSSE 35 University of Southern California Center for Systems and Software Engineering Event Managers Home Ground Chart May 19, 2009 Copyright © USC-CSSE 36 University of Southern California Center for Systems and Software Engineering Event Managers Risks May 19, 2009 Copyright © USC-CSSE 37 University of Southern California Center for Systems and Software Engineering Event Managers Mitigations May 19, 2009 Copyright © USC-CSSE 38 University of Southern California Center for Systems and Software Engineering Event Managers Strategy 1. Startup Teambuilding and Shared Vision 2. Design, Development and Deployment Customer Management; Representative Users Joint DeveloperCustomer Agile Team • Establish CRACK joint management team • Develop shared vision, results chain, life cycle strategy, infrastructure choices • Establish commitment to proceed, incremental capabilities, backlog • Test, exercise, deploy new increment • Re-prioritize next-increment features • Analyze lessons learned; prepare strategy for next increment • Develop next-increment features LCA May 19, 2009 Copyright © USC-CSSE 39 University of Southern California Center for Systems and Software Engineering NISCM Profile • Broad coalition of government agencies and critical private-sector organizations • Support cross-agency and public-private sector coordination of crisis management activities • Adaptive mobile network, virtual collaboration, information assurance, and information integration technology • Private-sector system-of-systems integration contractor May 19, 2009 Copyright © USC-CSSE 40 University of Southern California Center for Systems and Software Engineering NISCM Home Ground Chart May 19, 2009 Copyright © USC-CSSE 41 University of Southern California Center for Systems and Software Engineering NISCM Risks May 19, 2009 Copyright © USC-CSSE 42 University of Southern California Center for Systems and Software Engineering NISCM Mitigations May 19, 2009 Copyright © USC-CSSE 43 University of Southern California Center for Systems and Software Engineering NISCM Strategy Startup Furnish CRACK representatives and alternates Stakeholders • Staff and organize to cover all success-critical risk areas • Prepare for and select competitors for concept definition Teambuilding and Shared Vision Systems Definition and Architecting • Develop results chains • Identify missing stakeholders • Enhance understanding • Explore goals, options, technology, prototypes, risks • Negotiate mutually satisfactory objectives and priorities • Formulate top-level operational concept, requirements, architecture, life cycle plan, feasibility rational • Select winning system integration contract • Prepare for/select competitors for component subcontract definition • Elaborate operational concept, prototypes, transition strategy • Evaluate/determine COTS, reuse, and architecture choices • Develop/ validate criticalinfrastructure software • Prioritize/sequence desired capabilities, outstanding risks • Formulate definitive operational concept, requirements, architecture, life cycle plan, feasibility rationale • Use to solicit/select component subcontractors Hold Life Cycle Objective Review. If feasibility rationale is valid, commit to proceed NSO and I3-led Project Risk Management Team • Ensure representative exercise of incremental capabilities • Monitor progress and new operational development Hold Life Cycle Architecture Review. If feasibility rationale is valid, commit to proceed • Develop compatible component-level prototypes, requirements, architectures, plans, critical software, feasibility rationale • Classify modules by likely stability and criticality Stable, Higher-criticality Module Teams Dynamic, Lower-criticality Module Teams May 19, 2009 Design, Development and Deployment LCO • Use risk to determine content of artifacts • Monitor project progress, risk resolution, and new technology developments • Identify/work critical projectlevel actions • Continuously integrate/ test growing software infrastructure and components Organize into disciplined and agile module teams Copyright © USC-CSSE LCA • Communicate proposed redirections • Prepare for and execute acceptance tests, installation, operational evolution • Analyze feedback on current version • Reprioritize features • Prepare strategy for next increment Plan, specify, develop stable, higher-criticality module increments Plan, specify, develop dynamic, lower-criticality module increments 44 University of Southern California Center for Systems and Software Engineering Risk Profiles Across Agent-Based Examples May 19, 2009 Copyright © USC-CSSE 45 University of Southern California Center for Systems and Software Engineering Tutorial Outline • Challenges for developing next-generation software systems • Overview of ICM • Risk-based balance of agility and assurance • ICM process decision table • Guidance and examples for using the ICM • ICM tailoring exercise May 19, 2009 Copyright © USC-CSSE 46 University of Southern California Center for Systems and Software Engineering The Incremental Commitment Life Cycle Process: Overview Anchor Point Milestones Synchronize, stabilize concurrency via FEDs Risk patterns determine life cycle process May 19, 2009 Copyright © USC-CSSE 47 University of Southern California Center for Systems and Software Engineering The ICM as Risk-Driven Process Generator • Stage I of the ICM has 3 decision nodes with 4 options/node – Culminating with incremental development in Stage II – Some options involve go-backs – Results in many possible process paths • Can use ICM risk patterns to generate frequently-used processes – With confidence that they fit the situation • Can generally determine this in the Exploration phase – Develop as proposed plan with risk-based evidence at VCR milestone – Adjustable in later phases May 19, 2009 Copyright © USC-CSSE 48 University of Southern California Center for Systems and Software Engineering Different Risk Patterns Yield Different Processes May 19, 2009 03/19/2008 Copyright ©USC-CSSE © USC-CSSE 49 49 University of Southern California Center for Systems and Software Engineering The ICM Process Decision Table: Key Decision Inputs • • • • Product and project size and complexity Requirements volatility Mission criticality Nature of Non-Developmental Item (NDI)* support – Commercial, open-source, reused components • Organizational and Personnel Capability * NDI Definition [DFARS]: a) any product that is available in the commercial marketplace; b) any previously developed product in use by a U.S. agency (federal, state, or local) or a foreign government that has a mutual defense agreement with the U.S.; c) any product described in the first two points above that requires only modifications to meet requirements; d) any product that is being produced, but not yet in the commercial marketplace, that satisfies the above criteria. May 19, 2009 Copyright © USC-CSSE 50 University of Southern California Center for Systems and Software Engineering The ICM Process Decision Table: Key Decision Outputs • Key Stage I activities: incremental definition • Key Stage II activities: incremental development and operations • Suggested calendar time per build, per deliverable increment May 19, 2009 Copyright © USC-CSSE 51 University of Southern California Center for Systems and Software Engineering Common Risk-Driven Special Cases of the ICM (Cases 1-4) Case 1: Use NDI Case 2: Agile Example: Small accounting system Size, Complexity: Size variable, complexity low Typical Change Rate/Month: Negligible Criticality: n/a NDI Support: Complete Organizational Personnel Capability: NDI-experienced (medium) Key Stage I Activities (Incremental Definition): Acquire NDI Key Stage II Activities (Incremental Development/Operations): Use NDI Time/Build: n/a Time/Increment: Vendor-driven Example: E-services Size, Complexity: Low Typical Change Rate/Month: 1-30% Criticality: Low to medium NDI Support: Good, in place Organizational Personnel Capability: Agile-ready, medium-high experience Key Stage I Activities (Incremental Definition): Skip Valuation and Architecting phases Key Stage II Activities (Incremental Development/Operations): Scrum plus agile methods of choice Time/Build: <= 1 day Time/Increment: 2-6 weeks Case 3: Architected Agile Case 4: Formal Methods Example: Business data processing Size, Complexity: Medium Typical Change Rate/Month: 1-10 % Criticality: Medium to high NDI Support: Good, most in place Organizational Personnel Capability: Agile-ready, medium to high experience Key Stage I Activities (Incremental Definition): Combine Valuation, Architecting phases. Complete NDI preparation. Key Stage II Activities (Incremental Development/Operations): Architecture-based Scrum of Scrums Time/Build: 2-4 weeks Time/Increment: 2-6 months May 19, 2009 Example: Security kernel; Safety-critical LSI chip Size, Complexity: Low Typical Change Rate/Month: 0.3% Criticality: Extra high NDI Support: None Organizational Personnel Capability: Strong formal methods experience Key Stage I Activities (Incremental Definition): Precise formal specification Key Stage II Activities (Incremental Development/Operations): Formally-based programming language; formal verification Time/Build: 1-5 days Time/Increment: 1-4 weeks Copyright © USC-CSSE 52 University of Southern California Center for Systems and Software Engineering Common Risk-Driven Special Cases of the ICM (Cases 5-8) Case 5: Hardware with Embedded Software Component Example: Multi-sensor control device Size, Complexity: Low Typical Change Rate/Month: 0.3 - 1 % Criticality: Medium to very high NDI Support: Good, in place Organizational Personnel Capability: Experienced, medium-high Key Stage I Activities (Incremental Definition): Concurrent hardware/software engineering. CDR-level ICM DCR Key Stage II Activities (Incremental Development/Operations): IOC development, LRIP, FRP. Concurrent version N+1 engineering Time/Build: Software 1-5 days Time/Increment: Market-driven Case 7: NDI-Intensive Case 8: Hybrid Agile/Plan-Driven System Example: Supply chain management Size, Complexity: Medium to high Typical Change Rate/Month: 0.3 – 3% Criticality: Medium to very high NDI Support: NDI-driven architecture Organizational Personnel Capability: NDI-experienced, medium to high Key Stage I Activities (Incremental Definition): Thorough NDI-suite life cycle cost-benefit analysis, selection, concurrent requirements/architecture definition Key Stage II Activities (Incremental Development/Operations): Proactive NDI evolution influencing, NDI upgrade synchronization Time/Build: Software: 1-4 weeks Time/Increment: Systems: 6-18 months May 19, 2009 Case 6: Indivisible IOC Example: Complete vehicle platform Size, Complexity: Medium to high Typical Change Rate/Month: 0.3 – 1% Criticality: High to very high NDI Support: Some in place Organizational Personnel Capability: Experienced, medium to high Key Stage I Activities (Incremental Definition): Determine minimumIOC likely, conservative cost. Add deferrable software features as risk reserve Key Stage II Activities (Incremental Development/Operations): Drop deferrable features to meet conservative cost. Strong award free for features not dropped. Time/Build: Software: 2-6 weeks Time/Increment: Platform: 6-18 months Example: C4ISR system Size, Complexity: Medium to very high Typical Change Rate/Month: Mixed parts; 1-10% Criticality: Mixed parts; Medium to very high NDI Support: Mixed parts Organizational Personnel Capability: Mixed parts Key Stage I Activities (Incremental Definition): Full ICM, encapsulated agile in high change, low-medium criticality parts (Often HMI, external interfaces) Key Stage II Activities (Incremental Development/Operations): Full ICM, three-team incremental development, concurrent V&V, nextincrement rebaselining Time/Build: 1-2 months Time/Increment: 9-18 months Copyright © USC-CSSE 53 University of Southern California Center for Systems and Software Engineering Common Risk-Driven Special Cases of the ICM (Cases 9-11) Case 9: Multi-Owner Directed System of Systems Example: Net-centric military operations Size, Complexity: Very high Typical Change Rate/Month: Mixed parts; 1-10 % Criticality: Very high NDI Support: Many NDIs, some in place Organizational Personnel Capability: Related experience, medium to high Key Stage I Activities (Incremental Definition): Full ICM; extensive multi-owner team building, negotiation Key Stage II Activities (Incremental Development/Operations): Full ICM; large ongoing system/software engineering effort Time/Build: 2-4 months Time/Increment: 18-24 months Case 10: Family of Systems Example: Medical device product line Size, Complexity: Medium to very high Typical Change Rate/Month: 1-3% Criticality: Medium to very high NDI Support: Some in place Organizational Personnel Capability: Related experience, medium to high Key Stage I Activities (Incremental Definition): Skip Valuation and Architecting phases Key Stage II Activities (Incremental Development/Operations): Scrum plus agile methods of choice Time/Build: 1-2 months Time/Increment: 9-18 months Case 11: Brownfield Example: Incremental legacy phaseout Size, Complexity: High to very high Typical Change Rate/Month: 0.3-3% Criticality: Medium-high NDI Support: NDI as legacy replacement Organizational Personnel Capability: Legacy re-engineering Key Stage I Activities (Incremental Definition): Re-engineer/refactor legacy into services Key Stage II Activities (Incremental Development/Operations): Incremental legacy phaseout Time/Build: 2-6 weeks/refactor Time/Increment: 2-6 months May 19, 2009 Copyright © USC-CSSE 54 University of Southern California Center for Systems and Software Engineering Common Risk-Driven Special Cases of the ICM (Cases 12a/b) Case 12a: Net-Centric Services – Community Support Case 12b: Net-Centric Services – Quick Response Decision Support Example: Community services or special interest group Size, Complexity: Low to medium Typical Change Rate/Month: 0.3-3% Criticality: Low to medium NDI Support: Tailorable service elements Organizational Personnel Capability: NDI-experienced Key Stage I Activities (Incremental Definition): Filter, select, compose, tailor NDI Key Stage II Activities (Incremental Development/Operations): Evolve tailoring to meet community needs Time/Build: <= 1 day Time/Increment: 2-12 months Example: Response to competitor initiative Size, Complexity: Medium to high Typical Change Rate/Month: 3-30% Criticality: Medium to high NDI Support: Tailorable service elements Organizational Personnel Capability: NDI-experienced Key Stage I Activities (Incremental Definition): Filter, select, compose, tailor NDI Key Stage II Activities (Incremental Development/Operations): Satisfy quick response; evolve or phase out Time/Build: <= 1 day Time/Increment: Quick response-driven LEGEND C4ISR: Command, Control, Computing, Communications, Intelligence, Surveillance, Reconnaissance. CDR: Critical Design Review. DCR: Development Commitment Review. FRP: Full-Rate Production. HMI: Human-Machine Interface. HW: Hard ware. IOC: Initial Operational Capability. LSI: Large Scale Integration. LRIP: Low-Rate Initial Production. NDI: Non-Development Item. SW: Software May 19, 2009 Copyright © USC-CSSE 55 University of Southern California Center for Systems and Software Engineering Tutorial Outline • • • • Motivation Overview of ICM Risk-based balance of agility and assurance ICM process decision table • Guidance and examples for using the ICM process decision table • ICM tailoring exercise May 19, 2009 Copyright © USC-CSSE 56 University of Southern California Center for Systems and Software Engineering Case 3: Architected Agile • Exploration phase determines – Need to accommodate fairly rapid change, emergent requirements, early user capability – Low risk of scalability up to 100 people – NDI support of growth envelope – Nucleus of highly agile-capable personnel – Moderate to high loss due to increment defects • • • • • • • • • Example: Business data processing Size/complexity: Medium Anticipated change rate (% per month): 1-10% Criticality: Medium to high NDI support: Good, most in place Organizational and personnel capability: Agile-ready, med-high capability Key Stage I activities: Combined Valuation and Architecting phase, complete NDI preparation Key Stage II activities: Architecture-based scrum of scrums Time/build: 2-4 weeks Time/increment: 2-6 months May 19, 2009 Copyright © USC-CSSE 57 University of Southern California Center for Systems and Software Engineering USA Medical Case Study • 1400 software people; 7M SLOC; 7 sites – 4 in Europe, 2 in India • 500 medical applications; 500 financial; others • Survivability-critical software problems – Reliability, productivity, performance, interoperability – Sarbanes-Oxley requirements – Management receptive to radical change • Some limited experimental use of agile methods – Led by top software technologist/manager • Committed to total change around Scrum and XP May 19, 2009 Copyright © USC-CSSE 58 University of Southern California Center for Systems and Software Engineering USA Medical Adoption Profile • July 2004 - July 2005 100 90 80 70 60 50 40 30 20 10 0 Scrum Teams – Recruit top people from all sites into core team(s) – Get external expert help – Develop architecture – Early Scrum successes with infrastructure – Revise policies and practices – Train, reculture everyone – Manage expectations • July 2005 – July 2006 2004 2005 2006 2007 Jul Jul Jul Mar May 19, 2009 – Begin full-scale development – Core teams as mentors Copyright © USC-CSSE 59 University of Southern California Center for Systems and Software Engineering Architected Agile – USA Medical • Include customers and marketers – New roles; do’s/don’ts/opportunities; CRACK personnel; full collaboration and teamwork; expectations management • Scrum; most XP practices; added company practices – 6-12 person teams with team rooms, dedicated servers – Hourly smoke test; nightly build and regression test – Just-in-time analysis; story-point estimates; fail fast; detailed short-term plans; company architecture compliance – Embrace change in applications and practices – Global teams: wikis, daily virtual meetings, act as if next-door • Release management – 2-12 week architecting Sprint Zero; 3-10 1-month Sprints; Release Sprint; 1-6 month beta test – Next Sprint Zero concurrent with Release Sprint • Initiative manager and team – Define practices; evolve infrastructure; provide training; guide implementation; evaluate compliance/usage; continuous improvement May 19, 2009 Copyright © USC-CSSE 60 University of Southern California Center for Systems and Software Engineering Case 7: NDI-Intensive • • • • • • • • • • • Biggest risks: incompatible NDI; rapid change, business/mission criticality; low NDI assessment and integration experience; supply chain stakeholder incompatibilities Example: Supply chain management Size/complexity: Medium to high Anticipated change rate (% per month): 0.3-3% Criticality: Medium to very high NDI support: NDI-driven architecture Organizational and personnel capability: NDI-experienced; medium to high capability Key Stage I activities: Thorough NDI-suite life cycle cost-benefit analysis, selection, concurrent requirements and architecture definition Key Stage II activities: Pro-active NDI evolution influencing, NDI upgrade synchronization Time/build: 1-4 weeks (software) Time/increment: 6-18 months (systems) May 19, 2009 Copyright © USC-CSSE 61 University of Southern California Center for Systems and Software Engineering COTS-NDI Decision Framework Start P7: Custom Development P1: Identify OC & P's: Evaluation Criteria, Weights and Scenarios C No Yes Deploy P6: Can Adjust OC & P's? P2: Identify alternatives: Candidate COTS products None Acceptable A P3: Assess Candidate COTS products Full COTS solution best No Application Code or Glue Code Required P4: Tailoring Required? Yes Partial COTS Solution Best P8: Coordinate Application Code development and Glue Code effort P5: Multiple COTS cover all OC & P’s? No Yes C No G P9: Develop Custom Code P10: Develop Glue Code T P11: Tailor COTS products May 19, 2009 P12: Productize, Transition Application Deploy Copyright © USC-CSSE 62 University of Southern California Center for Systems and Software Engineering Assessment Process Elements A1: Initial f iltering of candidates with respect to criteria P6: Can Adjust the OC & P’s None Acceptable G Candidates remaining None Acceptable P5: Multiple COTS cov er OC & P’s? Partial-COTS solution best Yes, Glue Code A2: Need tailoring or glue code f or ev aluation A3: Ev aluate remaining COTS candidates No Yes, Tailor T May 19, 2009 Full-COTS solution best P4: Tailoring Required? Tailoring or Glue Code uncertainties Copyright © USC-CSSE 63 University of Southern California Center for Systems and Software Engineering Example CBA: Oversize Image Viewer • Client: – A librarian at USC • Developers: – A development team of 5 graduates at USC • Main tasks – Development of a viewing capability for oversized images, including features such as • Image navigation, cataloging, search, archive, and access administration • Application of CBA decision framework – First three ICM phases – Sequencing of tasks driven by stakeholders’ win conditions and projects major risk items May 19, 2009 Copyright © USC-CSSE 64 University of Southern California Center for Systems and Software Engineering ICM Application to Oversize Image Viewer Stakeholders OC&P’s Alternatives Evaluation; Risks Risk Addressed Risk Resolution Product Elaboration Process Elaboration Stakeholder Review Commitment Exploration Developer, customer, library -user client, COTS vendors Image navigation, cataloguing, search, archive and access ad ministration COTS cost $25K, 5 user organizations IOC developed, transitioned in 24 weeks ER Mapper, Mr SID, Systems ABC, XYZ XYZ > $25K; ABC < 5 user org’s ER Mapper, Mr SID acceptable Risk picking wrong product without exercise Exercise ER Mapper, Mr SID ER Mapper image navigation, display stronger Use ER Mapper for image navigation, display Tailor ER Mapper for library-user Windows client Customer: want campus -wide usage, support of Unix, Mac platforms ER Mapper runs only on Windows Customer will find Unix, Mac user community representatives May 19, 2009 Valuation Foundations Additional user representatives (Unix, Mac Additional end-users (staff, students) for communities) usability evaluation System usable on Windows, Unix, and Detailed GUI’s satisfy representative users Mac platforms ER Mapper, Mr SID ER Mapper Windows-only; plans to support Unix, Mac; schedule unclear Mr SID supports all 3 platforms Risk of Unix, Mac non - support Ask ER Mapper for guaranteed Unix, Mac support in 9 months ER Mapper: no guaranteed Unix, Mac support even in 18 months Use Mr SID for image navigation, MySQL for catalog support, Java for admin/GUI support Prepare totailor Mr SID, My SQL to support all 3 platforms Need to address Mr SID/My SQL/Java interoperability, glue code issues; GUI usability issues Many GUI alternatives Risk of developing wrong GUI without end -user prototyping Mr SID/MY SQL/Java interoperability risks Customer will buy Mr SID Customer will commit to post -deployment support of software Users will commit to support training, installation, operations Users will support GUI prototype evaluations Copyright © USC-CSSE Prototype full range of system GUI’s, Mr SID/My SQL/Java interfaces Acceptable GUI’s, Mr SID/My SQL/.Java interfaces determined Develop production Mr SID/My SQL/Java glue code Use Schedule as Independent Variable (SAIV) process to ensure acceptable IOC in 24 weeks Need to prioritize desired capabilities to support SAIV process 65 University of Southern California Center for Systems and Software Engineering Use of the CBA Process Framework: Exploration Start P7: Custom Development P1: Identify OC & P's: Evaluation Criteria, Weights and Scenarios Assessing COTS’s for image viewing capabilities P6: Can Adjust OC & P's? P2: Identify alternatives: Candidate COTS products None Acceptable A P3: Assess Candidate COTS products Full COTS solution best No Application Code or Glue Code Required P4: Tailoring Required? Yes C No Yes Deploy New objectives Partial COTS Solution Best P8: Coordinate Application Code development and Glue Code effort P5: Multiple COTS cover all OC & P’s? No Yes C No G P9: Develop Custom Code P10: Develop Glue Code T P11: Tailor COTS products May 19, 2009 P12: Productize, Transition Application Deploy Copyright © USC-CSSE 66 University of Southern California Center for Systems and Software Engineering Composing the Assessment Element in Exploration Phase A1: Initial f iltering of candidates with respect to criteria P6: Can Adjust the OC & P’s None Acceptable G Candidates remaining None Acceptable P5: Multiple COTS cov er OC & P’s? Partial-COTS solution best Y es, Glue Code A2: Need tailoring or glue code f or ev aluation A3: Ev aluate remaining COTS candidates No Y es, Tailor T May 19, 2009 Full-COTS solution best P4: Tailoring Required? Tailoring or Glue Code uncertainties Copyright © USC-CSSE 67 University of Southern California Center for Systems and Software Engineering Use of the CBA Process Framework: Valuation Start P7: Custom Development P1: Identify OC & P's: Evaluation Criteria, Weights and Scenarios Assessing COTS’s for other features C No Yes P6: Can Adjust OC & P's? P2: Identify alternatives: Candidate COTS products None Acceptable A P3: Assess Candidate COTS products Full COTS solution best No Application Code or Glue Code Required P4: Tailoring Required? Yes Partial COTS Solution Best P8: Coordinate Application Code development and Glue Code effort Deploy Assessing COTS’s for additional objectives P5: Multiple COTS cover all OC & P’s? No Yes C No G P9: Develop Custom Code P10: Develop Glue Code T P11: Tailor COTS products May 19, 2009 P12: Productize, Transition Deploy Application Copyright © USC-CSSE 68 University of Southern California Center for Systems and Software Engineering Use of the CBA Process Framework: Foundations Start P7: Custom Development P1: Identify OC & P's: Evaluation Criteria, Weights and Scenarios C No Yes Deploy P6: Can Adjust OC & P's? P2: Identify alternatives: Candidate COTS products None Acceptable A P3: Assess Candidate COTS products Full COTS solution best No Application Code or Glue Code Required P4: Tailoring Required? Yes Partial COTS Solution Best P8: Coordinate Application Code development and Glue Code effort P5: Multiple COTS cover all OC & P’s? No Yes C No G P9: Develop Custom Code P10: Develop Glue Code Detailed assessment; tailoring and glue coding to help assessing interoperability T P11: Tailor COTS products May 19, 2009 P12: Productize, Transition Application Deploy Copyright © USC-CSSE 69 University of Southern California Center for Systems and Software Engineering Case 11: Brownfield • • • • • • • • • • Example: Incremental legacy phaseout Size/complexity: High to very high Anticipated change rate (% per month): 0.3-3 Criticality: Medium-high NDI support: NDI as legacy replacement Organizational and personnel capability: Legacy re-engineering Key Stage I activities: Re-engineer/refactor legacy into services Key Stage II activities: Incremental legacy phaseout Time/build: 2-6 week/refactor Time/increment: 2-6 months May 19, 2009 Copyright © USC-CSSE 70 University of Southern California Center for Systems and Software Engineering ICM and Brownfield Development • Many process models are Greenfieldoriented – Requirements→Design→Develop→Test→Operate • Failed Greenfield project example – Corporate central financial system – To replace spaghetti-code collection of COBOL programs • Improved ICM Brownfield approach – Concurrent new-system definition and legacy system re-engineering May 19, 2009 Copyright © USC-CSSE 71 University of Southern California Center for Systems and Software Engineering Failed Greenfield Corporate Financial System • Used waterfall approach – Gathered requirements – Chose best-fit ERP system – Provided remaining enhancements • Needed to ensure continuity of service – Planned incremental phase-in of new services • Failed due to inability to selectively phase out legacy services – Dropped after 2 failed tries at cost of $40M May 19, 2009 Copyright © USC-CSSE 72 University of Southern California Center for Systems and Software Engineering Legacy Systems Patched, Highly Coupled Financial and Non-Financial Services Legacy Business Services Project Services Contract Services Deliverables Management Billing Staffing Budgeting Work Breakdown Structure Earned Value Management Subcontracting Scheduling Progress Tracking Change Tracking Reqs, Configuration Management May 19, 2009 Copyright © USC-CSSE 73 University of Southern California Center for Systems and Software Engineering ICM Approach to Brownfield Engineering • Understanding needs – Analysis of legacy system difficulties • Envisioning opportunities – Concurrently decouple legacy financial and non-financial services, explore new system phase-in and architecture options • System scoping and architecting – Extract legacy financial, non-financial services – Prioritize, plan for incremental financial services phase-in/out • Feasibility evidence development – Successful examples of representative service extractions – Evidence of cost, schedule, performance feasibility May 19, 2009 Copyright © USC-CSSE 74 University of Southern California Center for Systems and Software Engineering Result of Legacy Re-engineering Legacy Business Services Contract Services Contract Financial Services •Billing •Subcontract payments •... May 19, 2009 Contract NonFinancial Services •Deliverables mgmt. •Terms compliance •... Project Services General Financial Services •Accounting •Budgeting •Earned value •Payroll •... General NonFinancial Services •Progress tracking •Change tracking •... Copyright © USC-CSSE Project Financial Services •WBS •Expenditure categories •... Project NonFinancial Services •Scheduling •Staffing •Reqs CM •... 75 University of Southern California Center for Systems and Software Engineering Frequently Asked Question • Q: Having all that ICM generality and then using the decision table to come back to a simple model seems like an overkill. – If my risk patterns are stable, can’t I just use the special case indicated by the decision table? • A: Yes, you can and should – as long as your risk patterns stay stable. But as you encounter change, the ICM helps you adapt to it. – And it helps you collaborate with other organizations that may use different special cases. May 19, 2009 Copyright © USC-CSSE 76 University of Southern California Center for Systems and Software Engineering Tutorial Outline • Challenges for developing next-generation software systems • Overview of ICM • Risk-based balance of agility and assurance • ICM process decision table • Guidance and examples for using the ICM • ICM tailoring exercise May 19, 2009 Copyright © USC-CSSE 77 University of Southern California Center for Systems and Software Engineering ICM Tailoring Exercise: SupplyChain.com agent-based system 1. Analyze project and determine key decision drivers 2. Based on key decision drivers, identify candidate ICM special case for development 3. Evaluate environment, agile, and plan-driven risks, and associated risk mitigation strategies May 19, 2009 Copyright © USC-CSSE 78 University of Southern California Center for Systems and Software Engineering SupplyChain.com Profile • Turnkey agent-based supply chain management systems • Distributed, multi-organization teams of about 50 mostly-experienced people • Parts of applications are relatively stable, while others are highly volatile • Architectures are driven by a few key COTS packages that are also continually evolving May 19, 2009 Copyright © USC-CSSE 79 University of Southern California Center for Systems and Software Engineering The ICM Process Decision Table: Key Decision Inputs • • • • Product and project size and complexity Requirements volatility Mission criticality Nature of Non-Developmental Item (NDI)* support – Commercial, open-source, reused components • Organizational and Personnel Capability * NDI Definition [DFARS]: a) any product that is available in the commercial marketplace; b) any previously developed product in use by a U.S. agency (federal, state, or local) or a foreign government that has a mutual defense agreement with the U.S.; c) any product described in the first two points above that requires only modifications to meet requirements; d) any product that is being produced, but not yet in the commercial marketplace, that satisfies the above criteria. May 19, 2009 Copyright © USC-CSSE 80 University of Southern California Center for Systems and Software Engineering Common Risk-Driven Special Cases of the ICM (Cases 1-4) Case 1: Use NDI Case 2: Agile Example: Small accounting system Size, Complexity: Size variable, complexity low Typical Change Rate/Month: Negligible Criticality: n/a NDI Support: Complete Organizational Personnel Capability: NDI-experienced (medium) Key Stage I Activities (Incremental Definition): Acquire NDI Key Stage II Activities (Incremental Development/Operations): Use NDI Time/Build: n/a Time/Increment: Vendor-driven Example: E-services Size, Complexity: Low Typical Change Rate/Month: 1-30% Criticality: Low to medium NDI Support: Good, in place Organizational Personnel Capability: Agile-ready, medium-high experience Key Stage I Activities (Incremental Definition): Skip Valuation and Architecting phases Key Stage II Activities (Incremental Development/Operations): Scrum plus agile methods of choice Time/Build: <= 1 day Time/Increment: 2-6 weeks Case 3: Architected Agile Case 4: Formal Methods Example: Business data processing Size, Complexity: Medium Typical Change Rate/Month: 1-10 % Criticality: Medium to high NDI Support: Good, most in place Organizational Personnel Capability: Agile-ready, medium to high experience Key Stage I Activities (Incremental Definition): Combine Valuation, Architecting phases. Complete NDI preparation. Key Stage II Activities (Incremental Development/Operations): Architecture-based Scrum of Scrums Time/Build: 2-4 weeks Time/Increment: 2-6 months May 19, 2009 Example: Security kernel; Safety-critical LSI chip Size, Complexity: Low Typical Change Rate/Month: 0.3% Criticality: Extra high NDI Support: None Organizational Personnel Capability: Strong formal methods experience Key Stage I Activities (Incremental Definition): Precise formal specification Key Stage II Activities (Incremental Development/Operations): Formally-based programming language; formal verification Time/Build: 1-5 days Time/Increment: 1-4 weeks Copyright © USC-CSSE 81 University of Southern California Center for Systems and Software Engineering Risks Used in Risk Comparison • Environmental risks – – – – Technology uncertainties Many stakeholders Complex system-of-systems Legacy compatibility • Agility risks – – – – – Scalability Use of simple design Personnel turnover Too-frequent releases Not enough agile-capable people • Plan-driven risks – – – – Rapid change Need for rapid results Emergent requirements Not enough discipline-capable people May 19, 2009 Copyright © USC-CSSE 82 University of Southern California Center for Systems and Software Engineering SupplyChain.com Home Ground Chart May 19, 2009 Copyright © USC-CSSE 83 University of Southern California Center for Systems and Software Engineering SupplyChain.com Risks May 19, 2009 Copyright © USC-CSSE 84 University of Southern California Center for Systems and Software Engineering SupplyChain.com Mitigations May 19, 2009 Copyright © USC-CSSE 85 University of Southern California Center for Systems and Software Engineering SupplyChain.com Strategy Startup 1. Teambuilding and Shared Vision Furnish CRACK representatives and alternates Stakeholders Project Manager and Risk Management Team • Develop benefitsrealization results chains • Identify missing stakeholders • Enhance mutual understanding • Explore goals, options, technology, prototypes, risks 2. Systems Definition and Architecting Review; Commit to proceed Staff and organize to cover all successcritical risk areas Agile Feature Team May 19, 2009 • Elaborate supply chain operational concept, prototypes, transition strategy • Evaluate and determine COTS, reuse, and architecture choices • Prioritize and sequence desired capabilities, outstanding risks • Establish project organization, overall process, and feature teams 3. Design, Development and Deployment • Ensure representative exercise of incremental capabilities • Monitor progress and new operational development Review; Commit to proceed • Monitor project progress, risk resolution, and new technology developments • Identify and work critical project-level actions • Use risk to determine content of artifacts • Communicate proposed redirections • Prepare for and execute acceptance tests, installation, operational evolution • Analyze feedback on current version • Reprioritize features • Prepare strategy for next increment • Consolidate process lessons learned • Develop and integrate new feature increments LCO LCA Copyright © USC-CSSE 86 University of Southern California Center for Systems and Software Engineering ICM Summary • Current processes not well matched to future challenges – Emergent, rapidly changing requirements – High assurance of scalable performance and qualities • Incremental Commitment Model addresses challenges – Assurance via evidence-based milestone commitment reviews, stabilized incremental builds with concurrent V&V • Evidence shortfalls treated as risks – Adaptability via concurrent agile team handling change traffic and providing evidence-based rebaselining of next-increment specifications and plans – Use of critical success factor principles: stakeholder satisficing, incremental growth, concurrent engineering, iterative development, riskbased activities and milestones – Can be adopted incrementally • Major implications for funding, contracting, career paths May 19, 2009 Copyright © USC-CSSE 87 University of Southern California Center for Systems and Software Engineering Implications for funding, contracting, career paths • Incremental vs. total funding – Often with evidence-based competitive downselect • No one-size-fits all contracting – Separate instruments for build-to-spec, agile rebaselining, V&V teams • With funding and award fees for collaboration, risk management • Compatible regulations, specifications, and standards • Compatible acquisition corps education and training – Generally, schedule/cost/quality as independent variable • Prioritized feature set as dependent variable • Multiple career paths – For people good at build-to-spec, agile rebaselining, V&V – For people good at all three • Future program managers and chief engineers May 19, 2009 Copyright © USC-CSSE 88 University of Southern California Center for Systems and Software Engineering ICM Transition Paths • Existing programs may benefit from some ICM principles and practices, but not others • Problem programs may find some ICM practices helpful in recovering viability • Primary opportunities for incremental adoption of ICM principles and practices – Supplementing traditional requirements and design reviews with development and review of feasibility evidence – Stabilized incremental development and concurrent architecture rebaselining – Using schedule as independent variable and prioritizing features to be delivered – Continuous verification and validation – Using the process decision table • See http://csse.usc.edu (tech report 2009-500) May 19, 2009 Copyright © USC-CSSE 89 University of Southern California Center for Systems and Software Engineering References - I • • • • • • • • • • • • • • • • • • Beck, K., Extreme Programming Explained, Addison Wesley, 1999. Boehm, B., “Some Future Trends and Implications for Systems and Software Engineering Processes”, Systems Engineering 9(1), pp. 1-19, 2006. Boehm, B., Brown, W., Basili, V., and Turner, R., “Spiral Acquisition of Software-Intensive Systems of Systems, CrossTalk, Vol. 17, No. 5, pp. 4-9, 2004. Boehm, B. and Lane J., "21st Century Processes for Acquiring 21st Century Software-Intensive Systems of Systems." CrossTalk: Vol. 19, No. 5, pp.4-9, 2006. Boehm, B., and Lane, J., “Using the ICM to Integrate System Acquisition, Systems Engineering, and Software Engineering,” CrossTalk, October 2007, pp. 4-9. Boehm, B., and Lane, J., “A Process Decision Table for Integrated Systems and Software Engineering,” Proceedings, CSER 2008, April 2008. Boehm, B., “Future Challenges and Rewards for Software Engineers,” DoD Software Tech News, October 2007, pp. 6-12. Boehm, B. et al., Software Cost Estimation with COCOMO II, Prentice Hall, 2000. Boehm, B., Software Engineering Economics, Prentice Hall, 2000. Carlock, P. and Fenton, R., "System of Systems (SoS) Enterprise Systems for Information-Intensive Organizations," Systems Engineering, Vol. 4, No. 4, pp. 242-26, 2001. Carlock, P., and J. Lane, “System of Systems Enterprise Systems Engineering, the Enterprise Architecture Management Framework, and System of Systems Cost Estimation”, 21st International Forum on COCOMO and Systems/Software Cost Modeling, 2006. Checkland, P., Systems Thinking, Systems Practice, Wiley, 1980 (2nd ed., 1999). Department of Defense (DoD), Defense Acquisition Guidebook, version 1.6, http://akss.dau.mil/dag/, 2006. Department of Defense (DoD), Instruction 5000.2, Operation of the Defense Acquisition System, May 2003. Department of Defense (DoD), Systems Engineering Plan Preparation Guide, USD(AT&L), 2004. Electronic Industries Alliance (1999); EIA Standard 632: Processes for Engineering a System Galorath, D., and Evans, M., Software Sizing, Estimation, and Risk Management, Auerbach, 2006. Hall, E.T., Beyond Culture, Anchor Books/Doubleday, 1976. May 19, 2009 Copyright ©USC-CSSE © USC-CSSE 90 University of Southern California Center for Systems and Software Engineering References -II • • • • • • • • • • • • • • • • Highsmith, J., Adaptive Software Development, Dorset House, 2000. International Standards Organization, Information Technology Software Life Cycle Processes, ISO/IEC 12207, 1995 ISO, Systems Engineering – System Life Cycle Processes, ISO/IEC 15288, 2002. Jensen, R. “An Improved Macrolevel Software Development Resource Estimation Model,” Proceedings, ISPA 5, April 1983, pp. 88-92. Krygiel, A., Behind the Wizard’s Curtain; CCRP Publication Series, July, 1999, p. 33 Lane, J. and Boehm, B., "System of Systems Cost Estimation: Analysis of Lead System Integrator Engineering Activities", Information Resources Management Journal, Vol. 20, No. 2, pp. 23-32, 2007. Lane, J. and Valerdi, R., “Synthesizing SoS Concepts for Use in Cost Estimation”, Proceedings of IEEE Systems, Man, and Cybernetics Conference, 2005. Lientz, B., and Swanson, E.B., Software Maintenance Management, Addison Wesley, 1980. Madachy, R., Boehm, B., Lane, J., "Assessing Hybrid Incremental Processes for SISOS Development", USC CSSE Technical Report USC-CSSE-2006-623, 2006. Maier, M., “Architecting Principles for Systems-of-Systems”; Systems Engineering, Vol. 1, No. 4 (pp 267-284). Maier, M., “System and Software Architecture Reconciliation,” Systems Engineering 9 (2), 2006, pp. 146-159. Northrop, L., et al., Ultra-Large-Scale Systems: The Software Challenge of the Future, Software Engineering Institute, 2006. Pew, R. W., and Mavor, A. S., Human-System Integration in the System Development Process: A New Look, National Academy Press, 2007. Putnam, L., “A General Empirical Solution to the Macro Software Sizing and Estimating Problem,” IEEE Trans SW Engr., July 1978, pp. 345-361. Rechtin, E. Systems Architecting, Prentice Hall, 1991. Schroeder, T., “Integrating Systems and Software Engineering: Observations in Practice,” OSD/USC Integrating Systems and Software Engineering Workshop, http://csse.usc.edu/events/2007/CIIForum/pages/program.html, October 2007. May 19, 2009 Copyright ©USC-CSSE © USC-CSSE 91 University of Southern California Center for Systems and Software Engineering List of Acronyms B/L C4ISR CD CDR COTS DCR DI DoD ECR EVMS FCR FED FMEA FRP GAO GUI May 19, 2009 Baselined Command, Control, Computing, Communications, Intelligence, Surveillance, Reconnaissance Concept Development Critical Design Review Commercial Off-the-Shelf Development Commitment Review Development Increment Department of Defense Exploration Commitment Review Earned Value Management System Foundations Commitment Review Feasibility Evidence Description Failure Modes and Effects Analysis Full-Rate Production Government Accountability Office Graphical User Interface Copyright ©USC-CSSE © USC-CSSE 92 University of Southern California Center for Systems and Software Engineering List of Acronyms HMI HSI HW ICM IOC IRR IS&SE LCO LRIP MBASE NDI NRC OC OCR OO&D OODA O&M May 19, 2009 (continued) Human-Machine Interface Human-System Interface Hardware Incremental Commitment Model Initial Operational Capability Inception Readiness Review Integrating Systems and Software Engineering Life Cycle Objectives Low-Rate Initial Production Model-Based Architecting and Software Engineering Non-Developmental Item National Research Council Operational Capability Operations Commitment Review Observe, Orient and Decide Observe, Orient, Decide, Act Operations and Maintenance Copyright ©USC-CSSE © USC-CSSE 93 University of Southern California Center for Systems and Software Engineering List of Acronyms PDR PM PR PRR RUP SoS SoSE SSE SW SwE SysE Sys Engr S&SE USD (AT&L) VCR V&V WBS WMI May 19, 2009 (continued) Preliminary Design Review Program Manager Public Relations Product Release Review Rational Unified Process System of Systems System of Systems Engineering Systems and Software Engineering Software Software Engineering Systems Engineering Systems Engineer Systems and Software Engineering Under Secretary of Defense for Acquisition, Technology, and Logistics Validation Commitment Review Verification and Validation Work Breakdown Structure Warfighter-Machine Interface Copyright ©USC-CSSE © USC-CSSE 94 University of Southern California Center for Systems and Software Engineering Lifecycle Evolution Motivators as Identified by CSSE Sponsors and Affiliates • Current lifecycle models and associated practices – Based on outdated assumptions – Don’t always address today’s system development challenges, especially as systems become more complex • Need better integration of – – – – Systems engineering Software engineering Human factors engineering Specialty engineering (e.g. information assurance, safety) • Need to better identify and manage critical issues and risks up front (Young memo) Additional details found in Backup Charts… May 19, 2009 Copyright © USC-CSSE 95 University of Southern California Center for Systems and Software Engineering Current SysE-SwE Guidance: Outdated Assumptions Example: SysE Plan Preparation Guide Sometimes OK for hardware; generally not for software • • • • • • • • • An omniscient authority pre-establishes the requirements, preferred system concept, etc. (A4.1, 4.2, 4.4) Technical solutions are mapped and verified with respect to these (A4.1, 4.2, 4.4) They and technology do not change very often (A4.2, 4.5, 6.2) – Emphasis on rigor vs. adaptability The program has stable and controllable external interfaces (A4.5) Project organization is function-hierarchical and WBS-oriented (A3.1, 3.2) All requirements are equally important (A4.2) Reviews event/product-based vs. evidence-based (A5.2) The program’s critical path can be defined up front (A6.1) Can achieve optimum readiness at minimum life-cycle cost (A6.5) – No slack for contingencies May 19, 2009 Copyright © USC-CSSE 96 University of Southern California Center for Systems and Software Engineering System/Software Architecture Mismatches - Maier, 2006 • System Hierarchy • Software Hierarchy – Part-of relationships; no shared parts – Uses relationships; layered multi-access – Function-centric; single data dictionary – Data-centric; classobject data relations – Interface dataflows – Interface protocols; concurrency challenges – Dynamic functionalphysical migration – Static functionalphysical allocation May 19, 2009 Copyright © USC-CSSE 97 University of Southern California Center for Systems and Software Engineering Examples of Architecture Mismatches • Fractionated, incompatible sensor data management … … Sensor 1 SDMS1 … Sensor 2 Sensor 3 Sensor n SDMS2 SDMS3 SDMSn • “Touch Football” interface definition earned value – Full earned value taken for defining interface dataflow – No earned value left for defining interface dynamics • Joining/leaving network, publish-subscribe, interrupt handling, security protocols, exception handling, mode transitions – Result: all green EVMS turns red in integration May 19, 2009 Copyright © USC-CSSE 98 University of Southern California Center for Systems and Software Engineering Effect of Software Underrepresentation •Software risks discovered too late •Slow, buggy change management •Recent large project reorganization Original (WBS-based) New PM PM C4ISR Sys Engr C4ISR Platforms Software Sys Engr SW Sensors Networks WMI SW SW SW Sensors SW May 19, 2009 Copyright © USC-CSSE Networks SW 99 University of Southern California Center for Systems and Software Engineering ICM Integrates Strengths of Current Process Models—But not their Weaknesses • V-Model: Emphasis on early verification and validation – But not ease of sequential, single-increment interpretation • Spiral Model: Risk-driven activity prioritization – But not lack of well-defined in-process milestones • RUP and MBASE: Concurrent engineering stabilized by anchor point milestones – But not software orientation • Lean Development: Emphasis on value-adding activities – But not repeatable manufacturing orientation • Agile Methods: Adaptability to unexpected change – But not software orientation, lack of scalability May 19, 2009 Copyright ©USC-CSSE © USC-CSSE 100 University of Southern California Center for Systems and Software Engineering Case 1: Use NDI • • Exploration phase identifies NDI opportunities NDI risk/opportunity analysis indicates risks acceptable – – – – – – • • • • • • • • • Product growth envelope fits within NDI capability Compatible NDI and product evolution paths Acceptable NDI volatility, some open-source components highly volatile Acceptable usability, dependability, interoperability NDI available or affordable Example: Small accounting system Size/complexity: Low Anticipated change rate (% per month): Low Criticality: Low NDI support: Complete Organizational and personnel capability: NDI-experienced Key Stage I activities: Acquire NDI Key Stage II activities: Use NDI Time/build: Driven by time to initialize/tailor NDI Time/increment: Driven by NDI upgrades May 19, 2009 Copyright © USC-CSSE 101 University of Southern California Center for Systems and Software Engineering Case 1 Elaboration • • Suppose you have an application for which an appropriate NDI (COTS, open source, reuse library, customer-furnished package) solution is available, and other options of developing perhaps a better version yourself or outsourcing such a development. Even if you produce a better solution (frequently not the case), you will generally incur more expense and take longer to begin to capitalize on its benefits. And you will often find that the NDI package has features that you hadn’t realized you would need, but are there when you need them. On the other hand, there are risks that may disqualify some NDIs. They may be overly complex for your needs, incompatible with your other applications, or highly volatile. See the discussion in Section 33.1 of Software Engineering Economics (Boehm, 1981) for more about the pros and cons of NDI solutions. May 19, 2009 Copyright © USC-CSSE 102 University of Southern California Center for Systems and Software Engineering Case 2: Pure Agile Methods • Exploration phase determines – – – – – • • • • • • • • • • Low product and project size and complexity Fixing increment defects in next increment acceptable Existing hardware and NDI support of growth envelope Sufficient agile-capable personnel Need to accommodate rapid change, emergent requirements, early user capability Example: E-services Size/complexity: Low Anticipated change rate (% per month): 1-30% Criticality: Low to medium NDI support: Good; in place Organizational and personnel capability: Agile-ready, medium to high capability Key Stage I activities: Skip Valuation and Architecting phases Key Stage II activities: Scrum plus agile methods of choice Time/build: Daily Time/increment: 2-6 weeks May 19, 2009 Copyright © USC-CSSE 103 University of Southern California Center for Systems and Software Engineering Case 2 Elaboration • • If your project is small (less than 10 people) and its criticality involves the loss of discretionary vs. essential funds, a pure agile method such as Extreme Programming (Beck, 1999), Scrum (Schwaber, 2002), or Crystal (Cockburn, 2002) is generally best if you have relatively high-capability, agile-ready personnel. The risks of using a more formal, plan-driven approach are less adaptability to change and belated feedback on the product’s capabilities. The biggest risk is to try to develop the application all at once for several months, and then find that it is a mismatch to the users’ needs. Agile developers have found that the best way to address this risk is to organize the project into short (2-6 week) delivery increments that may be incomplete, but provide early useful capabilities. Any flaws can then be detected early and fixed in the next increment (for very high criticality applications, this would not be acceptable). On a small project it is also easy to set up a daily build and regression test structure that identifies integration problems early when they are easier to fix. Some risks of using the agile approach is that it is harder to write a contract for what is being developed; that it may sub optimize for early success by using unscalable capabilities (fourth-generation languages, running all in main memory); or high personnel turnover. See (Boehm and Turner, 2004), pp. 121-128 for an example risk analysis of an agent-based event planning system, ending with a decision to go agile. May 19, 2009 Copyright © USC-CSSE 104 University of Southern California Center for Systems and Software Engineering Case 3 Elaboration • For medium-size (20-80 people), medium complexity (reasonably mature and scalable technology; largely compatible shareholders), agile methods can be scaled using an Architected Agile approach with early investment in a largely change-prescient architecture and user/developer/customer team building. For relatively stable projects (0.3-1% change/month), plan-driven methods can be used with low risk. But for higher rates of changes (1-10%/month), a more agile approach is less risky. A risk analysis of a 50-person, medium sized architecture-based agile supply chain management project is provided on pages 106-121 of (Boehm and Turner, 2004). A number of organizations in such areas as corporate infrastructure, medical, aerospace, and ERP applications have reported significant gains in adaptability and quality of the Architected Agile approach over plan-driven methods for such projects. However, others that had less capable and agile-ready people, less management and customer commitment, and less up-front architecture investment have not. (Boehm, 2007) May 19, 2009 Copyright © USC-CSSE 105 University of Southern California Center for Systems and Software Engineering Case 4: Formal Methods • • • • • • • • • • • Biggest risks: Software/hardware does not accurately implement required algorithm precision, security, safety mechanisms, or critical timing Example: Security kernel or safety-critical LSI chip Size/complexity: Low Anticipated change rate (% per month): 0.3% Criticality: Extra high NDI support: None Organizational and personnel capability: Strong formal methods experience Key Stage I activities: Precise formal specification Key Stage II activities: Formally-based programming language; formal verification Time/build: 1-5 days Time/increment: 1-4 weeks May 19, 2009 Copyright © USC-CSSE 106 University of Southern California Center for Systems and Software Engineering Case 4 Elaboration • • Formal methods involve the development and verification of a precise mathematical specification of the behavior of a hardware and/of software systems; an implementation of the system in formal-semantics-based languages; and a mathematical proof that the implementation is exactly equivalent to the specification (no more; no less). Such methods are expensive relative to standard commercial practice and require scarce high-capability personnel, but are inexpensive relative to a massive product recall, expensive lawsuits, or a massive loss of valuable and confidential information. Current formal methods generally require repeating the expensive mathematical proof process whenever the specification or implementation is changed, making the approach less viable for systems with highly volatile requirements. In general, non-developmental items are not precisely specified and verified enough to be safely used in such systems. Also, formal methods have limited scalability; almost all fully-verified software systems have less than 10,000 lines of code. However, some progress is being made toward modularizing such systems so that implementations and proofs can be built up incrementally via lower-level lemmas and theorems. May 19, 2009 Copyright © USC-CSSE 107 University of Southern California Center for Systems and Software Engineering Case 5: Hardware Component with Embedded Software • Biggest risks: Device recall, lawsuits, production line rework, hardware-software integration – DCR carried to Critical Design Review level – Concurrent hardware-software design • Criticality makes Agile too risky – Continuous hardware-software integration • Initially with simulated hardware • Low risk of overrun – Low complexity, stable requirements and NDI – Little need for risk reserve – Likely single-supplier software May 19, 2009 Copyright © USC-CSSE 108 University of Southern California Center for Systems and Software Engineering Case 5: Hardware Component with Embedded Software (continued) • • • • • • • • • • Example: Multi-sensor control device Size/complexity: Low Anticipated change rate (% per month): 0.3-1% Criticality: Medium to very high NDI support: Good, in place Organizational and personnel capability: Experienced; medium to high capability Key Stage I activities: Concurrent hardware and software engineering; CDR-level ICM DCR Key Stage II activities: IOC Development, LRIP,FRP, concurrent version N+1 engineering Time/build: 1-5 days (software) Time/increment: Market-driven May 19, 2009 Copyright © USC-CSSE 109 University of Southern California Center for Systems and Software Engineering Case 5 Elaboration • The application classes above have been mostly software-intensive. The differences in economic and risk patterns for hardware-intensive projects (Boehm and Lane, 2007) will create different risk-based special cases of the ICM. Once a project commits to a particular manufacturing approach and infrastructure, the hardware cost of change will be much higher. And the primary costs at risk are in development and manufacturing, particularly if the component is cheaper to replace than to fix or if fixes can be accomplished by software workarounds. Thus, the ICM Stage I activities of producing and validating detailed specifications and plans are much more cost-effective than for the agile cases above. They will often go beyond the usual level of detail (Critical Design Review versus evidencebased Preliminary Design Review) for an ICM Development Commitment Review (DCR), since so many of the details are likely to be major sources of rework expenditures and delay if wrong. And after Initial Operational Capability (IOC) development, the rework risks generally dictate an incremental low rate initial production phase before a full-rate production phase in Stage II. In case the component is planned to evolve to subsequent hardware-software reconfigurations, the ICM approach of having a concurrent systems engineering team developing specifications and plans for the “N+1st “ increment could be adopted. The length of these later increments will be driven by the product’s marketplace or competitive situation. May 19, 2009 Copyright © USC-CSSE 110 University of Southern California Center for Systems and Software Engineering Case 6: Indivisible IOC • Biggest risk: Complexity, NDI uncertainties cause costschedule overrun – Similar strategies to case 5 for criticality (CDR, concurrent HWSW design, continuous integration) – Add deferrable software features as risk reserve • Adopt conservative (90% sure) cost and schedule • Drop software features to meet cost and schedule • Strong award fee for features not dropped – Likely multiple-supplier software makes longer (multi-weekly) builds more necessary May 19, 2009 Copyright © USC-CSSE 111 University of Southern California Center for Systems and Software Engineering Case 6: Indivisible IOC (continued) • • • • • • • • • • Example: Complete vehicle platform Size/complexity: Medium to high Anticipated change rate (% per month): 0.3-1% Criticality: High to very high NDI support: Some in place Organizational and personnel capability: Experienced, medium to high capability Key Stage I activities: Determine minimum-IOC likely, conservative cost; Add deferrable software features as risk reserve Key Stage II activities: Drop deferrable features to meet conservative cost; Strong award fee for features not dropped Time/build: 2-6 weeks (software) Time/increment: 6-18 months (platform) May 19, 2009 Copyright © USC-CSSE 112 University of Southern California Center for Systems and Software Engineering Case 6 Elaboration • More complex hardware intensive systems, such as aircraft, may have a great deal of software that can be incrementally developed and tested, but may have an indivisible hardware IOC that must be developed as a unit before it can be safely tested (e.g., an automobile or aircraft’s braking system or full set of safety-critical vehicle controls). Relative to the cost and duration of the software increments, the indivisible hardware IOC has two significant sources of risk: – – – • It cannot fit into smaller software increments It cannot drop required hardware features to meet IOC schedule/cost/quality as independent variable. The first can be addressed by synchronizing the hardware IOC with the Nth software increment (e.g., (Rechtin and Maier, 1997) osculating orbits for hardware and software). If some combination of schedule/cost/quality is truly the project IOC’s independent variable, then one does not want to commit to a most-likely combination of schedule/cost/quality, as there will be a roughly 50% chance of an overrun or quality shortfall in completing the indivisible IOC. Rather, it is better to determine a conservative IOC cost and schedule for meeting the quality objective, and use the difference between the conservative cost and schedule and the mostlikely cost and schedule as a risk reserve. The best way to do this is to use the conservative cost and schedule as the IOC target, and to determine a set of desired but non-essential, easy to drop software features that could be developed within the risk reserve. Then, if the most-likely indivisible IOC capability begins to overrun, some desired software features can be dropped without missing the scheduled delivery time and cost. There should also be a strong award-fee incentive for the developers to minimize the number of features that need to be dropped. May 19, 2009 Copyright © USC-CSSE 113 University of Southern California Center for Systems and Software Engineering Case 7 Elaboration • • Our experiences in developing USC web-service applications between 1996 and 2004 was that they went from 28% of the application’s functionality being delivered by NDI components to 80% (Yang et al, 2005). A similar trend was identified by the 2001 Standish Report, which reported that 53% of the functionality of commercial software applications was being delivered by NDI components in 2000 (Standish, 2001). The economics of NDI-intensive systems dictates a bottom-up versus a top-down approach to system development, in which the capability envelope of the NDI determines the affordable requirements, rather than a top-down requirements-tocapability approach. A large supply-chain management system may need to choose among several NDI candidates each for such functions as inventory control, trend analysis, supplier/customer relations management, transportation planning, manufacturing control, and financial transactions; and evaluate not only the candidates’ cost/performance aspects, but also their interoperability with each other and with the corporation’s legacy infrastructure. Besides NDI assessment, other significant sources of effort can be NDI tailoring, NDI integration, and effect of NDI version volatility and obsolescence; see (Yang et al, 2005). A particular challenge in Stage II is the effect of NDI volatility and obsolescence. Surveys have indicated that commercial NDI products have a new release about every 10 months, and that old releases are supported by the vendor for about 3 releases. Some large systems have had about 120 NDI components, indicating that about 12 components will have new releases each month, and that not upgrading will leave each component unsupported in about 30 months. In such cases, a great deal of attention needs to be paid to upgrade synchronization, and to pro-active NDI evolution influencing. Some large organizations synchronize their NDI upgrades to their major re-training cycles of about 12-18 months. For additional NDI best practices, see (Wallnau et al, 2002). May 19, 2009 Copyright © USC-CSSE 114 University of Southern California Center for Systems and Software Engineering Case 8: Hybrid Agile/Plan-Driven System • • • • • • • • • • • Biggest risks: large scale, high complexity, rapid change, mixed high/low criticality, partial NDI support, mixed personnel capability Example: C4ISR system Size/complexity: Medium to very high Anticipated change rate (% per month): Mixed parts; 1-10% Criticality: Mixed parts; medium to very high NDI support: Mixed parts Organizational and personnel capability: Mixed parts Key Stage I activities: Full ICM; encapsulated agile in high changed; low-medium criticality parts (often HMI, external interfaces) Key Stage II activities: Full ICM, three-team incremental development, concurrent V&V, next-increment rebaselining Time/build: 1-2 months Time/increment: 9-18 months May 19, 2009 Copyright © USC-CSSE 115 University of Southern California Center for Systems and Software Engineering Case 8 Elaboration • Some large, user-intensive systems such as C4ISR systems, air traffic control systems, and network control systems have a mix of relatively stable, highcriticality elements (sensors and communications; key business logic) and more volatile, more moderately critical elements such as GUI displays, electronic warfare countermeasures, and interfaces with externally evolving systems. As many acquisitions of this nature have shown, it is highly risky to apply one-sizefits-all processes and incentive structures to these differing classes of elements. Instead, in Stage I, it is important to determine which system elements belong in which class along with the other functions of understanding needs, envisioning opportunities, NDI assessment, scoping the system, and determining feasible requirements and increments performed for complex systems in Stage I; to architect the system to encapsulate the volatile parts for development by agile teams; and to organize to use plan-driven development for the other elements of the overall system. In Stage II, the cycles for the agile teams are likely to be significantly shorter than those for the plan-driven teams. May 19, 2009 Copyright © USC-CSSE 116 University of Southern California Center for Systems and Software Engineering Case 9: Multi-Owner System of Systems • Biggest risks: all those of Case 8 plus – Need to synchronize, integrate separately-managed, independently-evolving systems – Extremely large-scale; deep supplier hierarchies – Rapid adaptation to change extremely difficult • • • • • • • • • Example: Net-centric military operations or global supply chain management Size/complexity: Very high Anticipated change rate (% per month): Mixed parts; 1-10% Criticality: Very high NDI support: Many NDIs; some in place Organizational and personnel capability: Related experience, medium to high Key Stage I activities: Full ICM; extensive multi-owner teambuilding, negotiation Key Stage II activities: Full ICM; large ongoing system/software engineering effort Time/build: 2-4 months Time/increment:18-24 months May 19, 2009 Copyright © USC-CSSE 117 University of Southern California Center for Systems and Software Engineering Case 9 Elaboration • • • In this situation, your goal is to integrate a set of existing systems (or guide and evolve the integration of a set of existing systems). These systems are primarily developed, owned, and maintained by an organization other than the one that is attempting to manage and guide the set of systems as a system of systems. Because of the independence of these constituent systems, the SoS organization has little or no formal control over the processes used to maintain and evolve the constituent systems. The SoS may be an enterprise wide business SoS, with the constituents being primarily COTS products along with some legacy applications. Or it may be Department of Defense (DoD) warfighting SoS, where the constituent legacy systems are integrated to increase capabilities on the battle field. Traditional systems engineering (SE) activities are typically tailored for the SoS case to define an SoS architecture, better coordinate the activities of multiple systems in migrating to the SoS architecture, and provide synchronization points for the SoS. In (OUSD AT&L, 2008), pilot studies have shown that many DoD SoS have re-organized the traditional SE activities into a set of seven core elements: 1) translating capability objectives, 2) understanding systems and relationships, 3) assessing performance to capability objectives, 4) developing, evolving, and maintaining SoS design, 5) monitoring and assessing changes, 6) addressing new requirements and options, and 7) orchestrating updates to SoS. Further analysis shows, that these elements map fairly well to the hybrid agile/plan-driven case (Case 8) at the SoS level. What makes this case different from Case 8, is that each of the constituent systems is using their own processes, which could be any of the above cases, depending on the scope, complexity, and characteristics of the constituent system. What is key is that the Case 9 extends Case 8 to include information or participation of the constituent systems in the agile planning activities and lets the “battle rhythm” of the constituent system increments guide the SoS plan-driven and V&V activities. May 19, 2009 Copyright © USC-CSSE 118 University of Southern California Center for Systems and Software Engineering Case 10: Family of Systems • Biggest risks: all those of Case 8 plus – Need to synchronize, integrate separately-managed, independentlyevolving systems – Extremely large-scale; deep supplier hierarchies – Rapid adaptation to change extremely difficult • • • • • • • • • Example: Medical device product line Size/complexity: Medium to very high Anticipated change rate (% per month): 1-3% Criticality: Medium to very high NDI support: Some in place Organizational and personnel capability: Related experience, medium to high capability Key Stage I activities: Full ICM; full stakeholder participation in product line scoping; strong business case Key Stage II activities: Full ICM; extra resources for first system, version control, multi-stakeholder support Time/build: 1-2 months Time/increment: 9-18 months May 19, 2009 Copyright © USC-CSSE 119 University of Southern California Center for Systems and Software Engineering Case 10 Elaboration • Families of systems are typically a set of systems that belong to a product line and can be easily used to customize a solution for a given need. This might be a suite of medical devices or a suite of applications to customer support. This is often the set of systems developed by a vendor that become the NDI components for CASE 7 above. Again, the rigor required for the SoS case is present here. However, in this situation, the family of systems is typically owned and evolved by a single organization/vendor and presents a case where the owning organization has much more control over the evolution of the components of the family of systems, thus possibly reducing some risks and allowing the ICM process to be a little more streamlined. May 19, 2009 Copyright © USC-CSSE 120 University of Southern California Center for Systems and Software Engineering Case 11 Elaboration • • • • • A Brownfield counterexample involved a major US corporation that used a Greenfield systems engineering and development approach to develop a new Central Corporate Financial System to replace a patched-together collection of strongly-coupled and poorly documented COBOL business data processing programs. The system included an early Enterprise Resource Planning (ERP) system that was well matched to the corporation's overall financial needs, but not to its detailed business processes, which included various workarounds to compensate for difficulties with the legacy software. The new system was well organized to support incremental implementation, but was dropped at a cost of $40 million after two failed tries to provide continuity of service, due primarily to the infeasibility of incrementally phasing out the legacy software and business processes compatibly with the new system's incremental capabilities. The ICM can be used to organize systems engineering and acquisition processes in ways that better support Brownfield legacy software re-engineering so that organizations can better provide continuity of services. In particular, its concurrent activities of Understanding Needs, Envisioning Opportunities, System Scoping and Architecting, Feasibility Evidence Development, and Risk/Opportunity Assessment enable projects to focus specifically on their legacy system constraints and on opportunities to deal with them. The application of the ICM to the Brownfield corporate counterexample situation would have avoided the failures of the Greenfield development. Its Understanding Needs activity would have determined the ways in which the legacy system had intertwined financial and other business services. For examples, Project Services included budgeting and scheduling, work breakdown system accounting, earned value management intertwined with requirements, version and configuration management; Contract Services included expenditure category management, billing, and receivables management intertwined with deliverables management and engineering change proposal tracking; with similar intertwining in Personnel Services and Marketing Services. The ICM's Envisioning Opportunities activity would have identified opportunities to use large-scale refactoring methods to decouple the financial and non-financial elements of these services in ways that would make it feasible for them to interoperate with a Financial Services element. Its System Scoping and Architecting activity would have repackaged the legacy software and developed the new architecture around financial services that would support incremental phaseout, and its Feasibility Evidence Development activity would have assessed any outstanding risks and covered them with risk management plans that would be tracked to ensure project success. A good example of a Brownfield methodology with several case study examples is provided in (Hopkins and Jenkins, 2008). May 19, 2009 Copyright © USC-CSSE 121 University of Southern California Center for Systems and Software Engineering Case 12a: Net-Centric Services – Community Support • • • • • • • • • • Example: Community services or special interest group Size/complexity: Low to medium Anticipated change rate (% per month): 0.3-3 Criticality: Low to medium NDI support: Tailorable service elements Organizational and personnel capability: NDI-experienced Key Stage I activities: Filter, select, compose, tailor NDI Key Stage II activities: Evolve tailoring to meet community needs Time/build: <= 1 day Time/increment: 2-12 months May 19, 2009 Copyright © USC-CSSE 122 University of Southern California Center for Systems and Software Engineering Case 12a Elaboration • • Net-Centric Services for community support tend to fall into two categories. One involves community service organizations providing needed services for child care, elder care, handicapped, homeless, or jobless people. Their information processing service needs include tracking of clients, volunteers, donors, donations, events, and provision of news and communication services. These used to require considerable programming to realize, but now can be realized by combining and tailoring NDI packages offering such services. The other category of net-centric services for community support involves special interest groups (professionals, hobbyists, committees, ethnic groups) with similar needs for tracking members, interests, subgroups, events, and provision of news and communication services. Development of such capabilities involves much more prototyping and much less documentation than is needed for more programmingoriented applications; for example, the internals of the NDI packages are generally unavailable for architectural documentation, and the resulting system capabilities are more driven by NDI capabilities than by prespecified requirements documents. A good example of how the ICM provides support for such net-centric services is provided in (Boehm and Bhuta, 2008) and the entire journal provides additional approaches and case studies of net-centric services development. May 19, 2009 Copyright © USC-CSSE 123 University of Southern California Center for Systems and Software Engineering Case 12b: Net-Centric Services – Quick Response Decision Support • • • • • • • • • • Example: Response to competitor initiative Size/complexity: Medium to high Anticipated change rate (% per month): 3-30 Criticality: Medium to high NDI support: Tailorable service elements Organizational and personnel capability: NDI-experienced Key Stage I activities: Filter, select, compose, tailor NDI Key Stage II activities: Satisfy quick response; evolve or phase out Time/build: <= 1 day Time/increment: Quick response-driven May 19, 2009 Copyright © USC-CSSE 124 University of Southern California Center for Systems and Software Engineering Case 12b Elaboration • Another form of net-centric services involves rapidly configuring a capability to analyze alternative decision options in response to a competitor's initiative. These might involve a competitor beginning to penetrate a business's home territory, and might involve the need to evaluate the relative costs and benefits of alternative strategies of expanding services, expanding service locations, or repricing products or services. NDI packages to help analyze geographical, logistical, human resources, and financial implications of alternative competitive response decisions can be rapidly configured to provide a quick-response capability for converging on a decision. Once the decision is made, the resulting capability may be phased out, or evolved into a more general and maintainable capability for similar future situations. Again, the November/December 2008 special issue of IEEE Software on "Opportunistic Software Systems Development" provides additional perspectives on this area of net-centric services development. May 19, 2009 Copyright © USC-CSSE 125