Presentation on theme: "Nine Steps to Delivering Defect-Free Software By: Terence M. Colligan Presented by: Isaac Bailey."— Presentation transcript:
Nine Steps to Delivering Defect-Free Software By: Terence M. Colligan Presented by: Isaac Bailey
Outline Introduction 1. Believe Defect-Free Software is Possible 2. Think Defect-Free Software is Important 3. Commit to Delivering Defect-Free Software 4. Design Your Code for Simplicity and Reliability 5. Trace Every Line of Code When Written 6. Review Code by Programmer Peers 7. Build Automated QA into Your Code 8. Build and Test Daily 9. Use Automated Checking Wherever Possible Summary
Introduction Terence Colligan has been working in software development for 30 years at the time this article was written. One engineer changed his entire outlook on how software should be written. They have come up with these nine steps.
1. Believe Defect-Free Software is Possible The first reaction is “It’s just not possible”. This attitude is the biggest obstacle. The average engineer: –Defects are inevitable. The defect-free engineer: –Defects embarrass them. –They are disgusted to find defects in other people’s code
2. Think Defect-Free Software is Important Why is defect-free software important? –Reduces support costs. –Reduces programming costs. –Reduces development time. –Can provide a competitive advantage.
3. Commit to Delivering Defect- Free Software Colligan used to make decisions based on short schedule time instead of focusing on the defect-free side. In reality the schedules were longer, there were more bugs in the software, more support was required, higher costs and lower profits.
4. Design Your Code for Simplicity and Reliability A clean, well structured design simplifies producing reliable code. Whereas a poor design cripples the engineer. Each function should be precise and have only one purpose. If a bug is found then the programmer can find and fix the code fast, saving time and money.
5. Trace Every Line of Code When Written Using a debugger trace every new line of code. Try to predict the outcome before each line is executed. By stepping through each line of code, you ensure that the new code is fully tested. You confirm that the code is functioning as intended.
6. Review Code by Programmer Peers Single most cost-effective way to remove bugs from code. This process forces the engineer to articulate assumptions. Allows for more than one engineer to view the code while it is still easy to change. Encourages cross-training and sharing of techniques.
7. Build Automated QA into Your Code Automated test are designed to exercise every part of the program. Use the power of the computer. Avoid human error.
8. Build and Test Daily This gives developers feedback about changes made and management gets objective feedback about the project status. This helps in making better estimates about costs and shipping dates.
9. Use Automated Checking Wherever Possible Set your compiler’s warning level to maximum. Use the memory trace subsystem. Other commercial tools
Summary It take a lot of work. Some details will be adapted to your situation. By demanding defect-free software you can deliver it.