Business System Analysis Bookstore
In Association with Amazon.com
Help PicoSearch
Looking for Business Analysis Training

Introduction to the Team Software Process (Sei Series in Software Engineering)

Buy the Book
Summary TOC Preface Author Look Inside Comments Reviews
Watts S. Humphrey, Marc Lovelace, Ryan Hoppes
August 1999, Addison-Wesley Pub Co, Hardcover, 463 pages, ISBN 020147719X

Instructor-led, virtual, and self-paced training for Business Analysts What Do Business Analysts Do?
How to Gather, Analyze, and Define Business System Requirements
How to Model, Analyze, and Improve Business Processes
How to Manage Changing Business Requirements
How to Model and Analyze Business System Data
How to Manage Small Projects
How to Estimate Early in a Project
How to Develop and Use UML Models for Business Analysis
How to Prepare and Facilitate a Successful JAD Session
How to Facilitate a Successful JAR/JAD Session
How to Plan, Prepare, and Execute User Acceptance Testing
How to Plan and Prepare for User Acceptance Testing
Business Analysis and Requirements Gathering Blitz
e-Learning, virtual workshops and webinars Try our new Virtual Workshops and e-Coaching
for today's Business System Analysts (BA's) and Subject Matter Experts (SME's)

Summary
Buy the book

Watts Humphrey is the visionary behind the Capability Maturity Model (CMM)(R) and the Personal Software Process (PSP) (sm). The CMM contains a framework for software process improvement at the organizational level. The PSP builds the self-discipline needed for individual programmers to work efficiently and effectively. The author's new Team Software Process (TSP) (sm) details methods to guide the formation of software development teams, to motivate their work, and to enhance their productivity.

This book describes an introductory version of TSP, ideal for smaller projects but also useful for learning basic techniques and procedures that apply to other development projects. Methods presented include:

  • how to establish roles;
  • how to conceive, design, and plan a project;
  • how to track and report on progress.

The book walks readers through a complete development cycle, illustrating:

  • how best to use the talents at hand;
  • how to formulate well-defined goals;
  • how to coordinate activities for maximum progress;
  • how to promote effective communication;
  • how to alleviate many of the conflicts that undermine teamwork.

Team members should not have to expend valuable time and energy reinventing ways to organize and run their team. By following a proven process, the team will more quickly be able to focus on the successful completion of the project itself. To help a team course apply these methods, the book provides two project exercises, with prescribed development goals and team roles.

Topics Covered: Team Software Process (TSP) basics and scripts, building production software teams, team goals, team roles, planning, risk management, quality plan, requirements, design principles, product implementation, integration and system testing, test planning, defect tracking, documentation, conducting postmortems, team leaders, development managers, planning managers, quality/process managers, support managers.

 
analysis bookstore top
BA books: Table of Contents
Buy the book

Preface xi

Part I Introduction 1

Chapter 1 TSPi Overview 3

1.1 What Is TSPi? 4
1.2 TSPi Principles 5
1.3 The TSPi Design 5
1.4 TSPi Structure and Flow 9
1.5 The TSPi Process 10
1.6 The Textbook Structure and Flow 13
1.7 Summary 13

Chapter 2 The Logic of the Team Software Process 15

2.1 Why Projects Fail 16
2.2 Common Team Problems 17
2.3 What Is a Team? 19
2.4 Building Effective Teams 20
2.5 How Teams Develop 22
2.6 How TSPi Builds Teams 23
2.7 Summary 25
2.8 References 26

Part II The TSPi Process 27

Chapter 3 Launching a Team Project 29

3.1 Why Conduct a Team Launch? 29
3.2 Team Goals 30
3.3 Team-Member Goals 34
3.4 The Role Goals 35
3.5 The TSPi Launch Scripts 38
3.6 Summary 48

Chapter 4 The Development Strategy 49

4.1 Planning First 50
4.2 What Is a Strategy? 51
4.3 The Conceptual Design 52
4.4 Risk Management 52
4.5 A Reuse Strategy 54
4.6 The Strategy Scripts 54
4.7 Summary 63

Chapter 5 The Development Plan 65

5.1 The Need for Planning 65
5.2 The TSPi Planning Process 71
5.3 The TSPi Support Tool 73
5.4 The Development Plan Scripts 74
5.5 Tracking the Work 91
5.6 The Quality Plan 97
5.7 Summary 107
5.8 Reference 108

Chapter 6 Defining the Requirements 109

6.1 What Are Requirements? 109
6.2 Why We Need Requirements 110
6.3 Requirements Changes 111
6.4 The Software Requirements Specification 112
6.5 The TSPi Requirements Scripts 114
6.6 Summary 120
6.7 References 120

Chapter 7 Designing with Teams 121

7.1 Design Principles 122
7.2 Designing in Teams 123
7.3 Design Standards 125
7.4 Designing for Reuse 128
7.5 Designing for Usability 130
7.6 Designing for Testability 130
7.7 Design Reviews and Inspections 131
7.8 The TSPi Design Scripts 132
7.9 Summary 138
7.10 References 139

Chapter 8 Product Implementation 141

8.1 Design Completion Criteria 141
8.2 Implementation Standards 143
8.3 The Implementation Strategy 148
8.4 Reviews and Inspections 149
8.5 The IMP Scripts 151
8.6 Summary 161
8.7 Reference 162

Chapter 9 Integration and System Testing 163

9.1 Testing Principles 163
9.2 The TSPi Testing Strategy 165
9.3 The Build and Integration Strategy 166
9.4 The System Test Strategy 168
9.5 Test Planning 169
9.6 Tracking and Measuring Testing 170
9.7 Documentation 173
9.8 The TSPi TEST Scripts 177
9.9 Summary 182
9.10 References 183

Chapter 10 The Postmortem 185

10.1 Why We Need a Postmortem 185
10.2 What a Postmortem Can Do for You 186
10.3 The Process Improvement Proposal 186
10.4 The TSPi Postmortem Scripts 187
10.5 Summary 196
10.6 Reference 196

Part III The Team Roles 197

Chapter 11 The Team Leader Role 201

11.1 The Team Leader's Goals 202
11.2 Helpful Team Leader Skills and Abilities 204
11.3 The Team Leader's Principal Activities 208
11.4 The Team Leader's Project Activities 216
11.5 Summary 216

Chapter 12 The Development Manager Role 219

12.1 The Development Manager's Goals 220
12.2 Helpful Development Manager Skills and Abilities 221
12.3 The Development Manager's Principal Activities 224
12.4 The Development Manager's Project Activities 232
12.5 Summary 232

Chapter 13 The Planning Manager Role 235

13.1 The Planning Manager's Goals 236
13.2 Helpful Planning Manager Skills and Abilities 238
13.3 The Planning Manager's Principal Activities 238
13.4 The Planning Manager's Project Activities 248
13.5 Summary 248

Chapter 14 The Quality/Process Manager Role 251

14.1 The Quality/Process Manager's Goals 252
14.2 Helpful Quality/Process Manager Skills and Abilities 255
14.3 The Quality/Process Manager's Principal Activities 257
14.4 The Quality/Process Manager's Project Activities 264
14.5 Summary 264
14.6 References 265

Chapter 15 The Support Manager Role 267

15.1 The Support Manager's Goals 268
15.2 Helpful Support Manager Skills and Abilities 270
15.3 The Support Manager's Principal Activities 272
15.4 The Support Manager's Project Activities 276
15.5 Summary 276

Part IV Using the TSPi 279

Chapter 16 Managing Yourself 281

16.1 Being Responsible 282
16.2 Striving for Defined Goals 285
16.3 Living by Sound Principles 287
16.4 Your Opinion of Yourself 288
16.5 Your Opinion of Others 289
16.6 Your Commitment to Excellence 289
16.7 Summary 292
16.8 Reference 292

Chapter 17 Being on a Team 293

17.1 The Jelled Team 293
17.2 Teamwork Obligations 294
17.3 Communication Among Team Members 294
17.4 Making and Meeting Commitments 298
17.5 Participation in the Team's Activities 300
17.6 Team-building Obligations 302
17.7 Accepting and Performing a Team Role 302
17.8 Establishing and Striving to Meet Team Goals 303
17.9 Building and Maintaining the Team 304
17.10 Summary 306
17.11 References 307

Chapter 18 Teamwork 309

18.1 Reference 311

Appendices 313

Appendix A Need Statements for the TSPi Sample Exercises 313

Purpose 313
The Change Counter Functional Need Statement 314
The Program Analyzer Functional Need Statement 317
References 319

Appendix B Software Configuration Management 321

The Software Configuration Management Problem 321
Software Configuration Management Overview 322
The SCM Plan 323
The System Baseline 326
Automating the SCM Process 328
The Software Configuration Management Process 328

Appendix C Software Inspections 335

What Are Inspections? 335
What Makes Inspections Effective? 336
Inspection Methods 339
Inspection Data 340
The Inspection Report: Form INS 342
Estimating Remaining Defects 345
The Importance of High Personal Yields 350
Scheduling Inspections 351
The TSPi Inspection Script 352
References 356

Appendix D The TSPi Scripts 359

Appendix E Role Scripts 383

Appendix F TSPi Forms and Instructions 395

Appendix G The TSPi Standards and Specifications 443

Index 449

 
analysis bookstore top
Preface
Buy the book

This book is for students and engineers who have already learned and, preferably, applied the Personal Software Process (PSP)SM. You may have learned the PSP in a graduate or senior-level course (1) or in an earlier introductory course (2). Alternatively, you may be a practicing engineer who seeks guidance on how to use the PSP in an industrial team environment. In any case, when you have learned the PSP, you have the background to use the methods and practices in this book.

After you have learned the PSP, you may need guidance on applying it to the many tasks of the software process. This is the principal role of the Team Software Process (TSP)SM: to provide a framework for using sound engineering methods while developing software.

There is a great deal to say about teamwork, and this book covers the basic elements. TSPi (the introductory Team Software Process) introduces team concepts and walks you through the steps of building teams and working on a team. Note, however, that this text is designed for an introductory course and does not cover all the material that you will need to use the TSP for larger-scale industrial projects.

How TSPi Helps Engineers

This book teaches engineers about software development teamwork. TSPi provides a structured set of steps, shows engineers what to do at each step, and demonstrates how to connect these steps to produce a completed product. TSPi also provides two interesting and reasonably challenging project exercises. Each is at the same time small enough to be completed in a few weeks and large enough to simulate a typical small project. When capable engineers follow the guidance provided in this book, they will invariably produce a finished working product.

In the suggested TSPi strategy, teams develop a product in two or three cycles. In the first cycle, teams build a small working product kernel. With each succeeding cycle function is added to this base. This strategy demonstrates the benefits of using data from a prior project to plan a new project. Also, by taking new roles for each cycle, engineers will have two or three quite different experiences in just one project. After several development cycles, engineers will have had a broad exposure to teaming methods, and they are likely to continue using the TSPi methods on their own.

Why TSPi Courses Are Needed

Because project courses have proven to be effective in preparing students for software engineering careers, a growing number of universities now offer them. These courses are often oversubscribed. Students seek material that applies to their future jobs, and they see team courses as meeting this need. After graduation, students and employers report that software project courses are useful preparation for work in industry.

There is now a large body of experience with team project courses (3). Although many of these courses have been successful, three problems are common. First, the students often attempt projects that are too large. Second, they frequently concentrate on the product and ignore the process. Finally, one or more team members are disruptive. Although TSPi cannot prevent all these problems, it provides guidance on how to avoid or mitigate them.

To make effective use of curriculum time, team software courses should be carefully structured and based on proven project experience. Without a defined process or a structured team framework, engineers must figure out for themselves how to run their projects. Without this process and structure, these groups must learn team-building and teamwork basics through an often painful trial-and-error process. This is both expensive and unnecessary because teamwork principles are well known and straightforward.

TSPi guides engineers in effective teamwork methods. It does this by walking them through a team-building process and then using a measured and defined framework for developing products. Assuming that the engineers are PSP-trained, they can follow the TSPi scripts and use the TSPi support tool to plan and manage their work.4 Following TSPi makes engineers' projects much more efficient and permits them to concentrate on learning about software engineering rather than spend an excessive amount of time on team-building and team management issues.

TSPi provides defined team roles that are allocated among the team members. Each role specifies what is expected and when and how each task is to be done. When all team members know what they and everyone else should do, they are in a better position to work effectively as a team. If a team member does not do his or her job, the other team members will know it, and they can deal with the problem. When teams cannot solve interpersonal problems themselves, they are told to call on their instructor or manager for help. The Instructor's Guide for this book suggests methods for handling many common teamwork issues. When student team members have explicit roles and the role responsibilities are clearly defined and visible, instructors can provide fairer and more specific grades. Each student can then be rated on individual performance as well as on the overall team's results. Not only does this approach motivate better performance, but it is also a fairer way to grade team courses.

The Organization of This Book

This book is designed to lead teams through the TSPi process. Following the first two introductory chapters (Part I), the chapters in Part II walk teams through a complete development cycle. The text explains the process scripts and gives examples of the completed TSPi forms. Part III provides detailed descriptions of the TSPi team-member roles: team leader, development manager, planning manager, quality/process manager, and support manager. After reading the chapter on your personal role, you can use these TSPi role scripts for reference while working on the project.

At the start of the TSPi course, each student completes an INFO form (see Appendix F) describing his or her interests and background. The instructor uses this information to divide the class into five-engineer teams and to assign initial roles to the team members. If one or two teams have four or six members, the instructor must make some role adjustments. All the roles must be assigned, and each engineer should have at least one role. For a four-engineer team, the support manager role should be distributed among the team members. For a six-engineer team, the quality/process manager role should be split into two: the quality manager and the process manager.

With the teams selected and roles assigned, the teams start their projects and report on their progress. At the end of each development cycle, the engineers assess the team's overall performance as well as that of each individual role. With this information, the instructor can evaluate the work and better assign team-member roles for the next development cycle. If necessary, the instructor may make some team membership changes, but, unless there are serious problems, teams should be kept together throughout the course.

Using Standard, Predefined Problems

Although TSPi will work for almost any project, this book provides two standard, predefined problems that are designed to meet the needs of a wide variety of courses. Although there could be advantages to using actual customer problems, this practice is not recommended for three reasons. First, courses have firm and unvarying schedules. Although most customers will initially agree to a fixed time scale, few customers know how long it really takes to develop software. Also, because beginning engineers do not generally know how to manage projects on firm schedules, the chances of project failure are high. This problem is compounded by the fact that actual customer requirements are notoriously vague and unstable, leading to frequent changes and extensive delays.

The second reason to use a standard, predefined exercise is that a teamwork course should be designed to teach specific lessons. Although one goal of the project should be to build a working product, the principal course objective should be to demonstrate the benefits of using proven software engineering methods. With an actual customer problem, the first priority must be to satisfy the customer. As the requirements change or the customer takes time to answer questions, the work will slip. As the schedule gets compressed, teams often concentrate on finishing the product and ignore the process. Unfortunately, the principal lesson often learned from such courses is how not to develop software.

The third reason to use a standard, predefined problem is that it permits each team to compare its performance with that of other teams. With several implementations of the same problem, all the teams can participate in the class evaluations. Each team can describe its approach and answer questions about its design, implementation, and test choices. This process graphically shows the effectiveness of various development approaches and provides a body of reference data for evaluating future teams.

Although there are advantages to using standard predefined exercises, they do not expose students to some important issues. For example, without actual experience, it is hard to appreciate the confusion and imprecision of customer need statements. Struggling with vague and changing requirements is an important experience, but it can be taught best in a course that concentrates on the requirements process. The approach recommended here is to first teach effective teamwork and process methods and then, in later courses, focus on the complex issues of larger-scale development projects.

 
analysis bookstore top
Author info
Buy the book
Watts S. Humphrey, a widely respected authority on software process improvement, and a long-time senior manager of software development at IBM, is a Fellow at the Software Engineering Institute at Carnegie Mellon University.
 
analysis bookstore top
Business System Analysis Books: Reviews
Buy the book

Amazon.com
Aimed at the computer science student, Introduction to the Team Software Process provides a textbook-style introduction to the author's Team Software Process (TSP), a rigorous group-based design process that stresses planning, metrics, scripts, accountability, and ultimately, higher code quality. Although best suited for a semester- or two-semester-length course, this book provides a useful model for any team development effort.

This textbook focuses squarely on the team-based nature of successful software development. The author, who also invented the Personal Software Process (PSP), outlines the steps for "staffing" a classroom-based software project with different multiple member roles, such as team leaders and development managers. The Team Software Process (TSP) outlined here stresses accountability through numerous scripts and metrics. (An appendix features over 80 pages of scripts and forms that would be used over the course of the semester.) Not only does the author provide a thorough guide to choosing the right team role that fits your personality and skills, but several sections offer some "motivational speaking" on the advantage of "discipline," both as a person and software engineer.

This book does a particularly good job of defining a team's role for each stage in the development process, beginning from the initial planning stages to requirements definition, implementation, testing, and postmortem followup. There are hints for dealing with missed deadlines, staffing, and design problems.

The reality is that teams are used throughout the software industry, but many computer science students do not get much experience working in successful teams. As a first encounter with team development, Introduction to the Team Software Process provides a model for serious implementation of a smart, rigorous software method that can put readers on the right track with group development. --Richard Dragan

Book News, Inc.
Details methods to guide the formation of software development teams, to motivate their work, and to enhance their productivity. Describes an introductory version of Team Software process (TSP), ideal for smaller projects but also useful in learning basic techniques and procedures that apply to other development projects. Tells how to establish roles, plan a project, and track and report on progress, and walks through a complete development cycle, illustrating how to promote communication and how to deal with conflicts. Provides two project exercises with prescribed development goals and team roles. For students and engineers who have already learned the author's Personal Software Process (PSP). The author is a senior manager of software development at IBM, and a Fellow at the Software Engineering Institute at Carnegie Mellon University. -- Copyright © 1999 Book News, Inc., Portland, OR All rights reserved Book News, Inc.®, Portland, OR

 
analysis bookstore top
 
NEW RELEASES
Agile
Benchmarking
Best Practices
Business Systems Analysis
CASE
Data Analysis
  Data Models
Data Normalization
Data Repository
Entity Relationship Diagrams
Miscellaneous
Data Warehouse
Enterprise Architecture
Enterprise Resource Planning (ERP)
  Peoplesoft
SAP
Miscellaneous
Humor
Internet
  E-Commerce
Miscellaneous
Interviewing Techniques
Methodologies
  Information Engineering
Structured System Development
System Development Life Cycle (SDLC)
Miscellaneous
Object Oriented
  Business Objects
Object Oriented Analysis
Object Oriented Design
Object Oriented Modeling
Object Oriented Testing
State Transition Diagrams
Problem Analysis
Process Analysis
  Data Flow Diagrams
Decision Tables
Event Response Diagrams
Flowcharts
Process Models
Miscellaneous
Process Improvement (BPI)
Related Topics
  Knowledge Management
Philosophies
Request for Proposal (RFP)
Risk Management
Six Sigma
Software Reuse
Strategic Planning
Requirements
  Business Rules
Prototyping
Requirements Analysis
Requirements Definition
Requirements Documentation
Requirements Engineering
Requirements Gathering
Requirements Management
Requirements Traceability
System Specifications
User Interfaces
Miscellaneous
Test Management
  Defect Tracking
Test Planning
Testing Methodologies
Testing Tools
Validation & Verification
Miscellaneous
Testing Phases
  Acceptance Testing
Configuration Testing
Integration Testing
Performance Testing
System Testing
Unit Testing
Usability Testing
Testing Techniques
  Black Box Testing
Object Oriented Testing
Regression Testing
Test Cases
Test Data Engineering
Walkthroughs
White Box Testing
Miscellaneous
Unified Modeling Language (UML)
Usability Engineering
  Prototyping
Task Analysis
Usability Testing
User Interfaces
Miscellaneous
Use Cases
Workflow Analysis
Working in Teams
  Conducting Meetings
Facilitation
JAD
Rapid Application Development (RAD)
Miscellaneous
Search:
Keywords:
Home Links Add a book Request Link Exchange BA Skills Test Training Needs Assessment