University of Southern California Center for Systems and Software Engineering Top Enablers and Inhibitors of Affordable Systems Supannika Koolmanojwong,

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

CS487 Software Engineering Omar Aldawud
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
University of Southern California Center for Systems and Software Engineering Process Decision Frameworks for DoD and e-Services Projects ASRR 2011 Supannika.
Tradespace, Affordability, and COCOMO III Barry Boehm, USC CSSE Annual Research Review 2014 April 30,
University of Southern California Center for Systems and Software Engineering A Look at Software Engineering Risks in a Team Project Course Sue Koolmanojwong.
Alternate Software Development Methodologies
Business Process Assurance and Test Automation in a Service Oriented Architecture Alan Oatman.
Ahsan Kabir Project Manager Ahsan Kabir Project Manager ………………………….
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Rational Unified Process
University of Southern California Center for Systems and Software Engineering USC CSSE Research Overview Barry Boehm Sue Koolmanojwong Jo Ann Lane Nupul.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
University of Southern California Center for Software Engineering CSE USC COSYSMO: Constructive Systems Engineering Cost Model Barry Boehm, USC CSE Annual.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Process Synchronization Workshop Summary Report Jo Ann Lane University of Southern California Center for Software Engineering.
Valuing System Flexibility via Total Ownership Cost Analysis Barry Boehm, JoAnn Lane, USC Ray Madachy, NPS NDIA Systems Engineering Conference October.
System-of-Systems Cost Modeling: COSOSIMO July 2005 Workshop Results Jo Ann Lane University of Southern California Center for Software Engineering.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
University of Southern California Center for Software Engineering C S E USC Agile and Plan-Driven Methods Barry Boehm, USC USC-CSE Affiliates’ Workshop.
University of Southern California Center for Systems and Software Engineering 1 WikiWinWin: Rapid Collaborative Requirements Negotiation Using Wiki and.
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 6-1 Chapter 6 Decision Support System Development.
CPM -200: Principles of Schedule Management IPM 2002 Fall Conference PMI-College of Performance Management – Professional Education.
Technical Integrity Assurance For Product Development W. Henson Graves Lockheed Martin Aeronautics Company Russ Campbell.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Next Generation Trnsport Trnsport Users Group Conference Field Management TAG November 7, 2005.
University of Southern California Center for Systems and Software Engineering Enablers and Inhibitors for Expediting Systems and Software Development Sue.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
SOFTWARE ENGINEERING MCS-2 LECTURE # 5. RAD (RAPID APPLICATION DEVELOPMENT) MODEL  In RAD model the components or functions are developed in parallel.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
University of Southern California Center for Systems and Software Engineering The Incremental Commitment Spiral Model Electronic Process Guide (EPG) and.
University of Southern California Center for Systems and Software Engineering Technical Debt CS 577 Software Engineering Barry Boehm Supannika Koolmanojwong.
Ilities Tradespace and Affordability Analysis Barry Boehm, USC
University of Southern California Center for Systems and Software Engineering Retrospective Analysis Supannika Koolmanojwong October 21,
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
4/23/ :45 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Decision Support System Development By Dr.S.Sridhar,Ph.D., RACI(Paris),RZFM(Germany),RMR(USA),RIEEEProc. web-site :
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Software Engineering MCS-2 Lecture # 6
Microsoft Office Project 2003: Selling EPM in your Organization Matt Wilson Business Solutions Specialist LMR Solutions.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
EGovOS Panel Discussion CIO Council Architecture & Infrastructure Committee Subcommittee Co-Chairs March 15, 2004.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 3 Prescriptive Process Models Discussion of the Software Process models:
University of Southern California Center for Systems and Software Engineering Technical Debt CS 577 Software Engineering Supannika Koolmanojwong.
Project Management Why do projects fail? Technical Reasons
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Project Management Strategies Hidden in the CMMI Rick Hefner, Northrop Grumman CMMI Technology Conference & User Group November.
Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall
University of Southern California Center for Systems and Software Engineering Enablers and Inhibitors for Expediting Systems and Software Engineering &
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Software Process Models
Prescriptive Process Models
Affordability-Based Engineering
Lecture 2 Revision of Models of a Software Process
Software Engineering I
Extreme Programming.
Systems Engineering Technical Debt Workshop Outbrief
Presentation transcript:

University of Southern California Center for Systems and Software Engineering Top Enablers and Inhibitors of Affordable Systems Supannika Koolmanojwong, Jo Ann Lane, Rachchabhorn Wongsaroj,Thammanoon Kawinfruangfukul, and Barry Boehm COCOMO Forum October 22, 2013

University of Southern California Center for Systems and Software Engineering Overview Affordability Tradespace Affordability Opportunity Tree Cost Model Parameters Reflect Tradespace Decisions Enablers and Inhibitors of the Affordable systems 2

University of Southern California Center for Systems and Software Engineering Affordability “The balance of system performance, cost, and schedule constraints over the system life cycle, while satisfying mission needs in concert with strategic and organizational needs.” Affordable system is achievable via faster engineering and less rework. 3 INCOSE Systems Engineering Handbook, version NDIA 8th Annual Disruptive Technologies Conference

