This is the first in a series of articles that will provide insight into the Team Software Process (TSP), its applicability to the medical device industry, and how it helps achieve the high level of software quality required for medical devices. This article will provide an overview of the TSP and will highlight some of the key quality elements of TSP.
Quality is the primary focus of the TSP and quality is essential to achieving a safe and effective medical device. So what is the best way to develop software in order to achieve the highest levels of quality?
In a recent study of different software development methods and quality practices, the TSP and Personal Software Process (PSP) were determined to have the greatest success for medium to large applications and were rated second for small applications.1 Organizations developing software for the first time and organizations seeking to improve their current software development practices can benefit significantly from the TSP/PSP. Those adopting the TSP/PSP can rest assured that they are developing software using methods that are recognized as the best available today. It is important that medical device software development organizations take a look at the TSP/PSP and benchmark their current practices against the TSP/PSP to determine if they can benefit from it.
The Team Software Process and Personal Software Process
The Team Software Process was developed by Watts S. Humphrey at the Software Engineering Institute of Carnegie Mellon University and was introduced in 1998. The Personal Software Process, which is an integral part of the TSP, was also developed by Humphrey in 1993. He was awarded the 2003 National Medal of Technology for his work in software engineering, receiving it from President George W. Bush in 2005.2
For teams of engineers developing a software-intensive product, the TSP provides a framework that combines their personal process discipline skills with proven process management techniques. This enables them to produce high-quality software as a team.3 The PSP teaches individual software engineers an approach to developing software that yields high quality software and accurate schedule predictability.
What are the benefits of the TSP?
The primary benefits of the TSP are twofold, much higher quality and much more reliable schedule estimates. Quality is paramount in the medical device field, however, both quality and accurate schedules are critical to the success of a medical device business.
Quality levels can be significantly improved using the TSP. Figure 2 shows that some TSP teams have achieved a post-release defect density level of 0.06 defects per 1000 lines of code – that’s only 60 remaining defects in one million lines of code. Very mature processes, like those implemented by CMM Level 4 and 5 organizations, yield between 2.28 and 1.05 defects per 1000 lines of code respectively. This demonstrates that TSP projects can achieve a much higher level of quality than other very mature practices – in some cases by a factor of ten or more.
Organizations must be able to accurately predict how many developers they will need and when they will finish. Figure 3 shows the effort and schedule estimation levels that TSP teams have achieved relative to the non-TSP teams evaluated. TSP teams have achieved schedule deviation ranges of -8 percent to +20 percent, where non-TSP teams showed schedule deviation ranges of +27 percent to +112 percent with almost all projects finishing late, some taking more than twice the original estimated time to complete.
Key differences between the TSP and other methodologies
There are many unique elements of the TSP (Figure 4), some of the most important are:
- Quality Planning. The TSP Quality planning process realizes that defect injection is inevitable. The team develops an estimate of the number of defects that will be injected during development and then builds a plan to remove those defects. One of the key philosophical differences is that TSP teams attempt to remove the vast majority, if not all, of the defects prior to software system testing.
- Planning and Estimating. The planning and estimating are done by the individual team members themselves guided by a TSP coach. This results in team members taking much more ownership of their plans and commitments. Over time their estimates become more accurate as each team member improves their estimation skills through the use of actual data.
- Personal Software Process. Individual developers are specifically trained in personal techniques for producing high-quality software with improved schedule predictability.
- Self-Managed Teams. Team members participate in the overall management of the project.
- Metrics Framework and Data. Four simple measures are captured while people are doing the work. These measures allow individuals and teams to really understand where they are and how the process is working. The TSP includes a comprehensive set of quality and planning metrics.
- Coaching. A trained TSP Coach works side-by-side with the team as they implement the TSP. This ensures that the team is performing all of the TSP activities as planned and that each individual is aware, through their personal metrics, how well they are performing and where they can improve.