Upload
destiny-thorpe
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
© 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
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
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
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
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
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
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
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
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)
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
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!
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
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 )
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
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
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.
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
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
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
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
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
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
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
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
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
© 2006 IBM Corporation
Any Questions?
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