GSAW. February Linda M. Northrop Manager, Product Line Systems Program

Carnegie Mellon University Software Engineering Institute Essentials of Successful Product Line Practice GSAW February 1998 Linda Linda M. M. North...
Author: Dustin Johns
6 downloads 0 Views 487KB Size
Carnegie Mellon University

Software Engineering Institute

Essentials of Successful Product Line Practice

GSAW February 1998 Linda Linda M. M. Northrop Northrop Manager, Manager, Product Product Line Line Systems Systems Program Program Software Software Engineering Engineering Institute Institute Carnegie Carnegie Mellon Mellon University University Pittsburgh, Pittsburgh, PA PA 15213 15213 This Thiswork workis issponsored sponsoredby bythe theU.S. U.S.Department Departmentof ofDefense. Defense.

1

Carnegie Mellon University

Software Engineering Institute

Today’s Presentation Motivation Definitions and Foundations State of Product Line Practice Product Line Practice Framework Essential Product Line Practice Areas Product Line Costs, Risks, and Challenges Bottom Line

2

Carnegie Mellon University

Software Engineering Institute

Current State (End of 20th Century)

Software has become the bottom line for many organizations who never envisioned themselves in the software business.

3

Carnegie Mellon University

Software Engineering Institute

Business Goals High quality Quick time to market Low cost production Low cost maintenance

improved efficiency and productivity

4

Carnegie Mellon University

Software Engineering Institute

Software (System) Strategies

Process Improvement Technology Innovation Reuse

5

Carnegie Mellon University

Software Engineering Institute

Reuse History: From Ad-Hoc to Systematic

1960’s Subroutines

1990’s 1980’s 1970’s Modules Objects Components

2000’s Product Lines

6

Carnegie Mellon University

Software Engineering Institute

What Is a Product Line? A product line is a group of products sharing a common, managed set of features that satisfy specific needs of a selected market. pertain to

Market strategy/ Application domain

is satisfied by share an Architecture

Products

is used to structure are built from Components 7

Carnegie Mellon University

Software Engineering Institute

Why Product Lines? $

$

$

$

Product A

Product B

Product C

Product D

Strategic software reuse is key to achieving fast, efficient, predictable, lowcost, high-quality production and maintenance.

Developing, acquiring, and maintaining multiple software products one product at a time is no longer economically viable if a multi-project business case exists.

$ Core Assets

Product A

Product B

Product C

Product D 8

Carnegie Mellon University

Software Engineering Institute

How Do Product Lines Help? Product lines amortize the investment in these and other core assets: • requirements and requirements analysis • domain model • software architecture and design • performance engineering • documentation earlier life • test plans, test cases, and data cycle • people: their knowledge and skills reuse • processes, methods, and tools • budgets, schedules, and work plans more • components benefit

product lines = strategic reuse 9

Carnegie Mellon University

Software Engineering Institute

Product Line Core Assets pertain to

Market strategy/ Application domain is satisfied by

share an Architecture Products

used to structure are built from

Components

CORE ASSETS

10

Carnegie Mellon University

Software Engineering Institute

What is Product Line Practice? Product line practice is the systematic use of software assets to modify, assemble, instantiate, or generate the multiple products that constitute a product line. Product line practice involves strategic, largegrained reuse as a business enabler.

11

Carnegie Mellon University

Software Engineering Institute

The Key Concepts Use of a Common Asset Base

in Production

of a Related Set of Products

12

Carnegie Mellon University

Software Engineering Institute

Real World Motivation Product Line Practice needed: • to achieve large scale productivity gains • to improve time to market • to continue health in the market • to maintain market presence • to sustain unprecedented growth • to compensate for an inability to hire • to achieve systematic reuse goals

13

Carnegie Mellon University

Software Engineering Institute

Necessary Changes Business approach

Organizational structure and personnel

Architecture

Development approach

Management

The architecture is the foundation of everything. 14

Carnegie Mellon University

Software Engineering Institute

Examples of Product Line Practice CelsiusTech - on board ship systems • hardware-to-software cost ratio changed from 35:65 to 80:20

Motorola - FLEXworks Project (family of one-way pagers) • 4x cycle time improvement • 80% reuse

Hewlett Packard • 2-7x cycle time improvement (some 10x) • Sample Project –shipped 5x number of products –that were 4x as complex –and had 3x the number of features –with 4x products shipped/person 15

Carnegie Mellon University

Software Engineering Institute

State of Product Line Practice DoD

Commercial Sector • has succeeded with systematic reuse through software product lines in many domains (HP, AT&T, Lucent, Nokia, Raytheon, Lockheed Martin, Hughes, Motorola, Ericsson, Bosch, CelsiusTech, ALLTEL, Phillips, Caterpillar, Cummins, Buzzeo, etc.) • is seeing a growing trend toward product lines (Boeing, Ford, Chrysler, Allied Signal, etc.) • has realized reduced time to market, improved quality, reduced development and maintenance costs, improved efficiency, increased interoperability through software product lines • has developed proprietary technical, business, management, and acquisition product line practices

How to Bridge the Gap??? •validate •distill •codify •tailor •transition

• has requirements for faster, better, cheaper, architecture-based reuse • has need for systematic reuse • has had many reuse efforts and a few successes • is attracted to product line idea but has not been able to make it happen as a practice • wants proven, offthe-shelf practices and support tools 16

Carnegie Mellon University

Software Engineering Institute

SEI Product Line Practice Initiative: The Vision

Product line development is a low risk, high return proposition. Techniques for finding and exploiting system commonalities and for controlling variability are standard software engineering practice in the DoD, government, and industry.

17

Carnegie Mellon University

Software Engineering Institute

