The Personal Software Process Strategy

PSP's Purpose

The Personal Software Process (PSP) is a self-improvement process designed to help control, manage and improve the way you work

It is a structured framework of forms, guidelines and procedures for developing software.

PSP provides historical data needed to better make and meet commitments

With more experience, it will be possible to enhance the process to take advantage of new technologies, tools and methods

Is to held a better software engineer

A powerful tool to use in many situations like:

Manage work

Asses talents

Build Skills

Software engineers need a sophisticated array of tools and methods, and the knowledge to use it appropriately

PSP is not magic

It may suggest where and how could be something improved

The logic for a Software Engineering Discipline

Software has become a critical issue in modern society

The alternatives are to improve a the performance of practicing software engineers while encouraging more people to enter the field

A disciplined software engineering organization will have well-defined practices

Its professionals will use practices, monitor and strive to improve their performances

They will also have confidence and data required to resist unreasonable commitment demands

Practiced disciplines have the further of making software engineering more fun

Writting code can be highly rewarding

Get cleve routine to work is an achievement

Is so satisfying to see a program doing what its intended

PSP can help to make software engineering the fun it should be

What is a software process?

Is the sequence of steps required to develop or mantain software

In contrast, a team that follows consistent process definitions can better coordinate the work of individual members and more precisely track progress.

Software process sets out the technical and management framework for applying methods, tools and people to the Software tasks

As better methods are found, they are incorporated into the organizations officials process definitions

A defined process permits each new project to build on its own experiences as well as its predecessors

Defined processes provide:

Enable effective communication about the process among users, developers, managers, customers and researchers

They enhance managements understandings, provide a precise basis for process automation, and facile personnel mobility

Facilitate process reuse

Support process evolution

Aid process management

Process Maturity

Processes are like habits, hard to establish an even harder to break

The processes for large-scale software development can themselves be quite large and complex

This is why the software process maturity framework was developed

It contains 5 levels of progressively more-mature process capability:

Initial

Repeteable

Defined

Managed

Optimizing

The SEI has refined these level definitions and their practices into the CMM for software

Personal responsibilities

Personal Excellence

Personal Motivation

The Personal Software Process Strategy

Approach steps:

Identify large-system software methods and practices

Define the subset of these methods and practices

Structure methods and practices

Provide exercises suitable for practicing

PSP0: The Baseline Process

PSP1: The Personal Planning Process

PSP2: Personal Quality Management Process

PSP3: A Cyclic Personal Process

TSP: The Team Software Process

Sociaty is demanding more and better software faster and cheaper

As our products becomes larger, and are used in increasingly critical aplications, uncertainly will no longer her acceptable

PSP recognizes that even the most challeging tasks are not totally creative

PSP teaches how to measure the work

It also helps to learn from your performance variations and then to incorporate the theory in documented practices

Many of practices from PSP can be used by teams and even by individual engineers

Tools to support PSP

Tools can be enormously helpful, and can make the methods described previously

It aids WORD PROCESSORS, SPREADSHEETS AND STATICAL PACKAGES

But CASE enviroments are needed that embody the PSP methods in enginering workstations

Some facilites are:

Maintain data

Statical Calculations

Track defects

This facilites make PSP methods easier to introduce and use

Log time automatically

Personal Processes Need to Fit Individual Preferences

Software professionals should define their own processes

The process should evolve with users

Feedback increase process improvement

To provide clear and helpful feedback about an individual's performance, you have to know exactly what happened and the consequences that followed from their behavior

When we provide feedback, we have a tendency to ask questions that force people to defend themselves, such as “Why did you do that?"

A far more effective approach is to ask questions that stimulate thinking and help the person move forward into the future: "What would you do differently next time to improve your results?"

This question allows the person to look at what they did, learn from the outcome, and think about what they need to change to improve their results.

Paul Jiménez Vela | 2440238