mcmaster education series how ibm applies process to create quality products
DESCRIPTION
McMaster Education Series How IBM Applies Process to Create Quality Products. IBM Toronto Software Development Lab. Introduction. How IBM applies process to create quality products. Agenda. IBM Organizational Overview Product Process Quality Continual Improvement. - PowerPoint PPT PresentationTRANSCRIPT
November 2006 © 2006 IBM Corporation
McMaster Education Series
How IBM Applies Process to Create Quality Products
IBM Toronto Software Development Lab
© 2005 IBM Corporation3
Agenda
IBM Organizational Overview
Product
Process
Quality
Continual Improvement
© 2005 IBM Corporation5
IBM Organizational Overview
Software Group
Hardware
IBM Global Services
Technology Group
Sales & Distribution
© 2005 IBM Corporation6
IBM Software Group
IBM Software Group is one of the largest software companies in the world
© 2005 IBM Corporation7
eBay
eBay selected WebSphere, IBM’s e-infrastructure software, as the technology foundation for its next-generation trading platform
© 2005 IBM Corporation8
CNN
CNN uses IBM software and hardware to manage its archives of over 200,000 hours of digital material
© 2005 IBM Corporation9
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 Corporation12
Toronto Lab Mission
We develop products or provide services in Toronto for all of the Software Group brands
© 2005 IBM Corporation13
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 Corporation14
Platforms Supported by Toronto Lab Products
Linux Solaris HP
Windows
AIX OS/390 OS/400 OS/2 VM / VSE
© 2005 IBM Corporation15
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 Corporation16
SEPG Provides Support to the Toronto Lab
Process education
Process modeling, definition and assessment
Sharing of best practices and tools
© 2005 IBM Corporation17
Agenda
IBM Organizational Overview
Product
Process
Quality
Continual Improvement
© 2005 IBM Corporation18
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 DeveloperProduct Developer Product Application
e.g. WebSphere Application Server, DB2 Database
e.g. Bank Teller System, Airline Scheduling System
Definition of Product
© 2005 IBM Corporation19
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 Corporation21
Agenda
IBM Organizational Overview
Product
Process
Quality
Continual Improvement
© 2005 IBM Corporation22
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 Corporation23
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 Corporation24
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 Corporation25
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 Corporation26
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 Corporation27
Break the problem into manageable pieces
Deposit
Withdrawal
Transfer
Fun
ctio
nal P
ersp
ectiv
e
© 2005 IBM Corporation28
Break the problem into manageable pieces
Requirements Design Code Test
Deposit
Withdrawal
Transfer
Procedural Perspective
Fun
ctio
nal P
ersp
ectiv
e
© 2005 IBM Corporation29
Break the problem into manageable pieces
Requirements Design Code Test
Deposit
Withdrawal
Transfer
Procedural Perspective
Fun
ctio
nal P
ersp
ectiv
e
© 2005 IBM Corporation30
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 Corporation31
Typical development process flow
Design3Design2Design1 Design5Design4
Code3Code2 Code4Code1 Code5
Test3Test2 Test4Test1 Test5
System-level Testing
Requirements
© 2005 IBM Corporation33
Process Model
Design3
Project Plans approved (entry criteria)
Requirements
Process steps
Specifications SpecsApproved(exit criteria)
© 2005 IBM Corporation34
Process Model
Entry criteria
Inputs
Description of activities/steps
Outputs
Exit criteria
Measurements
© 2005 IBM Corporation36
Metrics identify if you are on course and on schedule
Toronto
London
An airplane may be off course 90% of the timeBut uses real time corrections to reach destination
© 2005 IBM Corporation37
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 Corporation38
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 Corporation39
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 Corporation40
Agenda
IBM Organizational Overview
Product
Process
Quality
Continual Improvement
© 2005 IBM Corporation41
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 Corporation42
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 Corporation43
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 Corporation44
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 Corporation45
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 Corporation46
Quality metrics planned for Development
Start
Metric
Target Finish
Actual Finish
Time
© 2005 IBM Corporation47
Monitoring quality in real-time
Process Activity Measurement Quality indicator
Requirements % of planned Requirements implemented
# of requirements with defects
Design % of designs reviewed
# of design defects
Code % of code reviewed # of code defects
Test % of test cases reviewed
% of test cases executed
# of defects # of escapes
© 2005 IBM Corporation48
Verification of Quality through testing
VUnit Test
Function Test
System TestRequirements
Design
Code
Testing is another form of process
© 2005 IBM Corporation49
Verification of Quality through testing
Usability test
Customer beta test
Documentation test
Performance test
Translation Verification test
Product CD (packaging) test
© 2005 IBM Corporation50
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 takenDefects will be analyzed to determine root cause and fixed
© 2005 IBM Corporation51
Customer reported problems and defects
If we ship a product with ‘issues’, a customer will call!
Examples of issuesThe product doesn’t install on the customer’s hardwareThe 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 Corporation52
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 Corporation53
Quality is a continuous cycle
Survey for requirements
Implement in product
Sell Product
© 2005 IBM Corporation54
Agenda
IBM Organizational Overview
Product
Process
Quality
Continual Improvement
© 2005 IBM Corporation55
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 Corporation56
Let’s Summarize
How IBM applies process to create quality products.
Design
Code
Test
Requirements
Product DeveloperProduct
© 2005 IBM Corporation57
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 Corporation58
How to reach IBM
For all of your information needs, please contact IBM via:
ibm.com/careers