27
© 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software Group Development Laboratory at Hursley

© 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

Embed Size (px)

Citation preview

Page 1: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

© 2006 IBM Corporation

Software Engineering in the Real World

Development Focus Areas and Practices

Paul Gibson

Development Operations Manager

IBM Software Group Development Laboratory at Hursley

Page 2: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Objectives

Understand the main areas of focus in real life software development

Gain an overall view of key practices commonly in use

Understand how actual implementations choose between these

Page 3: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Factors which influence Practice ChoiceProduct / Solution Type Needs (Quality, Time, Cost)

Personal / Prototype / Bespoke / Normal / High Availability

Cross Platform / Multi-Platform

Close to Hardware <-> Business Solution

Management Philosophy

Project Management / Accountability / Teamwork

Line <-> Functional Organisation

Skills Sources In House External

Development Methodology

Small Team / Agile / Waterfall / Iterative

Page 4: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Waterfall

Description

Most Common formal process

Project Split Into Distinct Phases

Suitable for most types of development

Pros

Potential for very formal process

Cons

Lack of Flexibility – Assumes Limited Change

Implies clear distinction between phases

Great difficulty in moving back up the waterfall

Slow learning process

Requirements

Design

Implement

Validate

Produce

Service

Page 5: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Iterative, Agile ….Description

Iterative, Incremental Agile, Light On each iteration

New facilities / subsystems addedExisting facilities unalteredLessons learnedClear testable Milestones

Suitable for most types of developmentparticularly prototype or new

Pros Tailored process, Flexible, Improving Can get much closer to immediate user

needs More 'natural'

Cons More common in smaller teams Business planning difficult Scheduling much more challenging

Rational Unified Process

Risk led

eXtreme

Test led

Plan

Design

CreateValidate

Reflect

Page 6: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

From good development practice to project performance.

Development Productivity

> 5x Better

Maintenance Productivity

> 10x Better

Quality > 30x Better

Delivery On-Time and Within Budget

4x Better

Development vs Maintenance Effort

2x Better

Estimating Accuracy

Within 10%

(vs > 40%)

0 10Practices Index0

10

Perfo

rman

ce Ind

ex

Page 7: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Practice Areas

Management & Control

Requirements

Specification & Design

Implementation

Validation

Service

Page 8: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Management & Control Needs

"CHAOS" Project Study:

Company Size

Impaired or

Canceled

"Challenged" (Cost or

Schedule Overruns )

"Successful" (Based on

Cost & Schedule)

Planned Function Actually

Delivered

Large(> $500m) 30 % 62 % 9 % 42 %

Medium($200-500m) 37 % 47 % 16 % 65 %

Small($100-200m) 32 % 50 % 28 % 74 %

$250 billion/year spent on Information Technology

175,000 Software Projects are Started

Page 9: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Management and Control Menu Organisation

Small Team, Line, Functional

Single, Multi-Site

Cross Functional Teams Brand, Marketing, Design, Development, Test, Service, Support

Knowledge Management

Project Management – Plan for Change

Dependency Management

Requirements Management – Plan for Change

Design Change Request (DCR) Management

Problem Tracking Report (PTR) Management

Source Code & Configuration Control (Library Systems)

Page 10: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Requirements Gathering & Selection Menu Bespoke Customers and Solutions – 1 on 1 Market Customers and Solutions – Multiple Dialogues

Technical Conferences & Customer Partnerships Independent Software, Solution Vendors Forums (UseNet, CompuServe, ...) Consultants Standards Bodies External Surveys

Competitive & Win / Loss Analysis User Centred Design / Use Case Analysis (Representative) Customer involvement in development Beta and Early Customer Feedback Customer Satisfaction Tracking & Analysis Field Problem and Performance Analysis Research Executive Insight

Page 11: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

You must get to understand the real needs …

I want a piece of glass shaped like that!

Page 12: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

User Centred Design

Goal

Easy to Buy

Easy to Learn

Easy to Use

Intuitive

Engaging

Easy to Set Up

Useful

Process

Understand who the Users are

Discover their Real Needs

Design the Total Experience

Evaluate Designs - Experiment

Assess Competitiveness

Feedback to Users – Check!

Customer Consumability and Time to Value

Page 13: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Specification & Design Menu Systems Analysis Design Council (Team A, Team B) or other ownership Formal Methods Modelling & Object Oriented Methods & Tools Reuse

Design Patterns, Models & Templates Use of Application Servers, OS Services, Components Formal & Informal Large & Small Scale

Prototyping / Proof of Concept User Centred Design (UCD) Design for

Breakage Extension Minimum needed function ( Extreme Programming )

Page 14: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

The Defect ChallengeAll in all, coders introduce bugs at the rate of 4.2 defects per hour of

programming. If you crack the whip and force people to move more quickly things get even worse.

