Team Software Process (TSPi) CS4320 Fall 2002 TSP Strategy Provide Use a simple process framework based on the PSP. modest, well-defined problems. Develop products in several cycles. Establish Provide Use standard measures for quality and performance. detailed role definitions. role and team evaluations. Require process discipline. Provide guidance on teamwork problems. TSP Process Cycle 1 Launch Strategy 1 Plan 1 Requirements 1 Design 1 Implementation 1 Test 1 Postmortem 1 Cycle 2 Launch Strategy 2 Plan 2 Requirements 2 Design 2 Implementation 2 Test 2 Postmortem 2 Cycle 3 Launch Strategy 3 Plan 3 Requirements 3 Design 3 Implementation 3 Test 3 Postmortem 3 Life Cycle Phases Launch Strategy Plan Requirements Design Implement Test Postmortem Appendix D - Script DEV (p. 363) Cycle Descriptions Launch – – – – – review course objectives describe the TSPi structure and content assign student teams and roles describe the customer needs statement establish team and individual goals Strategy – – – – – – create a conceptual design for the product establish the development strategy: decide what will be produced in each cycle make initial size and effort estimates establish a configuration management plan Reuse plan Risk Management Cycle Descriptions (Cont’d) Planning – – – – estimate the size of each artifact to be developed (SRS, SDS, code) identify tasks to be performed; estimate time to complete each task; assign tasks to team members make a weekly schedule for task completion make a quality plan Requirements – – – – analyze need statement and interview customer specify the requirements inspect the requirements develop a system test plan Cycle Phases Design – – – – create a high-level design specify the design inspect the design develop an integration test plan Implementation – – – – – – – use the PSP to implement modules/units create detailed design of modules/units review the design translate the design to code review the code compile and test the modules/units analyze the quality of the modules/units Cycle Phases Test – – – build and integrate the system conduct a system test produce user documentation Postmortem – – – conduct a postmortem analysis write a cycle report produce peer and team evaluations Motivation (Teamwork) The success or failure of a project is seldom due to technical issues. You almost never find yourself asking “has the state of the art advanced far enough so that this program can be written?” Of course it has. If the project goes down the tubes, it will be nontechnical, human interaction problems that do it in. The team will fail to bind, or the developers will fail to gain rapport with the users, or people will fight interminably over meaningless methodological issues. -- Tom DeMarco Common Team Problems Ineffective Leadership Failure to compromise/cooperate Lack of participation Procrastination Poor Quality Function Creep Ineffective peer evaluation Teams – An aside from the text Motivation – – Teamwork – How to get best from people. Study of quality goals vs final product How to get best from team. Team Structure – Organization Matters Team Project Pick either: – – Change Counter Program Analyzer Go through 1 cycle Plan for all cycles TSPi Teams Five People Defined Roles (Read 384-393) – – – – – Team Leader Development Manager Planning Manager Quality/Process Manager Support Manager Project Bid Table 3.3 LAUNCH!!! Script LAU1 First Team Meeting Use Meeting Script Meeting Goal: – – – Gather and analyze team data on project Update Personal Task/Schedules prior to meeting Produce Weekly Report Start Project Notebook TSP Planning Overview STRAT Develop the Strategy STRAT Make Size Estimates SUMS Produce Conceptual Design SUMP SUMQ Produce Quality Plan Produce Team Plan TASK SUMQ SCHEDULE Produce Final Team Plan Balance Team Workload Make Team Member Plans Make Personal Plans SUMS TASK TASK TASK SCHEDULE SCHEDULE SCHEDULE Development Strategy Plan the flight, fly the plan. Gain common understanding of work Basis for tracking work Non-artificial project date Script STRAT1 Conceptual Design – – – – How will I build this product? What are principle components? What functions do components provide? How big are components? This is a planning design—not THE design!! Cycle Planning (418 Strat Form) Cycle LOC Cycle Hours Ref Functions 1.1 Compare mod prog to prev ver 1.2 ID added and deleted LOC 1.6 Provide Change Label Header 1 2 3 1 2 X 180 50 18 5 3 Risk Assessment ID significant risks Rate High , Medium, Low according to : – – Likelihood of occurrence Impact on project Team members track all risks not LL Risks entered on form ITL (page 405) Change Management Copies of each version of product Record of all changes made Who made change When change was made What change was Why change made Development (This cycle) Develop the Strategy STRAT Make Size Estimates SUMS Produce Conceptual Design SUMP SUMQ Produce Quality Plan Produce Team Plan TASK SUMQ SCHEDULE Produce Final Team Plan Balance Team Workload Make Team Member Plans Make Personal Plans SUMS TASK TASK TASK SCHEDULE SCHEDULE SCHEDULE Development Script (PLAN Script) SUMS (Page 433) – TASK (Page 438) – – From individual PROBE estimates 10 Hour Individual Threshold SCHEDULE (Page 417) – – Include not just code, but all work products Map from TASK forms Use Estimate of Weekly Hours for Team Quality Plan (Page 426-429) – SUMP, SUMQ Excel Form Excel TASK Form Excel Form SCHEDULE Excel SUMQ Excel Time Log LOGT Excel Defect Log LOGD Load Balancing Use whole team Produce Plans first Next produce work matrix Balance work using matrix Load Balancing Matrix Bob Task 1 Fred Task 2 Homework #3 Details Teams work to plan entire project Work on cycle 1 Try to do some amount of coding SRS – Addendum to Needs Statement Design – Templates or UML or ??? Code – Try to deliver some code, so you can do the implementation/test scripts You have 3 weeks. May use excel tool, or do manually with forms. Turn in all artifacts except source code itself.