590 likes | 696 Views
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.
E N D
McMaster Education SeriesHow 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
IBM Software Group IBM Software Group is one of the largest software companies in the world
eBay • eBay selected WebSphere, IBM’s e-infrastructure software, as the technology foundation for its next-generation trading platform
CNN uses IBM software and hardware to manage its archives of over 200,000 hours of digital material CNN
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 Air Canada
Toronto Lab Mission We develop products or provide services in Toronto for all of the Software Group brands
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
Platforms Supported by Toronto Lab Products • Linux • Solaris • HP • Windows • AIX • OS/390 • OS/400 • OS/2 • VM / VSE
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)
SEPG Provides Support to the Toronto Lab • Process education • Process modeling, definition and assessment • Sharing of best practices and tools
Agenda • IBM Organizational Overview • Product • Process • Quality • Continual Improvement
Definition of Product • 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. Bank Teller System, Airline Scheduling System e.g. WebSphere Application Server, DB2 Database
Definition of Product • 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 • 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 Product Developer Product e.g. WebSphere Application Server, DB2 Database
McMaster Education SeriesHow IBM Applies Process to Create Quality Products IBM Toronto Software Development Lab
Agenda • IBM Organizational Overview • Product • Process • Quality • Continual Improvement
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
What are the pitfalls of heroic effort? 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? • 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
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
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
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
Break the problem into manageable pieces Functional Perspective
Break the problem into manageable pieces Procedural Perspective Functional Perspective
Break the problem into manageable pieces Procedural Perspective Functional Perspective
There can be different levels of process Executives Managers Teams Developers Development Requirements Design Hi-level Design Finance IPD Code Lo-level Design Marketing Test Sales IPD = Integrated Product Development (IBM’s business management process)
Typical development process flow Requirements Design1 Design2 Design3 Design4 Design5 Code1 Code2 Code3 Code4 Code5 Test1 Test2 Test3 Test4 Test5 System-level Testing
Process Model Requirements Design3 Code3 Test3
Process Model Requirements Project Plans approved (entry criteria) Process steps Design3 Specifications Specs Approved (exit criteria)
Process Model • Entry criteria • Inputs • Description of activities/steps • Outputs • Exit criteria • Measurements
Sample Lab Process • Actual Design Process from the IBM Toronto Lab
Metrics identify if you are on course and on schedule London An airplane may be off course 90% of the time But uses real time corrections to reach destination Toronto
By taking process measurements in real time projects are better able to meet their commitments. Target Finish 100 ActualFinish % of Test Phase Success 0 Week 1 Week 2 Week n Time
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
Process Summary • Heroic efforts • Plan vs. process • Decomposition into manageable pieces • Different levels of process depending on your role • Process models • Process measurements
Agenda • IBM Organizational Overview • Product • Process • Quality • Continual Improvement
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
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!
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
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
Planning for improving Customer Satisfaction The Quality Plan • Understand customer product requirements • Choose quality objectives • Example … Usability • Set Quality targets • Executive review and approval
Quality metrics planned for Development Target Finish Metric ActualFinish Start Time
Verification of Quality through testing Testing is another form of process V Requirements System Test Design Function Test Code Unit Test
Verification of Quality through testing • Usability test • Customer beta test • Documentation test • Performance test • Translation Verification test • Product CD (packaging) test
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