COMSATS University Islamabad, Islamabad Campus assadabbas@comsats.edu.pk Outline
n Team Software Process (TSP)
May 15, 2024 2
Managing Software Projects with Team Software Process (TSP) n Software engineering is progressively becoming a collaborative activity as it relies on the knowledge, expertise and experience of an ample and frequently dissimilar group of individuals. n Although individuals can develop some software products, it is no longer practical for one person to do most software development jobs because the scale and the complexity of the systems have increased and the demand for short time- to-deliver is high. n System development is a team activity, and the quality of the software products are largely determined by the effectiveness of the team coordination. Yet, to be effective, teams must work in a trusting and supportive environment
May 15, 2024 3
Managing Software Projects with Team Software Process (TSP) n The Team Software Process (TSP) was developed in 1996 by Watts Humphrey, the founder of the Software Process Program at the Software Engineering Institute (SEI) at Carnegie Mellon University, United States. n TSP began as an attempt to make the Personal Software Process (PSP) a consistent practice for software engineers. 5 The first version of TSP, TSP0, was created in 1996. It was simple, was tested using two teams and ultimately helped engineers do the work associated with their discipline. 5 TSP0 included additional guidance necessary to teams regarding its processes. This initial trial indicated the importance of wider management support to TSP implementation. 5 The enhanced version of TSP0, TSP0.1, provided extra information on process improvements and was tried using a larger number of teams 5 Within 3 years after TSP0.1 was released, another nine versions of TSP were gradually developed, beginning with TSP0.2 May 15, 2024 4 Managing Software Projects with Team Software Process (TSP) n TSP, which is a collection of PSP components taken from individual software developers’ work processes and supplemented with selected engineering functions, was an excellent software process standard for use at the team level. n The Capability Maturity Model (CMM), which was developed earlier at the SEI, indicates organizational best practices for software development and can be efficiently adopted using TSP. n The TSP is a prescriptive process for implementing projects consisting of a set of process scripts, forms, standards, procedures, methods and tools for project teams to produce high-quality software products on schedule and within pre-agreed budget constraints n It provides clear and concise guidance on software development processes, with emphasis on mutual support and leadership among software project team members
May 15, 2024 5
Managing Software Projects with Team Software Process (TSP) n TSP can be adopted by teams of 2 to 150 members However, it is especially advisable to split teams of more than 15 to 20 members into smaller sub-teams for better management and team coherence n There are three variations of TSP: 5 Multi-team TSP (TSPm) g Meant for teams whose members are in different locations or teams under separate management 5 Functional TSP (TSPf) g Functional TSP (TSPf) is for teams in which each member usually works independently. g It modifies the basic TSP process for use by functional organisations that do not have a project structure. It is typically used when there is no project organisation present, usually for on-going activities such as maintenance of multiple products and product support. g Maintenance project teams are a good example of where TSPf could be adopted, as each member normally handles separate features of a product enhancement that require them to work on their own.
May 15, 2024 6
Managing Software Projects with Team Software Process (TSP) 5 TSP+ g TSP+ on the other hand, extends core TSP and TSPm by including additional process scripts designed to improve compliance of TSP with the CMMI process improvement model. n TSPm, TSPf and TSP+ are not in the public domain. They are proprietary to the SEI and provided under license to SEI partners only.
May 15, 2024 7
TSP Process and Structure n Team Software Process (TSP) provides clear and concise guidance for software development processes and emphasizes mutual support and leadership among software project team members. n Its purpose is to build an effective team through collaborative and disciplined work within a productive environment in which everyone knows their roles and responsibilities. The outcome is well-defined and well- planned work processes. n TSP builds on the Personal Software Process (PSP); individual members must be familiar with PSP skills and knowledge before becoming part of a TSP team. n PSP training helps individual software engineers assume a structured and disciplined approach in writing software and particularly in planning, tracking, measuring and managing the quality of their own work. It is vitally important for each team member to know and understand the principles underlying the TSP process to build a cohesive TSP team n TSP teamwork, on the other hand, involves daily engineering practices related to project development that require mutual cooperation and precise supervision. May 15, 2024 8 TSP Process and Structure n Principal Components of TSP Process
May 15, 2024 9
TSP Process and Structure n TSP Team Launch and Process Flow 5 Each TSP project begins with a team launch. 5 TSP team launch is a four-day planning process led by a trained launch coach, and TSP launch scripts are used to drive the launch activities. 5 The launch consists of nine development team meetings, with management and/or marketing/ customer representatives at the first and ninth meeting. During the launch, the team members work together to develop strategies, processes and detailed plans for their project. 5 The overall project plan will be presented for management approval during a management review meeting before the team proceeds with the project development process. 5 The plan is updated and refined at periodic launch sessions known as ‘re-launches’ that take place every three to four months so that the plans remain accurate May 15, 2024 10 TSP Process and Structure
May 15, 2024 11
TSP Process and Structure n In TSP, each team member is a manager, and everyone is assigned a specific managerial role based on his or her specific skills. n The management positions include team leader, customer interface manager, design manager, implementation manager, test manager, planning manager, process manager, quality manager and support manager. n Each role has its own set of goals and responsibilities. n An overall project schedule in TSP is estimated using a top-down approach based on overall project size and average team productivity. n A Work Breakdown Structure (WBS) is first produced by the team based on the conceptual design. The WBS is a list of product components grouped into small groups of similar items. Once assembled, it provides a list of major products and indicates the order in which they should be built.
May 15, 2024 12
TSP Process and Structure
May 15, 2024 13
ADOPTING TSP TO MINIMIZE AND AVOID SOFTWARE PROJECT FAILURE n Software projects hardly ever fail for just one or two factors. In fact, most failures are due to several combinations of people, project, process, and technical factors. n Among the most common failure factors that were reported by several articles and surveys are: 5 Vague requirements and specifications 5 Unclear objectives and goals 5 Unrealistic schedules and budgets 5 Lack of support from top management 5 Lack of user and client involvement 5 Ineffective communication and feedback 5 Poor reporting of the project’s status 5 Ineffective project monitoring and control 5 Unclear assignment of roles and responsibilities 5 Sloppy project management skills and methodologies
May 15, 2024 14
Source n Software Process Improvement and Management: Approaches and Tools for Practical Development, Shukor, S. Fauzi, H. N., Nuraminah R., Sahibuddin, S., IGI Global, 2011. (Ch. 7)