McMaster University Presentation

watermelonroachdaleInternet and Web Development

Jul 30, 2012 (4 years and 10 months ago)

318 views



November 2006

© 2006 IBM Corporation

McMaster Education Series


How IBM Applies Process to Create Quality Products

IBM Toronto Software Development Lab




© 2005 IBM Corporation


2

Introduction


How IBM applies process to create quality products
.




© 2005 IBM Corporation


3

Agenda


IBM Organizational Overview



Product



Process



Quality



Continual Improvement



© 2005 IBM Corporation


4

Why We Are Here



© 2005 IBM Corporation


5

IBM Organizational Overview

Software
Group
Hardware
IBM Global
Services
Technology
Group
Sales &
Distribution


© 2005 IBM Corporation


6

IBM Software Group

IBM Software Group is one of the largest software
companies in the world



© 2005 IBM Corporation


7

eBay


eBay selected
WebSphere, IBM’s e
-
infrastructure software,
as the technology
foundation for its next
-
generation trading
platform



© 2005 IBM Corporation


8

CNN


CNN uses IBM
software and
hardware to manage
its archives of over
200,000 hours of
digital material




© 2005 IBM Corporation


9

Air Canada



Air Canada has introduced 142
IBM self
-
service kiosks to
improve the passenger
experience at eight Canadian
airports.



Up to 50% of Air Canada's
passengers are using the
kiosks during peak periods,
enjoying an 80 per cent
reduction in check
-
in time




© 2005 IBM Corporation


10

SWG Worldwide Locations



© 2005 IBM Corporation


11



Canada's Premier Software Development Facility
IBM
Toronto La
b:


© 2005 IBM Corporation


12

Toronto Lab Mission

We develop products or provide services in Toronto for
all of the Software Group brands



© 2005 IBM Corporation


13

Examples of Toronto Lab Technology & Key Products


Database Management Technology


DB2 Universal Database


DB2 for VSE and VM (SQL/DS)


DB2 Connect


Application Development Technology


WebSphere Development Studio


WebSphere Business Integration Tools


VisualAge Tools (C++, Java, TPF)


XL Fortran


Rational Developer for Java / Web


Tivoli Intelligent Orchestrator


Electronic Commerce Development


WebSphere Commerce


User Centered Design, Globalization, Media Design



© 2005 IBM Corporation


14

Platforms Supported by Toronto Lab Products


Linux


Solaris


HP



Windows



AIX


OS/390


OS/400


OS/2


VM / VSE



© 2005 IBM Corporation


15

Roles in the Toronto Lab


Managers


Project managers


Development managers


Team Leaders


Architects


Developers


Designing/writing code


Writing user guides


Testers


Customer Service Analysts


Other roles (eg. IT, Finance, HR)


Software Engineering Process Group (SEPG)



© 2005 IBM Corporation


16

SEPG Provides Support to the Toronto Lab


Process education



Process modeling, definition and assessment



Sharing of best practices and tools



© 2005 IBM Corporation


17

Agenda


IBM Organizational Overview



Product



Process



Quality



Continual Improvement



© 2005 IBM Corporation


18


A product is a piece of software that is used to build applications


An application is a software system that
meets a specific customer need



Application Developer

Product Developer

Product

Application

e.g. WebSphere Application Server,

DB2 Database

e.g. Bank Teller System, Airline
Scheduling System

Definition of Product



© 2005 IBM Corporation


19


A product is a piece of software that is used to build applications


An application is a software system that meets a specific customer need



Product Developer

Product

e.g. WebSphere Application Server,

DB2 Database

Definition of Product


Intended for use by multiple customers



Can be deployed world
-
wide


Complex translation and globalization



Must conform with various industry
and regulatory standards



Intellectual property must be protected



Multiple versions in use at same time



November 2006

© 2006 IBM Corporation

McMaster Education Series


How IBM Applies Process to Create Quality Products

IBM Toronto Software Development Lab




© 2005 IBM Corporation


21

Agenda


IBM Organizational Overview



Product



Process



Quality



Continual Improvement



© 2005 IBM Corporation


22

Software Development Approaches


Just jump in and do it


Also known as “heroic effort”


Many projects depend on heroic efforts


Can succeed if enough experience



Established process


Teams typically fall back on tried and proven approaches


Use as is or tailor it to your project



