More on the PSP, this time covering the software development process script, with defect log and project plan summary.
After attending or working through this lecture, students should:
Understand the initial personal software process.
Be ready to write a small Java program in next week's lab class, in which you will follow the scripts and record your data on the forms...
... and use Subversion for version control of your source code.
In this lecture we're going to work through and discuss our initial version of the PSP. This is the version described in Chapter 12 of Introduction to the PSP.
This process involves:
Estimating and recording the size of the program (measured in lines of code).
Estimating and recording the time taken for development, broken down into six phases: Plan, Design, Code, Compile, Test, and Postmortem. (Later in the semester we will add a Code Review phase between Code and Compile.)
Using data collected in the past to aid in planning.
Recording every defect found during development, together with the phase in which it was introduced, the phase in which it was found, how long it took to fix, and what type it was.
You will need copies of these forms, instructions and scripts. Print them out and take half an hour to read through them carefully before you come to this lecture.
These resources are also available from the PSP Page.
I think it would be much too boring for me to go through each of these forms explaining how to fill them in. The instructions provided are quite comprehensive. I'm going to assume that you have read them for yourselves. Remember that this material is assessable.
I will do a short demonstration of filling in the forms, based on my test-drive of next week's lab class. This should help reduce any confusion.
I will also set aside time in the lecture for a discussion. This is the time for you to ask any questions that came up for you while you were reading through the forms and instructions.
Next week's lab class will give you an opportunity to write a short program using the PSP, and your tutor will be able to answer any more questions that come up.
I see a terrible potential for the PSP to become a management tool which reduces programmers to cogs in a machine. Any performance monitoring has the potential to do this. I'm thinking for example of the way checkout operators at supermarkets or telephone workers in call centres have their every keystroke recorded and management sets standards for their “productivity”.
This really bothers me. Why? Because the PSP only focusses on behaviour, and we're more than just behaviour. A lot of what's “out there” is about the bottom line, about money, efficiency, productivity. This sort of thinking implies that your only value is in what you do. I don't believe that. I think who you are is more important.
Another way to think about this: the PSP is based (deep underneath) on a psychological theory called behaviourism. There have been two waves of psychological thinking since then, but most of management and software engineering is still stuck back there, in the dark ages.
But I don't want to throw out the baby with the bathwater. The PSP can be of great value. There is a real potential for increased self-knowledge and awareness in this. My suggestion is that as well as recording all those numbers, you also record your own reflections on the work you're doing. You could start with questions like these:
Body sensations:
How do I feel in my body right now?
(e.g. Sore shoulders, restless legs, tummy rumbling...)
What do I need to do right now?
(e.g. Get up and stretch, go for a walk, eat lunch...)
Emotions:
How am I feeling right now?
(e.g. Irritable, bored, excited...)
What do I need to do right now?
(e.g. Take the dog for a walk, do something else, just feel it...)
Remember, it's not about “doing it right”. It's about awareness, self-knowledge, maturity.
You should be aware that:
Even doing the regular PSP (without my additions) puts you immediately in conflict with the dominant culture in software development.
Most organisations out there want people who are happy to work in CMM Level 1 style.
They want you to:
take personal responsibility for commitments made by others
work all night because someone in marketing created an unrealistic deadline
believe that a software project is so important that you would put your health, happiness and family at risk for it
Even without the extra ingredients I'm suggesting, the PSP takes you beyond that, and makes you a non-conformist.
It's up to you: do you want to be a drone? I think you deserve better.
However, an increasing number of leading software companies are starting to recognise the value of a more responsible management style. It's not all Dilbert out there. I know one senior manager in a major software company who regards knowledge and experience of the PSP (or anything similar) as far more important than any technical knowledge. That is, he would rather hire someone who knows PSP but can't program than vice-versa.
Copyright © 2006, Ian Barnes, The Australian National University
Version 2006.1, Wednesday, 22 February 2006, 12:57:53 +1100
Feedback & Queries to
comp2100@cs.anu.edu.au