University of Southern California Center for Systems and Software Engineering Expedited System Development Capability development schedule from concept to delivery Market window opportunity Need to balance –shortcuts, one-time solution, maintainability 4 Faster, Faster, & FASTER! We have time !!

University of Southern California Center for Systems and Software Engineering One-time solution Everything for everyone System Flexibility Design for reuse Easily evolve in the future to meet future (unknown) needs Interoperate with future systems Need to balance –Performance issues, total ownership costs 5

University of Southern California Center for Systems and Software Engineering Untidy, poor structured Easy to maintain Technical Debt Extra works to fix under par jobs Intentional or unintentional debts Need to balance –Get it done now, Refactor later, evolutionary plan 6

University of Southern California Center for Systems and Software Engineering Affordability Tradespace Schedule Capability Flexibility Technical Debt Technical Debt Tradespace: Schedule Capability Flexibility Technical Debt Technical Debt Typical results: Schedule Capability Flexibility Tech Debt Tech Debt Desired balance:

University of Southern California Center for Systems and Software Engineering Example Framework: Affordability Opportunity Tree Eliminate Tasks (Expedite) Eliminate Scrap, Rework (Expedite, Minimize Tech Debt) Staffing, Incentivizing, Teambuilding Kaizen (continuous improvement) Work and Oversight Streamlining Collaboration Technology Early Risk and Defect Elimination Modularity Around Sources of Change Incremental, Evolutionary Development Affordability Improvements and Tradeoffs Get the Best from People (Expedite, Minimize Tech Debt) Make Tasks More Efficient (Expedite) Facilities, Support Services Tools and Automation Lean and Agile Methods Evidence-Based Decision Gates Model-Based Product Generation Value-Based, Agile Process Maturity  Risk-Based Prototyping Task Automation

University of Southern California Center for Systems and Software Engineering Example Framework: Affordability Opportunity Tree Composable Components,Services, COTS Legacy System Repurposing Risk-Based Prototyping Satisficing vs. Optimizing Performance Value-Based Capability Prioritization Affordability Improvements and Tradeoffs Simplify Products (KISS) (Expedite) Reuse Components (Expedite) Domain Engineering and Architecture Reduce Operations, Support Costs (Minimize Tech Debt) Streamline Supply Chain Design for Maintainability, Evolvability Automate Operations Elements Anticipate, Prepare for Change Value- and Architecture-Based Tradeoffs and Balancing (Longer-term investment, min Tech Debt) 

University of Southern California Center for Systems and Software Engineering Affordability Analysis with Cost Models

University of Southern California Center for Systems and Software Engineering

University of Southern California Center for Systems and Software Engineering

University of Southern California Center for Systems and Software Engineering Pilot Study: Data Collection Software Engineering-related Classes –60 graduate students ~ 20%: full-time employee with 2-20 years experience ~80%: Newly graduates, 0-5 years experience –59 undergraduate students 0-3 years experience (internship, co-op) Information sources –Lectures, papers, class workshops List enablers and inhibitors for –Technical Debt, Expedited Sys Development, Flexibility 13

University of Southern California Center for Systems and Software Engineering Top Enablers Expedited Sys DevelopmentFlexibilityTechnical Debt 1Rapid PrototypingReuse, Use of NDI / COTSGood/ proper documentation 2Agile/Lean ApproachesCommon Standard / Interfaces / Services Refactoring 3Reuse, Use of NDI/COTSUse OO DesignAgile / Lean Approach 4Incremental test and feedbackStrong leadership and skill empowerment Incremental test and feedback 5Strong leadership and skill empowerment Component-based designProper system architecture / foundations 6Requirements FlexibilityGood/ proper documentationPair programming 7Team CohesionUse of architectural patterns and styles Rapid Prototyping 8Tools, Automation, SimulationAgile / Lean ApproachTest-Driven Development 9Decision making authorityRequirements FlexibilityStrong leadership and skill empowerment 10Minimize set of featuresIncremental test and feedbackExplicit list of debt; Known Technical Debt inventory 14

University of Southern California Center for Systems and Software Engineering Top Enablers Expedited Sys DevelopmentFlexibilityTechnical Debt 1Rapid PrototypingReuse, Use of NDI / COTSGood/ proper documentation 2Agile/Lean ApproachesCommon Standard / Interfaces / Services Refactoring 3Reuse, Use of NDI/COTSUse OO DesignAgile / Lean Approach 4Incremental test and feedbackStrong leadership and skill empowerment Incremental test and feedback 5Strong leadership and skill empowerment Component-based designProper system architecture / foundations 6Requirements FlexibilityGood/ proper documentationPair programming 7Team CohesionUse of architectural patterns and styles Rapid Prototyping 8Tools, Automation, SimulationAgile / Lean ApproachTest-Driven Development 9Decision making authorityRequirements FlexibilityStrong leadership and skill empowerment 10Minimize set of featuresIncremental test and feedbackExplicit list of debt; Known Technical Debt inventory 15