Invent a process


Existing processes do not meet team’s needs



© 2005 IBM Corporation


23

What are the pitfalls of heroic effort?


Project status is difficult to gauge


People work independently and not aware of what
others are doing


Inconsistencies and missing interfaces


Hit and miss on schedule and deliverables


Best practices not shared

Think about a team assignment where there wasn’t much
of a plan to follow and people just jumped in and did their
best. What were some of the problems that were
encountered?



© 2005 IBM Corporation


24

Plan or Process


If you want to do something once, you need a plan;
if you want to do something repeatedly, you need a
process



© 2005 IBM Corporation


25

Plan or Process


A plan tells you
what

you need to do:


Create design specification



A process tells you
how

to do it:


The architect or lead developer obtains and understands
the approved product requirements


He/she creates a design spec which describes: the
overall architecture, internal & external interfaces,
applicable standards & any extensions required, etc.


The design spec is reviewed by other developers for
completeness and accuracy


The project manager approves the design spec



© 2005 IBM Corporation


26

Why do we have process ?


To identify the key activities (manageable pieces )
and their logical sequence


To make the approach consistent and repeatable


To allow for measures to gauge progress and
foster continuous improvement


To enable scalability (the larger the team, the more
difficult it is to work without a process)


To ease adoption of best practices


To avoid known pitfalls


To improve quality



© 2005 IBM Corporation


27

Break the problem into manageable pieces


Deposit











Withdrawal













Transfer












Functional Perspective



© 2005 IBM Corporation


28

Break the problem into manageable pieces

Requirements

Design

Code

Test


Deposit















Withdrawal















Transfer














Procedural Perspective

Functional Perspective



© 2005 IBM Corporation


29

Break the problem into manageable pieces

Requirements

Design

Code

Test


Deposit





















Withdrawal





















Transfer




















Procedural Perspective

Functional Perspective



© 2005 IBM Corporation


30

There can be different levels of process

IPD = Integrated Product Development (IBM’s business management process)

IPD

Development

Finance

Marketing

Sales

Requirements

Design

Code

Test

Hi
-
level Design

Lo
-
level Design

Executives

Managers

Teams

Developers



© 2005 IBM Corporation


31

Typical development process flow

Design3

Design2

Design1

Design5

Design4

Code3

Code2

Code4

Code1

Code5

Test3

Test2

Test4

Test1

Test5

System
-
level Testing

Requirements



© 2005 IBM Corporation


32

Process Model

Design3

Code3

Test3

Requirements



© 2005 IBM Corporation


33

Process Model

Design3

Project
Plans
approved
(entry
criteria)

Requirements

Process
steps

Specifications

Specs

Approved

(exit criteria)



© 2005 IBM Corporation


34

Process Model


Entry criteria



Inputs



Description of activities/steps



Outputs



Exit criteria



Measurements




© 2005 IBM Corporation


35

Sample Lab Process


Actual Design Process from the IBM Toronto Lab



© 2005 IBM Corporation


36

Metrics identify if you are on course and on schedule

Toronto

London

An airplane may be off course 90% of the time

But uses real time corrections to reach destination




© 2005 IBM Corporation


37

By taking process measurements in real time
projects are better able to meet their commitments.

Actual

Finish

Time

% of
Test
Phase
Success

Target
Finish

100

0

Week 1

Week 2

Week n



© 2005 IBM Corporation


38

Process Metrics


Establish targets by phase (e.g. Design, Code, Test).
For example…


# of design / code reviews held


% of test cases run


# of operating system platforms supported & tested


Monitor and track progress on a regular basis


Take corrective action to bring back “on course”


Metrics can be used to:


Show project progress


Gauge process effectiveness


Foster continual improvement



© 2005 IBM Corporation


39

Process Summary


Heroic efforts



Plan vs. process



Decomposition into manageable pieces



Different levels of process depending on your role



Process models



Process measurements



© 2005 IBM Corporation


40

Agenda


IBM Organizational Overview



Product



Process



Quality



Continual Improvement




© 2005 IBM Corporation


41

What is Quality

Quality is meeting or exceeding the customers’
expectations and requirements




Customer satisfaction is the ultimate validation of
quality




Quality is in the eye of the beholder,


…. our customer!




Software Quality measurements



customer satisfaction



reliability



product defects





