Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft.

Slides:



Advertisements
Similar presentations
Top 10 User Mistakes with Static Analysis Sate IV March 2012.
Advertisements

S-Curves & the Zero Bug Bounce:
Statistical Analysis at BAE NS Making Statistics Part of Decision Making in an Engineering Organization Card, Domzalski, Davies IEEE Software, May/June.
More CMM Part Two : Details.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
© Copyright Richard W. Selby and Northrop Grumman Corporation. All rights reserved. 0 Process Synchronization and Stabilization February 2007 Rick.
Chapter 10 Quality Control McGraw-Hill/Irwin
INDUSTRIAL & SYSTEMS ENGINEERING
18 th International Forum on COCOMO and Software Cost Modeling October 2003 Use of Historical Data by High Maturity Organizations Rick Hefner, Ph.D.
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
Software Development Process. Process Improvement Using the Shewhart Cycle 1.PLAN - Plan a change aimed at improvement, collect data, and establish a.
SE 450 Software Processes & Product Metrics Reliability Engineering.
8-1 Quality Improvement and Statistics Definitions of Quality Quality means fitness for use - quality of design - quality of conformance Quality is.
Performance Measurement and Strategic Information Management
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Readiness Index – Is your application ready for Production? Jeff Tatelman SQuAD October 2008.
Capability Maturity Model
SIX SIGMA. What is six sigma? Sigma is a measure of “goodness: the capability of a process to produce perfect work. A “defect” is any mistake that results.
Release & Deployment ITIL Version 3
Chapter 18 Optimizing and Controlling Processes through Statistical Process Control.
The Importance and Value of Process Improvement. Rationale for Process Improvement Establishing an attitude and culture of quality improvement and continuous.
Six Sigma By: Tim Bauman April 2, Overview What is Six Sigma? Key Concepts Methodologies Roles Examples of Six Sigma Benefits Criticisms.
Using Six Sigma to Achieve CMMI Levels 4 and 5
Even More SQA: CAPA Corrective and Preventive Actions.
Chapter : Software Process
TTMG 5103 Module Techniques and Tools for problem diagnosis and improvement prior to commercialization Shiva Biradar TIM Program, Carleton University.
6 Sigma Hazırlayanlar : Emine Yılmaz Cansın Eminoğlu.
Development Testing – Is It Worth It? Arthur Hicken September 2012.
Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development by Wiktor Grodowski.
1 Software Quality Engineering CS410 Class 5 Seven Basic Quality Tools.
Introduction & Implementation of TQM Introduction & Implementation of TQM By -Fuad Al- Ruhaili -Mohammed Al-hosawi -Talal Al-Hawsawi -Mohammed Al-Otaibi.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The process Process, Methods, and Tools
CLEANROOM SOFTWARE ENGINEERING.
N By: Md Rezaul Huda Reza n
Testing – A Methodology of Science and Art. Agenda To show, A global Test Process which work Like a solution Black Box for an Software Implementation.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Lecture # 17
NDIA Systems Engineering Supportability & Interoperability Conference October 2003 Using Six Sigma to Improve Systems Engineering Rick Hefner, Ph.D.
Service Transition & Planning Service Validation & Testing
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Georgia Institute of Technology CS 4320 Fall 2003.
Software Engineering - I
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CMMI. 1.Initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual.
Chapter Sixteen Control: Techniques for Enhancing Organizational Effectiveness.
Purpose: The purpose of CMM Integration is to provide guidance for improving your organization’s processes and your ability to manage the development,
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Compuware Corporation Deliver Reliable Applications Faster Dave Kapelanski Automated Testing Manager.
Quality Control  Statistical Process Control (SPC)
CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.
Software Engineering (CSI 321) Software Process: A Generic View 1.
Parasoft : Improving Productivity in IT Organizations David McCaw.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
How to use SPC Before implementing SPC or any new quality system, the manufacturing process should be evaluated to determine the main areas of waste. Some.
Software Configuration Management
Software Quality Assurance
Software Verification and Validation
Software Engineering (CSI 321)
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
UNIT-6 SOFTWARE QUALITY ASSURANCE
UNIT-6 SOFTWARE QUALITY ASSURANCE
Baisc Of Software Testing
Capability Maturity Model
Capability Maturity Model
Software Engineering Process
Six Sigma Introduction 1 1.
Presentation transcript:

Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft

What is this all about?  We need to continually build more software to transfer our intelligence into computers  We expect software to change in response to business requirements  Systems are getting more complicated and harder to control  However, we still build software as we did many years ago… we have not yet industrialized the process

How is building software different than other manufacturing processes?  Software is the transfer of the brain’s content  The brain has to be a critical part of the process

What do we need?  An infrastructure which supports the brain in this process  Relieves the brain from repetitive and mundane tasks which can be automated  Allows creativity  Since humans make mistakes, the infrastructure must provide support to correct and eliminate these mistakes

Where does this lead?  Better software production methods  Higher productivity  Better software quality

How is this done?  Principles: Basic rules for structuring and managing software projects through defect prevention  Practices: Functional embodiments of the principles  Policies: Managerial embodiments of the principles

Principle 1: Establishment of Infrastructure “Build a strong foundation through integration of people and technology”  People  Configurable technologies  Integration of the people and the technology

Principle 2: Application of General Best Practices “Learn from others’ mistakes”  Best practices from industry experts  Prevent common errors

Principle 3: Customization of Best Practices “Learn from your own mistakes”  Each time a defect is discovered, a new customized practice is defined and integrated into the process  Application should be automated and seamless  Adherence should be monitored

Principle 4: Measurement and Tracking of Project Status “Understand the past and present to make decisions about the future”  Identify problems promptly  Assess product quality and deployment readiness  Requires automated reporting system

Principle 5: Automation “Let the computer do it”  System complexity makes automation a necessity  Automation…  Improves job satisfaction and productivity  Improves product quality  Facilitates human communication  Helps to implement and verify best practices and organizational standards  Facilitates control of the software processes by collecting measurement data

Principle 6: Incremental Implementation of ADP’s Practices and Policies  Group-by-group  Pilot group> expansion  Practice-by-practice  Severity levels  Cutoff dates

Feedback Loop 1.Identify a defect. 2.Find the root cause of the defect. 3.Locate the point in the production line that caused the defect. 4.Implement preventative practices to ensure that similar defects do not reoccur. 5.Monitor the process to verify effectiveness of the preventive practices.

Infrastructure Supporting Intelligence Auto verification of policy adherence Support for auto rebuilds Auto verification of internal structure Auto verification that functionality did not change Support for peer code reviews

GRS Visibility Did the code change? Did it build? Was it reviewed? Did it implement requirements? Did it fix bugs? Does it work?

Application to Real Development Projects Archived Data 28,000,000 lines of code 120 developers Process Improvement 10x Productivity Improvement Quality becomes a side effect

Developer Visibility

Parasoft Nucleus GRS Servers Languages Web Services Blueprint Services

Process Control  Software processes should be measured and tracked throughout the project lifetime should be treated as statistical processes  Use data to evaluate process trends; as the project progresses, the trends in its processes should stabilize  The goal: a predefined level of stabilization and capability  A stable process is predictable; its variation is under control (for example, when representative variables are plotted on a control chart, they fall between the upper control limit and the lower control limit, which are based on quality controls such as Six Sigma)  For a process to be considered capable, it must be stable and the average of its plotted variables must fall within the specification limits, which vary for each process.

Process Control Example - Confidence Factor  Used to evaluate software quality and help in making deployment decisions  An aggregate of measures such feature/requirement implementation index, test pass rate, code check in stability, and others  CF should stay within small range near the top of the scale  Code is not being broken through feature additions, the test cases are succeeding, etc.  The application can be released  The graphed process is stable, but not yet capable

Raising the Confidence Factor  Study all indicators to determine the weakest points  Example: If weakest point is violations of coding standards, the code quality should be increased  This would increase the CF, but further work might be required  Other problems might exist, such as too many code modifications and uncompleted features with their consequent failing tests  Continue the cycle of identifying and fixing problems until the CF reaches the appropriate level – this is necessary to attain product stability and capability and arrive at an informed release decision