Session 1.1 – TSPi Overview
Chapter 1: Introduction to Team Software Process | Duration: 1 hr
Learning Objectives
By the end of this session, students will be able to:
- Explain what TSPi is and why it is needed for team software development
- Describe the four basic principles underlying TSPi design
- Identify the seven key design decisions that shape TSPi
- Understand the relationship between PSP, TSPi, and TSP
- Explain the cyclic development strategy and its benefits
- Recognize the importance of process discipline in software engineering
Introduction to Team Software Development
Most industrial software is developed by teams. Thus, to be an effective engineer, you need to be able to work on a team. If you have good sense and a willingness to cooperate, you have the basic equipment to be a successful team member.
Key Insight
Team-work is more than just getting along. Teams must plan their projects, track their progress, and coordinate their work. They also must agree on goals, have a common working process, and communicate freely and often.
To meet aggressive schedules and produce high-quality products, practiced teamwork is essential. However, practiced teamwork requires experience and calls for a specific set of skills and methods. This textbook and its accompanying course provide a comprehensive introduction to team software development.
Course Goal
Expose you to realistic teamwork problems and give you practical teamwork experience. With this experience, you will be prepared to participate in large-scale industrial software projects.
The Football Analogy
It's like a huddle in football: experienced teams first agree on the play and each member's role. If teams didn't huddle, they would do a lot of running around, but they wouldn't win many games.
What is TSPi?
TSPi (Team Software ProcessSM - Introductory) is a defined framework for a graduate or upper-level undergraduate course in team software engineering. It provides a balanced emphasis on process, product, and teamwork.
TSPi Foundation and Evolution
Figure: TSPi builds on PSP and prepares students for industrial TSP
Why Engineering Teams Need a Process
Merely giving a group of engineers a job does not automatically produce a team. The steps required to build a team are not obvious, and new teams often waste substantial time handling teamwork mechanics:
- Figuring out how to work together as a team
- Defining the job they need to do
- Devising a strategy for doing the work
- Allocating tasks among team members
- Coordinating each of these tasks
- Tracking and reporting on progress
Important: Although these team-building tasks are not trivial, they are not very difficult. There are known methods for doing every one of them, and you need not reinvent these methods for yourselves.
The Four Basic TSPi Principles
Defined Process & Rapid Feedback
Learning is most effective when you follow a defined process and get rapid feedback. The TSPi scripts and forms provide a defined, measured, and repeatable framework. The TSPi provides rapid performance feedback because the team produces the product in several short development cycles and evaluates results after each cycle.
Goals, Environment & Leadership
Productive teamwork requires a combination of specific goals, a supportive working environment, and capable coaching and leadership. The project goal is to build a working product. TSPi provides the supportive environment, one team member will be the team leader, and the instructor provides the coaching.
Learning Through Experience
When you have struggled with actual project problems and have been guided to effective solutions, you will appreciate the benefits of sound development practices. Without the precise guidance of TSPi, you could waste considerable time in defining your own practices, methods, and roles.
Building on Prior Knowledge
Instruction is most effective when it builds on the available body of prior knowledge. There has been a great deal of experience with software teams and software team courses. TSPi builds on this foundation of industrial experience in planning and managing software projects.
The Seven TSPi Design Decisions
There are many ways to design a process. In the case of TSPi, there were seven principal design decisions:
The purpose of a process is to help you do a task. When the process is too complex, you spend too much time figuring out what to do. If it's too simplistic, it doesn't provide enough guidance.
Key Points:
- Builds on Personal Software Process (PSP) foundation
- Most forms and scripts similar to PSP
- Prior PSP training is a prerequisite
- Role assignments help focus on specific tasks
- During multicycle projects, try several roles for broader exposure
In a full TSPi course, you will complete two or three development cycles in one semester. Each cycle includes full requirements, design, implementation, and test development process.
Cycle Strategy:
- Cycle 1: Build minimum-function subset (kernel product)
- Cycle 2: Build on results of first cycle, may change roles
- Cycle 3: Further enhancements if time permits
Benefits:
- Quickly get kernel product running
- Ensure working product at end of course
- Identify problems early when easiest to fix
- Gain clear evidence of what works best
Measurements are an essential part of doing consistently high-quality work. The PSP provides the basic measures and measurement skills you need.
- Set personal and team goals
- Learn to establish ambitious but attainable goals
- See benefits of quality measurements
- Understand value of project planning and tracking
- Manage work on a daily basis
With TSPi measures, your performance and that of your teammates will be obvious. This is the nature of teamwork: everyone knows what everyone else is doing.
- Principal purpose: help you do better work
- Makes personal performance visible to teammates
- If you don't make reasonable effort, expect comments from teammates
- Transparency ensures accountability
TSPi calls for team and role evaluations. The idea is to evaluate how each role was performed and not how the people behaved.
- Evaluates process effectiveness
- Students best informed about team performance
- Helps instructor give fair and equitable grades
- Focus on role performance, not personal judgment
It is hard for software engineers to consistently do disciplined personal work. Three reasons for this:
- No tradition: Software engineering has no tradition of disciplined personal performance
- No natural discipline: Unlike hardware with factories and production engineers, software engineers must discipline themselves
- Need for support: Consistently disciplined work requires high standards and competent support (coaches, trainers)
With TSPi: The instructor requires you to follow the process, gather data, complete forms, and analyze results.
Even in the best-run projects, teamwork problems are common. You and your teammates have different roles with their own objectives, and when these conflict, disagreements are likely.
- Don't assume conflicts are personality problems
- Initially, assume teamwork issues are caused by process problems
- Peer pressure is powerful for resolving team problems
- Ask instructor for help when needed
- With guidance, most engineers can be effective team members
TSPi Structure and Flow
TSPi Multi-Cycle Development Structure
Figure: TSPi uses multiple development cycles to build the final product (adapted from Humphrey)
Cyclic Development Strategy Constraints
When you start a cyclic development strategy, consider these constraints:
- Each cycle should produce a testable version that is a 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
The TSPi Process
The development script (DEV) shows the overall TSPi flow. Each script step is supported by one or more detailed scripts. Each of these scripts is described in a chapter devoted to that process step.
TSPi Script Structure
Every TSPi script includes:
- Purpose: Brief statement of the overall purpose of the activity
- Entry Criteria: What you need to have done before starting
- General Section: Provides general information about the script
- Activities: Numbered script rows showing activities to follow
- Exit Criteria: What you should have accomplished upon finishing
TSPi Development Script (DEV)
Entry Criteria
- An instructor guides and supports one or more five-student teams
- The students are all PSP-trained (Discipline for Software Engineering or Introduction to the Personal Software Process)
- The instructor has the needed materials, facilities, and resources to support the teams
- The instructor has described the overall product objectives
General
The TSPi process is designed to support three team modes:
- Develop a small- to medium-sized software product in two or three development cycles
- Develop a smaller product in a single cycle
- Produce a product element, such as a requirements document, a design specification, a test plan, and so on, in part of one cycle
Follow the scripts that apply to your project and mode of operation.
| Week | Step | Activities |
|---|---|---|
| 1 | Review |
|
| 2 | LAU1 |
|
| STRAT1 |
|
|
| 3 | PLAN1 |
|
| 4 | REQ1 |
|
| 5 | DES1 |
|
| 6 | IMP1 |
|
| 7 | TEST1 |
|
| 8 | PM1 |
|
| LAU2 |
|
|
| STRAT2, PLAN2 |
|
|
| 9 | REQ2 |
|
| DES2 |
|
|
| 10 | IMP2 |
|
| TEST2 |
|
|
| 11 | PM2 |
|
| LAU3 |
|
|
| STRAT3, PLAN3 |
|
|
| 12 | REQ3 |
|
| DES3 |
|
|
| 13 | IMP3 |
|
| 14 | TEST3 |
|
| TEST3 |
|
|
| 15 | PM3 |
|
- Completed product or product element and user documentation
- Completed and updated project notebook
- Documented team evaluations and cycle reports
Session Summary
Key Points
The Four Basic TSPi Principles:
- Defined process + Rapid feedback = Effective learning
- Goals + Environment + Leadership = Productive teamwork
- Experience with problems + Guided solutions = Appreciation of best practices
- Building on prior knowledge = Effective instruction
The Seven Design Decisions:
- Simple framework building on PSP
- Multiple development cycles
- Standard quality and performance measures
- Precise team and student measures
- Role and team evaluations
- Required process discipline
- Guidance on teamwork problems
Why TSPi Works:
- Starts with small kernel product to ensure success
- Each cycle provides learning for the next
- Mirrors successful industrial development processes
- Provides practical experience with realistic projects
- Prepares students for large-scale industrial work
Next Session Preview
In the next session, we will explore the Launch Process, understanding how teams are formed, roles are assigned, and projects are initiated in TSPi.