SEI Product Line Practice Initiative: Strategies Develop an integrated business and technical approach to product line practice • Select, refine, and codify practices of demonstrated effectiveness for creating and acquiring software product lines in different domains and organizational contexts

Build and nurture a community interested in and informed about product line practice • Transition product line practices and enable their use in the DoD

18

Carnegie Mellon University

Software Engineering Institute

Information Sources Case studies, experience reports, and pilots Workshops • SEI Product Line Practice Workshop (Dec. 1996) • WISR 8: Reuse and Product Lines (Mar. 1997) • Software Architecture in Product Line Acquisitions, Engineering or Witchcraft?, (June 1997) • OOPSLA ‘97: Object Technology and Product Lines • SEI Product Line Practice Workshop (Nov. 1997)

Surveys Customer collaborations on actual product lines

19

Carnegie Mellon University

Software Engineering Institute

General Remarks Contexts for product lines vary widely. • nature of products • nature of market • process maturity • artifact maturity BUT, there are essential elements and practices based upon today’s prevailing success factors.

20

Carnegie Mellon University

Software Engineering Institute

Product Line Practice Framework Describes essential product line elements Accommodates various organizational contexts and starting points Describes essential and proven product line practices for • software engineering • technical management • enterprise management

-acquirer -developer For individual practices • highlights the delta for the product line approach • distinguishes between core asset development/acquisition and development/acquisition with core assets

21

Carnegie Mellon University

Software Engineering Institute

Product Line Practice Framework

Product Product Development Development // Acquisition Acquisition

Core Core Asset Asset Development Development // Acquisition Acquisition Enterprise Management Domain Engineering

Application Engineering

22

Carnegie Mellon University

Software Engineering Institute

Core Asset Development / Acquisition Product List

Product Constraints Styles, Patterns, Frameworks Production Constraints Production Strategy Inventory of Pre-existing Assets

Core Assets

Production Plan Enterprise Management 23

Carnegie Mellon University

Software Engineering Institute

Product Development / Acquisition Requirements

Product List

Products Core Assets

Production Plan

Enterprise Management 24

Carnegie Mellon University

Software Engineering Institute

Essential Product Line Practice Areas

Software Engineering Technical Management Enterprise Management

25

Carnegie Mellon University

Software Engineering Institute

Software Engineering Practices Requirements Management HDomain Analysis Architecture Development and Evaluation Mining Existing Assets Component Development Testing

26

Carnegie Mellon University

Software Engineering Institute

The Architecture is Key A software architecture describes the structural properties of the software, typically the components and their interrelationships and guidelines about their use. Architecture is the foundation for the product line. Architecture forms the organizational plan for component development. Architecture is the root of system qualities. Architecture ensures that variability across products can be accomplished by changes confined to one or a select set of components. 27

Carnegie Mellon University

Software Engineering Institute

Technical Management Practices Metrics, Data Collection, and Tracking Configuration Management Planning

28

Carnegie Mellon University

Software Engineering Institute

Enterprise Management Practices Ensuring a sound business model Achieving the right organizational structure Assuring pro-active management Building and maintaining appropriate skill levels Managing the organization’s customer interface Ensuring inter-group collaboration

29

Carnegie Mellon University

Software Engineering Institute

Achieving the Right Organizational Structure Three different types of structures need to be developed, each with its own life cycle for: •enterprise-wide product line identification -business analysis •core asset management •product management

A Product Line Concept of Operations should be developed. 30

Carnegie Mellon University

Software Engineering Institute

Organizational Structure: Product Line Partners Core Asset Developers

Product Developers

A new division of labor is required.

31

Carnegie Mellon University

Software Engineering Institute

Product Line Skill Set Marketers understand domain have deep product line knowledge understand customer needs understand trends negotiate and sell

sell the product line Core Assets Group

Product Line Production Group

understand domain understand application design with ease and skill can abstract are technically current can mediate

understand application understand customer problems can engineer from “building blocks” can customize have implementation expertise

develop components

choose components Managers have vision make decisions can lead are technically savvy

support the product line

Deep Domain Expertise is Essential 32

Carnegie Mellon University

Software Engineering Institute

Example Relationship of Players in Product Line Organization Product line capabilities Marketers

Requirements Product capabilities

Asset Capabilities

Customers

Systems

Customer needs

Core Assets Group Architecture Components Environments

Product Group Assets Direction Vision

Managers

Note: An individual or small highly specialized team must have responsibility for the architecture. 33

Carnegie Mellon University

Software Engineering Institute

Management Commitment

training enforcement reward system culture

Support

Leadership 34

Carnegie Mellon University

Software Engineering Institute

Key Themes Among Successful Product Lines Long and deep domain experience A legacy base from which to build Architectural excellence Management commitment

35

Carnegie Mellon University

Software Engineering Institute

Managing the Balance

There are benefits, but there are also costs and risks.

36

Carnegie Mellon University

Software Engineering Institute

Product Line Risks Up front investment Possible required change in organizational structure and policies Technology adoption—training, culture change Customer re-education Poor architecture quality Poor component quality Technology, product staleness Domain instability Major technology shifts Constancy of management purpose and organizational direction 37

Carnegie Mellon University

Software Engineering Institute

Product Line Challenges Developing product line architectures Evolving product line architectures and assets Product line migration strategies for legacy systems Business models to support strategic reuse decisions Acquisition strategies that support systematic reuse through product lines Repeatable, integrated technical, management, and enterprise practices

38 38

Carnegie Mellon University

Software Engineering Institute

The Bottom Line If properly managed, the benefits of a product line approach far exceed the costs. Strategic software reuse through a well-managed product line approach achieves enterprise goals of: • • • •

efficiency time to market productivity, and quality

Product Line Practices will pervade software engineering in the new millennium 39