Get personal for quality
Although organizational capability is important when it comes to programming control applications, individual capability is critical to a quality product. It is not uncommon to see 10 to 1 differences in errors per thousand lines of code between the best and worst software developers, and the best and worst development teams.
Although organizational capability is important when it comes to programming control applications, individual capability is critical to a quality product. It is not uncommon to see 10 to 1 differences in errors per thousand lines of code between the best and worst software developers, and the best and worst development teams. Because the process with the lowest quality determines the quality of the end product, fewer individual errors result in more predictable releases and higher productivity.
The Software Engineering Institute's (SEI) Capability Model is good for helping an organization develop software on time and on budget, however it doesn't provide a lot for the individual control engineer or development team. Fortunately, SEI developed two additional processes—personal software process (PSP) for individuals to improve their personal processes and team software process (TSP)—to help development teams improve.
Watts Humphrey, the "2005 National Medal of Technology Laureate," developed PSP. Most professional engineers strive to improve the quality of their work and PSP shows software professionals how to approach their tasks in a professional manner. PSP brings a rigor to personnel processes by defining how to measure your own performance, track changes, analyze problems, learn from mistakes, and update personal processes based on lessons learned. TSP brings the same rigor to software teams.
It is easy to fall into bad habits in software development. Everyone makes some mistakes during development, but few systematically learn from the mistakes so as not to repeat them. Yet, learning from mistakes and improving the process is the basis for quality improvements. For example, you may find that, during unit testing, you are consistently discovering the same errors, such as un-initialized variables in C, reuse of latches in ladder, incomplete detailed design, misspelled variables, or an incomplete understanding of the proper control algorithm. PSP teaches you how to learn from these mistakes and modify processes to reduce or eliminate future errors. This might involve earlier testing of smaller elements, external reviews, or earlier code walkthroughs. It is up to you to change your development process to remove the source for errors or find them earlier.
SEI provides a self-study PSP manual. This is not for the faint of heart; improving your own work is a long process, but worth the journey. Improvements don't come easily, especially if you have been designing and implementing software your own way for a long time. The self-study guide works best when you are working on one or more large projects. It requires you to keep measures, through logs of all stages of a project (planning, designing, coding, compiling, testing, and maintaining). The logs allow you to establish a quality baseline; measure estimates of sizes, resources, and schedules; and practice defect and yield management.
The reward for this hard work is better ability to meet commitments by correctly estimating and planning your work. Engineers taking PSP training have reduced schedule estimating errors from an average of 350% (work took 3.5 times longer than expected) to less than 10%. Total defects per thousand lines of code were reduced by more than 75%.
TSP provides similar process improvement tools to team managers focusing on self-directed teams. It stresses team development of schedules and estimates. Software managers are considered coaches that motivate the team to maintain a focus on quality and excellence. TSP provides tools to help manages follow the process, gather data, analyze results, and make corrections. PSP and TSP together provide a basis for quality development.
Additional information is available at www.sei.cmu.edu/tsp in the paper "PSP: A Self-Improvement Process for Software Engineers."
Dennis Brandl, firstname.lastname@example.org , is the president of BR&L Consulting, a consulting firm focusing on manufacturing IT solutions, based in Cary, N.C.