Personal and team process models

The best software process is one that is closely aligned with the people performing the work. Each software engineer should create a process that suits their individual needs while also supporting the goals of the team and the organization. Alternatively, the team can create a shared process that balances individual and organizational objectives.

Personal Software Process (PSP)

The Personal Software Process (PSP) focuses on the individual engineer, emphasizing measurement of both the work product and its quality.

Framework activities of PSP

  1. Planning

    • Requirements are identified.

    • Size and resource estimates are developed.

    • A defect estimate is created.

    • All data is recorded using worksheets or templates.

    • Development tasks are listed, and a project schedule is prepared.

  2. High-level design

    • External specifications for components are developed.

    • Component designs are created.

    • Prototypes are built to resolve uncertainties.

    • Issues are recorded and tracked.

  3. High-level design review

    • Formal verification techniques are used to detect design errors.

    • Metrics are recorded for all important tasks and outputs.

  4. Development

    • Component-level designs are refined and reviewed.

    • Code is written, reviewed, compiled, and tested.

    • Metrics are maintained throughout.

  5. Postmortem

    • Collected metrics are analyzed to evaluate process effectiveness.

    • Metrics guide changes to improve future process performance.

Key points

  • PSP encourages engineers to identify and understand their own errors early.

  • It provides a disciplined, metrics-based approach to software engineering.

Team Software Process (TSP)

The Team Software Process (TSP) aims to build a self-directed project team that is organized and accountable for producing high-quality software.

Objectives of TSP

  • Create self-directed teams that manage their own planning, tracking, goal-setting, and process ownership.

  • Teams can be software-only or integrated product teams (IPTs) of 3 to 20 engineers.

  • Teach managers how to coach, motivate, and sustain high team performance.

  • Speed up software process improvement by adopting behaviors aligned with CMM Level 5.

  • Offer improvement guidance to high-maturity organizations.

  • Support university instruction in industrial-grade team skills.

Characteristics of a TSP team

  • Defines roles and responsibilities for every member.

  • Tracks quantitative project data.

  • Establishes a team-specific software process.

  • Develops a strategy to implement the process.

  • Defines local standards for software engineering work.

  • Continuously assesses and responds to project risks.

  • Monitors and reports project status.