In combination with the personal software process (PSP), the team software process (TSP) provides a defined operational process framework that is designed to help teams of managers and engineers organize projects and produce software for products that range in size from small projects of several thousand lines of code (KLOC) to very large projects greater than half a million lines of code. The TSP is intended to improve the levels of quality and productivity of a team's software development project, in order to help them better meet the cost and schedule commitments of developing a software system.[1][2][3][4]
The initial version of the TSP was developed and piloted by Watts Humphrey in the late 1990s[5] and the Technical Report[6] for TSP sponsored by the U.S. Department of Defense was published in November 2000. The book by Watts Humphrey,[7] Introduction to the Team Software Process, presents a view of the TSP intended for use in academic settings, that focuses on the process of building a software production team, establishing team goals, distributing team roles, and other teamwork-related activities.
Introduction to TSP
editThe primary goal of TSP is to create a team environment for establishing and maintaining a self-directed team, and supporting disciplined individual work as a base of PSP framework. Self-directed team means that the team manages itself, plans and tracks their work, manages the quality of their work, and works proactively to meet team goals. TSP has two principal components: team-building and team-working. Team-building is a process that defines roles for each team member and sets up teamwork through TSP launch and periodical relaunch. Team-working is a process that deals with engineering processes and practices utilized by the team. TSP, in short, provides engineers and managers with a way that establishes and manages their team to produce the high-quality software on schedule and budget.
How TSP works
editBefore engineers can participate in the TSP, it is required that they have already learned about the PSP, so that the TSP can work effectively. Training is also required for other team members, the team lead and management. The TSP software development cycle begins with a planning process called the launch, led by a coach who has been specially trained, and is either certified or provisional.[8][9] The launch is designed to begin the team building process, and during this time teams and managers establish goals, define team roles, assess risks, estimate effort, allocate tasks, and produce a team plan. During an execution phase, developers track planned and actual effort, schedule, and defects meeting regularly (usually weekly) to report status and revise plans. A development cycle ends with a Post Mortem to assess performance, revise planning parameters, and capture lessons learned for process improvement.
The coach role focuses on supporting the team and the individuals on the team as the process expert while being independent of direct project management responsibility.[10][11] The team leader role is different from the coach role in that, team leaders are responsible to management for products and project outcomes while the coach is responsible for developing individual and team performance.[12][13]
Latest developments
editTSP has been adapted to work with other types of knowledge work, including systems engineering[14] and services.[15][16]
Mapping TSP to Capability Maturity Model Integrated (CMMI) practices was documented in 2010,[17] and piloted as an alternative path to implement CMMI process improvement.[18][19] A body of knowledge (BOK) was issued in 2010.[20] The coach mentor program guidebook was released in 2010.[21]
According to a study by Capers Jones TSP is one of the most successful development methodologies regarding schedule, quality and budget (TCO) [22]
Publications
edit- TSP: Leading a Development Team 2005
- TSP: Coaching Development Teams 2005
See also
editReferences
edit- ^ Jones, Capers (2009). Software Engineering Best Practices. McGraw-Hill. p. 11. ISBN 9780071621618.
- ^ Kindler, Nosh B; Krishnakanthan, Vasantha; Tinaikar, Ranjit. Applying Lean to Application Development. McKinsey Quarterly, May 2007
- ^ "Agile Capital Consulting". Archived from the original on February 3, 2018. Retrieved July 3, 2017.
- ^ Ker, J. I., Wang, Y., Hajli, M. N., Song, J., & Ker, C. W. (2014). "Deploying lean in healthcare: Evaluating information technology effectiveness in US hospital pharmacies". International Journal of Information Management, 34(4), 556–560.
- ^ McAndrews, Donald (1998). "The Team Software ProcessSM (TSPSM): An Overview and Preliminary Results of Using Disciplined Practices".
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Humphrey, Watts. "The Team Software Process" (PDF). Software Engineering Institute.
- ^ Humphrey, Watts (1999). Introduction to the Team Software Process. Addison Wesley.
- ^ Humphrey, Watts (2018). "The Team Software Process Body of Knowledge". Software Engineering Institute. doi:10.1184/R1/6584825.v1.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Chick, Timothy (2010). "Team Software Process (TSP) Coach Mentoring Program Guidebook Version 1.1". Software Engineering Institute. doi:10.1184/R1/6584810.v1.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Humphrey, Watts (2018). "The Team Software Process Body of Knowledge". Software Engineering Institute. doi:10.1184/R1/6584825.v1.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Humphrey, Watts (2005). TSP: Coaching Development Teams. Addison Wesley.
- ^ Humphrey, Watts (2018). "The Team Software Process Body of Knowledge". Software Engineering Institute. doi:10.1184/R1/6584825.v1.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Humphrey, Watts (2005). TSP: Coaching Development Teams. Addison Wesley.
- ^ Carleton, Anita. "Extending Team Software Process (TSP) to Systems Engineering: A NAVAIR Experience Report" (PDF). Software Engineering Institute.
- ^ Battle, Ed. "Leading & Learning – Using TSP at the MSG Level" (PDF). Naval Oceanographic Office.
- ^ "Software consulting: How to make sure the software consulting company you are looking for is reliable". Retrieved 23 April 2019.
- ^ James McHale; Timothy A. Chick; Eugene Miluk (December 2010). "Implementation Guidance for the Accelerated Improvement Method (AIM)" (PDF). Software Engineering Institute. Retrieved October 11, 2016.
- ^ Webb, David (April 2007). "CMMI Level 5 and the Team Software Process" (PDF). Cross Talk. Archived from the original on October 9, 2012.
- ^ Mondragon, Oscar. "AIM Case Study" (PDF). Software Engineering Excellence Center.
- ^ Humphrey, Watts (2018). "The Team Software Process Body of Knowledge". Software Engineering Institute. doi:10.1184/R1/6584825.v1.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Chick, Timothy (2010). "Team Software Process (TSP) Coach Mentoring Program Guidebook Version 1.1". Software Engineering Institute. doi:10.1184/R1/6584810.v1.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Jones, Capers (2013). "Evaluating ten software development methodologies". Archived from the original on 29 June 2013.