Dogukan Sonmez

Currently in Munich, Germany

Java Groovy Python

No-Sql TDD Scrum

Django Shell Cloud

May 09 2012

Team Software Process

According to Software engineering institute Team Software Process (TSP) guides engineering teams that are developing software-intensive products. Using TSP helps organizations establish a mature and disciplined engineering practice that produces secure, reliable software in less time and at lower costs

TSP

Currently there are bunch of software development mythologies around the world. Scrum gains popularity day by day and it is also aim to develop software rapidly and increase the productivity. The TSP provides a disciplined context for engineering work. The principal motivator for the development of the TSP was the conviction that engineering teams can do extraordinary work, but only if they are properly formed, suitably trained, staffed with skilled members, and effectively led. The objective of the TSP is to build and guide such teams.

How the TSP Was Developed

In 1996, Watts Humphrey developed the initial version of the TSP process. His objective was to provide an operational process to help engineers consistently do quality work. He designed the initial TSP0 process to be as simple as possible, tried it with two teams, and then reviewed the results to see how it worked. He then identified where the teams needed further guidance and enhanced the process to provide that guidance. The first TSP0 process was designed for PSP-trained teams who received no training or guidance other than that provided by the TSP process and the team’s immediate management

Engineering Teamwork

Teams are required for most engineering projects. Although some small hardware or software products can be developed by individuals, the scale and complexity of modern systems is such, and the demand for short schedules so great, that it is no longer practical for one person to do most engineering jobs.

Effective Teams

To be effective, teams must be properly skilled and be able to work as cohesive units. Effective teams have certain common characteristics:

  • The members are skilled.
  • The team’s goal is important, defined, visible, and realistic.
  • The team’s resources are adequate for the job.
  • The members are motivated and committed to meeting the team’s goal.
  • The members cooperate and support each other.
  • The members are disciplined in their work.

The team building principles used in the TSP to establish these conditions are as follows:

  • The team members establish common goals and defined roles.
  • The team develops an agreed-upon strategy.
  • The team members define a common process for their work.
  • All team members participate in producing the plan, and each member knows his or her personal role in that plan.
  • The team negotiates the plan with management.
  • Management reviews and accepts the negotiated plan.
  • The team members do the job in the way that they have planned to do it.
  • The team members communicate freely and often.
  • The team forms a cohesive group: the members cooperate, and they are all committed to meeting the goal.
  • The engineers know their status, get feedback on their work, and have leadership that sustains their motivation

TSP Process

The TSP provides a defined operational process to guide engineers and managers through the team-building steps. This process specifies the steps needed to establish an effective team working environment. An operational process is more like a script. It is designed to be used by the team members when they do the work.

Before the members can participate on a TSP team, they must know how to do disciplined work. As shown in this figure, training in the Personal Software Process (PSP) is required to provide engineers with the knowledge and skills to use the TSP

While there are many ways to build teams, they all require that the individuals work together to accomplish some demanding task. In the TSP, this demanding team-building task is a four-day planning process that is called the team launch. In a launch, all the team members develop the strategy, process, and plan for doing their project. After completing the launch, the team follows its own defined process to do the job.

TSP teams are relaunched periodically. Because the TSP process follows an iterative and evolving development strategy, periodic relaunches are necessary so that each phase or cycle can be planned based on the knowledge gained in the previous cycle.

  • Leading the team
  • Process discipline
  • Issue tracking
  • Communication
  • Management reporting
  • Maintaining the plan
  • Estimating project completion
  • Rebalancing team workload
  • Relaunching the project
  • TSP quality management

The Team Software Process (TSP) deals with fallowing factors:

  • Team organization
  • Specialization of team members
  • Project management—planning and estimating
  • Project management—tracking and control
  • Change control
  • Requirements
  • Design
  • Reusability
  • Code development
  • Configuration control
  • Quality assurance
  • Inspections
  • Static analysis
  • Testing
  • Security
  • Documentation and training

In this post I just tried to give an idea about Team software process, for further information on these topics, please visit the www.sei.cmu.edu/tsp