How the
Personal Software Process (PSP) can bring consciousness and discipline to Computer
Science and IT Professionals
Marlene Sánchez – IT Architect
September 2nd, 2013
A couple of months ago, I posted an article
regarding the importance of the Documenting
Discipline on IT projects in which I provided some recommendations to
support the practice. Specifically, I proposed the utilization the PSP (Personal
Software Process) to educate IT professionals on that discipline; however this
recommendation initiated an interesting and polemic discussion among my
colleagues about how this can be possible.
So given the previous fact, in the following post I will provide a
supported argument regarding how PSP (Personal Software Process) can change the
mindset of Computer Science and IT professionals to make them more disciplined,
committed and responsible on the work they are performing. I want to support my
recommendation not only to promote the discipline of documentation but also to improve
IT professional´s daily work.
Personal Software
Process (PSP): Definition and background
The creator of this process, Watts Humphrey defined
PSP1 as a self-improvement process that
help software engineers to control, manage and improve the way they work. Humprey
created this process to address common problems that companies face when they
are creating software products, for instance: creation of poor quality software,
delay on delivery time, over budget, and excessive repair of software products.
During his research, Humprey discovered that
software engineers apply intuitive software processes when they are constructing
software artifacts which works fine for simple and non-complex systems.
However, when a software product is complex, the productivity of an engineer or
team is jeopardized, since intuitive processes (given their non-repetitive
nature) add more complexity and errors to the development effort. For instance,
If I as a developer have applied intuitively a software process that includes
steps A,B and G and a colleague next to me that is working on the same project
and module uses his own process that includes step A, C, D and E, to produce a similar product, there is no way
in which we can compare our productivity or expect to deliver a product with
the same quality and on similar timing. In this regard, it could be that I have
considered using a list of common errors with their correspondent solution which
could diminish code time in contrast with my colleague, who uses to reanalyze an
error every time it is presented. So, the truth is that, without
standardization, consciousness and metric comparison among colleagues and
yourself, It´s not possible to know which process makes the professional more
productive and in this specific point is where PSP enters the picture.
Personal Software
Process (PSP) in Action
In practice, PSP is implemented by phases and
on each phase the IT professional creates consciousness of what he/she is doing
right or wrong on the performed activities and how he/she can improve. How this
happens? Well, It´s similar to learn to play violin since you need to actually
see yourself on a mirror every day in order to observe your body movement and
technique to identify what you can correct. The same occurs with PSP, however
the mirror in PSP are the output metrics that the process generates for the
professional.
In resume, PSP has three levels of maturity: 1)
PSP0 and PSP0.1 that introduce initial process disciplines and measurements 2)
PSP1 and PSP1.1 that introduce detailed information of estimation and planning
and 3) PSP2 and PSP2.1 that introduce quality management and design. In
practice, new metrics are included by level and each superior level implies
more maturity and better process ‘outcomes (e.g. products without bugs and on
time)
So after this basic explanation of PSP, let me
exemplify its application with a real example:
Suppose
you are a programmer that wanted to construct a module for credit card validation
using PSP0. In this scenario, your inputs
to the process should be: 1) functional description of what is needed, 2) required
measure forms: Plan Summary, Time Recording
Log and Defect Recording Log, 3) Defect
Type Standards and 4) a watch (digital or analog) for time recording.
Now, PSP0 establishes three macro phases that are mandatory in the process:
Planning, Development, and Postmortem. In the Planning phase professionals must
estimate the time to perform their activities and must document estimated
numbers on the Plan Summary Form. On
the Development phase professionals must use their preferred software
methodology (e.g Waterfall, RUP, agile, etc) to implement the program and must
document the real time spent on each of the performed activities (e.g.
design/implementation/compile/test) on the Time
Recording Log (including interruption time), as well as defects encountered
on the Defect Record Log. Finally on
the Postmortem phase professionals must complete the project plan Summary with
the actual time and defects encountered during the development process and
analyze the final metrics. Why is this valuable for a developer? Well, after
completing the process it is proved that programmers are able to identify:
- Problems in their estimation efforts that derive on delay on activities
- In which part of the process they inject more errors
- Which problems take more time to solve and why
- Flaws in part of the process that derive on error injection. For instance, lack of documentation activities in the process
So thank to PSP, professionals can visualize
and manage specific opportunity areas in future iterations and be able to
compare metrics against other colleagues and themselves. The discovering of
root causes of problems is eased and new strategies can be applied iteratively.
In this regard, continuous improvement becomes a personal challenge for them
and they are committed to that idea.
PSP for all Professionals
Finally, after visualize PSP0 in Action, you
must be thinking that PSP can be used only on software development activities,
however this not true since all kinds of processes can be measured and improved
based on previous iterations metrics. For instance, if you are an IT support
professional, you can analyze your support process and assess your performance to
become more productive, so it is important to be open and embrace a continuous
improvement methodology, no matter which kind of IT specialist you are.
Conclusion
In conclusion, the Personal Software Process (PSP)
is the first step for Computer Science and IT professionals to become more
disciplined, committed and conscious about their daily work. It is a fact as
well that the process can bring improvements to your personal performance and
to the company you work for. Indeed, the process will help you to identify if
your current processes are the best ones, or if documentation generated in your
projects is a root cause of failure. So, be ready to embrace a continuous
improvement methodology, you will not be sorry.
References
[1] Humphrey Watts, “PSP A Self-Improvement
Process for Software Engineers”, SEI Series in Software Engineering, Addison
Wesley, 2005
No comments:
Post a Comment