Watts Humphreys

Page 15: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Implementation Menu Source Code & Configuration Control (Library Systems)

Code Generation from Models

Language Choice - Interpreted, Compiled, Visual …

Development Tools & Workbenches

Information Development Tools & Workbenches

Orthogonal Defect Classification (ODC)

Single Sources for Information

Page 16: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Orthogonal Defect Classification

{{Defect stream contains rich information on process and product

DesignUnit Test

Function TestSystem Test

Activity

0

10

20

30

40

50

Per

cen

tag

e D

efe

cts

Function

Assignment

Interface

Timing

Process Signature (by Defect Type)

Start Release

Distribution tells "where we are", and measures progress.Quantification helps drive corrective action. - e.g.: defect type distribution.

Page 17: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

The Defect ChallengeAll in all, coders introduce bugs at the rate of 4.2 defects per hour of

programming. If you crack the whip and force people to move more quickly things get even worse.

Watts Humphreys

Page 18: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Validation MenuInspectionsUnit TestCheck-in TestsStatic AnalysisFunctional VerificationRegression TestingSystems TestingPerformance / Scalability TestingIntegration & Solution TestingBeta Testing (Internal & External)Service Test

Code CoverageModel Based TestingAutomation

Testing Environment Setup Tracking & Reporting

Inspections / Reviews

Unit TestingCheck-in TestsStatic Analysis

FunctionalVerification

PIDValidation

Beta Tests

Integration Test

Solutions Test

Service Test

Build / Regression Test

Performance & Scalability Test

Systems Test

Page 19: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Service & Support Menu Support Organisations

(Level 1, 2 and Change Teams) Call Management

Problem Determination

Problem Management (RETAIN)

Fix ManagementFIN (Fixed in Next)Fix in Error

Use of the Web - eSupport

New Function Delivery

Critical Situation Management

Customer Satisfaction (Tracking and Management)

Cross Product Skills

Page 20: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Personal Projects

Characteristics

Iterative Requirements

Methodology

Agile

Applicable Practices

Anything you like

Prototyping & UCD

No Control

Page 21: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Prototype Projects

Characteristics Fast Delivery to target

audience

Beta Quality Code

Disposable

Methodology Small Flexible team

Low control levels

Agile, Iterative

Applicable Practices

High interaction with customers

User Centred Design

Visual Tools

Reuse

Interpretive Language

Little Testing

Page 22: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Bespoke / Individual Projects

Characteristics Close Relationship with

known customer

Iterative Requirements

Known environment

Service Strategy

Methodology Agile

Iterative or Waterfall

Applicable Practices Joint Team

Project Management

Prototyping / User Centred Design (UCD)

Formal Management and Controls.

Contract?

Reuse

Use of Infrastructure

Formal Testing

Page 23: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Normal Commercial Product

Characteristics Many Potential Customers

Difficult Requirements Balance

Varying Environments

Service Strategy

Methodology Cross Functional Team

Waterfall or Iterative

More Control

Applicable Practices Formal Project Management and

Controls

Market Analysis

Customer Involvement Programmes

User Centred Design

CASE Tools

Reuse

Single Information Sources

Formal Service Structures

Thorough (including Service) Testing

Page 24: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

High Availability Product

Characteristics

Quality is highest premium

Many Potential Customers

Difficult Requirements Balance

Varying Environments

Service Strategy

Methodology

Cross Functional Teams

Waterfall or Iterative

Tight Control

Applicable Practices

As Normal Product PLUS

Strict Formal Methods

Quality Partnership Programme

Comprehensive System and Solution Test

ODC

Page 25: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

Summary

Practice Areas

Management & Control

Requirements

Specification & Design

Implementation

Validation

Service

No-one does it all

Select what you need for your

specific project

Page 26: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

© 2006 IBM Corporation

Any Questions?

Page 27: © 2006 IBM Corporation Software Engineering in the Real World Development Focus Areas and Practices Paul Gibson Development Operations Manager IBM Software

IBM Software Group

Presentation © 2003 IBM Corporation

IBM Software Group

Software Development Practices | Jan 2006 © 2006 IBM Corporation

References

www.satisfice.com

James Bach – Thought provoking views on S/W Development

www.american.edu/academic.depts/ksb/mogit/carmel.html

Erran Carmel - Research on Global Software Teams

www.swebok.org

IEEE Software Engineering Body of Knowledge

www.sei.cmu.edu

Software Engineering Institute

www.methods-tools.com

Software Methods & Tools

www.research.ibm.com/softeng/odc/odc.htm

Orthogonal Defect Classification

www.bcs.org.uk/index.html

The BCS

www.martinfowler.com/articles/newMethodology.html#N400062

Agile Methodologies

www.extremeprogramming.org/

Extreme Programming