University of Southern California Center for Systems and Software Engineering Top Enablers Expedited Sys DevelopmentFlexibilityTechnical Debt 1Rapid PrototypingReuse, Use of NDI / COTSGood/ proper documentation 2Agile/Lean ApproachesCommon Standard / Interfaces / Services Refactoring 3Reuse, Use of NDI/COTSUse OO DesignAgile / Lean Approach 4Incremental test and feedbackSkilled team membersIncremental test and feedback 5Skilled team membersComponent-based designProper system architecture / foundations 6Requirements FlexibilityGood/ proper documentationPair programming 7Team CohesionUse of architectural patterns and styles Rapid Prototyping 8Tools, Automation, SimulationAgile / Lean ApproachTest-Driven Development 9Decision making authorityRequirements FlexibilitySkilled team members 10Minimize set of featuresIncremental test and feedbackExplicit list of debt; Known Technical Debt inventory 16

University of Southern California Center for Systems and Software Engineering Common Enablers 17 Technical Debt Expedited Sys Dev System Flexibility Agile / Lean Approaches Incremental test and Feedback Skilled team members Reuse, Use of NDI / COTS Incremental test and Feedback Requirements Flexibility Incremental test and Feedback Rapid Prototyping

University of Southern California Center for Systems and Software Engineering Top Inhibitors Expedited Sys DevelopmentFlexibilityTechnical Debt 1Requirements VolatilityLack of / Poor documentation 2Inexperience team members Parallel Development 3UnprecedentednessUnrealistic expectationsBusiness Pressure 4Vague requirementsRequirements VolatilityDelayed Refactoring 5Delayed authority to proceedOrganizational impedimentsInadequate testing, lack of unified testing method 6Unrealistic expectationsTechnology immaturity/volatilityShortcuts, poor dev practices 7Technology immaturity/volatilityNot-invented-here syndrome; Need full architectural control Tight coupling code 8Lack of domain knowledge / experience Relying on Third-Party SoftwareLack of process understanding 9High number external/internal dependencies Vague requirementsInexperience team members 10Conflicting stakeholdersUnplanned/poor/inflexible architecture Unrealistic expectations 18

University of Southern California Center for Systems and Software Engineering Top Inhibitors Expedited Sys DevelopmentFlexibilityTechnical Debt 1Requirements VolatilityLack of / Poor documentation 2Inexperience team members Parallel Development 3UnprecedentednessUnrealistic expectationsBusiness Pressure 4Vague requirementsRequirements VolatilityDelayed Refactoring 5Delayed authority to proceedOrganizational impedimentsInadequate testing, lack of unified testing method 6Unrealistic expectationsTechnology immaturity/volatilityShortcuts, poor dev practices 7Technology immaturity/volatilityNot-invented-here syndrome; Need full architectural control Tight coupling code 8Lack of domain knowledge / experience Relying on Third-Party SoftwareLack of process understanding 9High number external/internal dependencies Vague requirementsInexperience team members 10Conflicting stakeholdersUnplanned/poor/inflexible architecture Unrealistic expectations 19

University of Southern California Center for Systems and Software Engineering Top Inhibitors Expedited Sys DevelopmentFlexibilityTechnical Debt 1Requirements VolatilityLack of / Poor documentation 2Inexperience team members Parallel Development 3UnprecedentednessUnrealistic expectationsBusiness Pressure 4Vague requirementsRequirements VolatilityDelayed Refactoring 5Delayed authority to proceedOrganizational impedimentsInadequate testing, lack of unified testing method 6Unrealistic expectationsTechnology immaturity/volatilityShortcuts, poor dev practices 7Technology immaturity/volatilityNot-invented-here syndrome; Need full architectural control Tight coupling code 8Lack of domain knowledge / experience Relying on Third-Party SoftwareLack of process understanding 9High number external/internal dependencies Vague requirementsInexperience team members 10Conflicting stakeholdersUnplanned/poor/inflexible architecture Unrealistic expectations 20

University of Southern California Center for Systems and Software Engineering Common Inhibitors 21 Technical Debt Expedited Sys Dev System Flexibility Inexperience Team Members Unrealistic expectations Technology Immaturity / Volatility Requirements Volatility Lack of / Poor documentation

University of Southern California Center for Systems and Software Engineering Two sides of the same coin Reuse, Use of NDI / COTS –Enable and inhibit at the same time for all three aspects Lack of documentation Enable the Expedition, but inhibit the TD management and flexibility Agile/Lean Approach –Enable the Expedition, but inhibit the TD management and flexibility 22

University of Southern California Center for Systems and Software Engineering Conclusions High similarity of the affordability enablers from Opportunity tree, cost model, and class workshop –Get the best people –Incremental development Top inhibitors –Inexperienced people –Unrealistic expectation Wildcard –Reuse, use of COTS/ NDI –Agile/Lean –Lack of documentation 23

University of Southern California Center for Systems and Software Engineering References INCOSE, Systems Engineering Handbook, version San Diego, CA, USA: International Council on Systems Engineering (INCOSE). INCOSE- TP , December Robert Neches, Engineered Resilient Systems (ERS) S&T Priority Description and Roadmap, NDIA 8th Annual Disruptive Technologies Conference, 8 November