TMP3413 Software Engineering Lab Lecture 01: Team Software Process Overview
Topics Working in teams What is TSP? TSP objectives & principles TSP design Team member roles TSP launch TSP project tracking TSP practise
Planning??
What is the TSP? (cont ) The TSP is a framework and a process structure for building and guiding engineering teams that develop software. The TSP contains a team-building process that addresses the team goals, commitment, cohesion, and structure issues a team-working process that addresses engineering processes and practices used by the team A prerequisite for a team to use the TSP is an understanding of the software engineering and process skills taught in the Personal Software Process (PSP).
What is TSP? Defined framework for upper-level undergraduate course in team software engineering It capitalizes on the broad base of industrial experience in planning and managing software projects TSP Provides a balanced emphasis on process, product and teamwork Guides us through the steps of a team software project course Shows us on how to apply known software engineering and principles in a teamwork environment
TSP Objectives The TSP was developed to: help software engineering teams to build quality products within cost and schedule constraints build teams quickly and reliably optimize team performance throughout a project accelerate software process improvement make CMM level 5 behavior normal and expected
Why Engineering Teams Need a Process?
Every tasks need to be done followed by the sequences They need to figure out how to work together as a team They need to define the job they need to do They should know on how to devise a strategy for doing the work They must allocate the tasks among team members and coordinate each of these tasks They need to improve the productivity
TSP Principles Four basic principles of TSP: 1. Learning is most effective when students follow defined and repeatable steps and get rapid feedback on their work 3. When students are exposed to the problems of realistic development projects and then guided to effective solutions, they gain a better appreciation of the value of sound engineering 2. Productive teamwork requires a defined team goal, an effective working environment and capable coaching and leadership 4. Instruction is most effective when it builds on the available body of prior engineering, scientific and pedagogical experience
TSP Design (Seven Principles) 1.Provide a simple framework that builds on the foundation of the PSP 2. Develop products in several cycles 3. Establish standard measures for quality and performance 4. Provide precise measures for teams and students 5. Use role and team evaluations 6. Require process discipline 7. Provide guidance on teamwork problems
TSP Design (cont...) TSP Design notes Purpose 1. Provide a Simple Framework To help students in doing their task, such as developing a product or learning how to do a team project 2. Develop Products in Several Cycles 3. Establish Standard Measures for Quality and Performance In full TSP course, the students need to complete two or three development cycles. Each of these cycles include a full requirements, design, implementation and test development process. Measurements are an essential part of doing consistently highquality work TSP requires the students and their teammates set the personal as well as team goals To have a clear and convincing evidence of what works best for the team and the students will have the confidence to continue using these methods in practice To see the benefits of quality measurements and the value of project planning and tracking
TSP Design (cont...) TSP Design notes Purpose 4. Provide Precise Measures for Teams and Students 5. Use Role and Team Evaluations TSP provides a peer evaluation capability that can be used if the instructor so desires. The students are best informed about the team s and one another s performance, so that they can persuaded to make and honest evaluation, the instructor will be best informed and best able to give fair and equitable grades. To help students in doing their task, such as developing a product or learning how to do a team project To evaluate how each role was performed and not how the people behaved
TSP Design (cont...) TSP Design notes Purpose 6. Require Process Discipline Hard for the Software Engineers to consistently do disciplined personal work because software engineering has no tradition of disciplined personal performance and the software process does not impose a natural discipline on engineers. The instructor will require the students to follow the process and to gather the data. The students need to complete the forms and analyze and use the data. To help students in doing their task, such as developing a product or learning how to do a team project 7. Provide Guidance on Teamwork Problems In the best-run projects it is common to have teamwork problems The most powerful force for resolving team problems is peer pressure TSP provide the guidance for the teamwork problems. With the guidance and support, most engineers can be effective team members.
TSP Structure and Flow The Cyclic Development Strategy Each cycle should produce a testable version that is proper subset of the ultimate product. Each cycle should be small enough to be readily developed and tested in the available time. When combined, the cycle products should produce the desired final product.
Product Need Statement Cycle 1 Launch Strategy 1 Plan 1 Requirements 1 Design 1 Implementatio n 1 Test 1 Postmortem 1 Cycle 2 Launch Strategy 2 Plan 2 Requirements 2 Design 2 Implementatio n 2 Test 2 Postmortem 2 Cycle 3 Launch Strategy 3 Plan 3 Requirements 3 Design 3 Implementation 3 Test 3 Postmortem 3 Finished Product Final Evaluation
Team Member Roles The self-management responsibilities are shared among team members through eight defined team member roles: Customer Interface Manager Design Manager Implementation Manager Planning Manager Process Manager Quality Manager Support Manager Test Manager The team leader acts as team coach.
The TSP Launch (cont..) The TSP launch is a 3-4 day workshop used to kickoff each project phase. The team leader and all team members participate. The launch workshop accelerates team-building. The team establishes a common understanding of the work and the approach they will use. They make a plan that they can commit to and obtain management support for their plan. The most important launch outcome is a motivated team.
The Launch Process Meeting
The TSP Launch Products
TSP Project Tracking Project tracking in the TSP is based on the principles and measures used in the PSP. The detailed team and individual plans facilitate precise project tracking. Each team member is responsible for: gathering data on their work tracking status against their personal plan keeping the team informed Each team member is also responsible for the quality of the work they produce.
TSP Project Tracking
TSP A World-Class Development Practice [1] Software Engineering Best Practices, by Capers Jones, 2010. Development practices by size of application in function points (FP) [1] [2] [2] The Economics of Software Quality, by Capers Jones, 2011. (1FP 30 to 50 SLOC)
TSP applied on organizations Some of the best known organizations that have introduced the TSP are ABB AIS Bechtel-Bettis Boeing DFAS EDS-SDRC Ericsson Honeywell Intuit Kaiser Lockheed Microsoft NASA Langley NCR Teradata Northrop Grummon Teradyne USAF: Hill AFB USN: NAVAIR USN: NAVOCEANO Xerox
Allied Signal engineers PSP and TSP Experiences Provides a framework for coordinating and tracking team activities It s good project management techniques coupled with good personal data. The problem with most software development is, it s done with an ad hoc structure Dave Webb IEEE Software, Nov 2000, p. 125 may appear at first glance that PSP training will cause a slip in schedule, but you actually get your money back after 1,200 lines of code. Bob Musson IEEE Software, Nov 2000, p. 126