© 2005 IBM Corporation


42

How Does IBM Create Quality Products



Follow defined processes



Use the customer feedback



Use tools

(modeling, code generation, code checking,
automation)



Re
-
use common code



Continually improve:



Process, Tools, Product function



Testing ?





You do not “test” quality into products!




© 2005 IBM Corporation


43

Products have higher Quality when built right the first time


Finding defects with testing is ineffective and expensive



It is possible to remove defects before writing code


Create Architecture and Design documents


Review / Revise / Approve at each stage



Write Code then run unit tests to find localized defects



Conduct additional testing as necessary


Expensive with tight schedules



Fixing defects after the customer installs it … is very
expensive



© 2005 IBM Corporation


44

Understand the customer’s needs and expectations




Customer Surveys




Usability sessions / focus groups




Beta test programs




Customer
-
reported problems and defects




Marketing and Sales feedback, trade shows,
seminars



© 2005 IBM Corporation


45

Planning for improving Customer Satisfaction



The Quality Plan



Understand customer product requirements




Choose quality objectives



Example … Usability





Set Quality targets




Executive review and approval




© 2005 IBM Corporation


46

Quality metrics planned for Development

Start

Metric

Target
Finish

Actual

Finish

Time



© 2005 IBM Corporation


47

Monitoring quality in real
-
time

P
rocess
Activity

Measurement

Quality
indicator

Requirements



% of planned
Requirements
implemented



# of requirements with
defects

Design



% of design
s

review
ed




# of
design
defects

Code



% of code review
ed




# of
code
defects

Test



% of test cases
reviewed




% of test cases
executed



# of defects



# of escapes





© 2005 IBM Corporation


48


Verification of Quality through testing

Unit Test

Function Test

System Test

Requirements

Design

Code

Testing is another form of process



© 2005 IBM Corporation


49

Verification of Quality through testing


Usability test



Customer beta test



Documentation test



Performance test



Translation Verification test



Product CD (packaging) test



© 2005 IBM Corporation


50

Defects during Development Phases


Is it possible that you inject defects while developing
your product?



It does happen!



Design reviews and code inspections are a couple of
methods for detecting bugs, or defects in the design or
code



Corrective and preventive actions taken


Defects will be analyzed to determine root cause and fixed




© 2005 IBM Corporation


51

Customer reported problems and defects

If we ship a product with ‘issues’, a customer will call!


Examples of issues


The product doesn’t install on the customer’s hardware


The product installs but runs slowly




The IBM customer support team is contacted and a “problem” is documented



Problems are investigated within a specific time, based on severity



Problems are closed when the customer agrees the situation is resolved




If the code requires modification, a “defect” is also opened for tracking purposes




All problems and defects are monitored, measured and analyzed.







© 2005 IBM Corporation


52

Building Quality into Products


Ensuring these activities are followed:



Following documented processes


Following coding guidelines and standards


Having well written requirements, design specs


Conducting formal design and code reviews


Having approved plans and change management


Using tools


Reusing designs and code



© 2005 IBM Corporation


53

Quality is a continuous cycle

Survey for requirements

Implement

in product

Sell Product



© 2005 IBM Corporation


54

Agenda


IBM Organizational Overview



Product



Process



Quality



Continual Improvement




© 2005 IBM Corporation


55

IBM and Continual Improvement


Examples of continual improvement in IBM’s
approach



We have teams moving from waterfall to iterative
development


We are continually seeking improvements to the current
development “tools”, or new tools


We have teams that are adopting Extreme Programming
or Agile Development techniques


Some teams are moving to component
-
based
development to improve re
-
use


We have introduced open source concepts internally






© 2005 IBM Corporation


56

Let’s Summarize

How IBM applies process to create quality products
.




Design

Code

Test

Requirements

Product Developer

Product



© 2005 IBM Corporation


57

Your future …………


"It's up to you"



Job opportunities are not strictly programming



Technical writing



Multimedia



Usability



Research



Process & Quality



should be more discipline, less bureaucracy



Impacts of poor software can impact many people as
you know from recent news about banking, airlines and
security glitches.

“A quick fix can be a very expensive fix!”






© 2005 IBM Corporation


58

How to reach IBM

For all of your information needs,
please contact IBM via:


ibm.com/careers



© 2005 IBM Corporation


59

Thank you