ANU The Australian National University



____________________________________________________

[ANU] [DCS] [COMP2100/2500] [Description] [Schedule] [Lectures] [Labs] [Homework] [Assignments] [COMP2500] [Assessment] [PSP] [Java] [Reading] [Help]

____________________________________________________

COMP2100/2500
Lecture 2: The Personal Software Process I

Summary

An introduction to the Personal Software Process, with some background on the CMM and then instruction and examples of time management.

Aims

After attending or working through this lecture, students should:


The Personal Software Process


Benefits of the PSP


Background: The Capability Maturity Model


The CMM Maturity Levels

Level 1: Initial.

Ad hoc, even chaotic. Any success depends on individual effort and heroics.

Level 2: Repeatable.

Basic project management: track cost, schedule, and functionality. Able to repeat successes on similar projects.

Level 3: Defined.

Process is documented, standardized, and integrated. All projects use a standard software process for development and maintenance.

Level 4: Managed.

Detailed measures of process and product quality are collected. Both the software process and products are quantitatively understood and controlled.

Level 5: Optimizing.

Continuous process improvement via quantitative feedback and innovation.


An Example

Rifkin performed a study of over 1300 projects, and used the data to model the performance of software organisations at different levels. For development of a 200,000 line system he predicts the following.

CMM Level Duration (months) Effort (person months) Faults detected in development Faults delivered and installed Total cost of development
Level 1 30 594 1348 61 $5,440,000
Level 2 19 143 328 12 $1,311,000
Level 3 15 80 182 7 $728,000
Level 4 13 43 97 5 $392,000
Level 5 9 16 37 1 $146,000

Which organisation would you rather buy software from? Which organisation would you rather work for? Which organisation would you rather own shares in?


The Improvement Process

  1. Define the quality goal.

  2. Measure product quality.

  3. Understand the process.

  4. Adjust the process.

  5. Use the adjusted process.

  6. Measure the results.

  7. Compare the results with the goal.

  8. Return to Step 4. Recycle and continue improving.


The PSP in COMP2100

The PSP work we will be doing is:

  1. Learning the discipline of keeping an engineer's notebook, a permanent and organised record of your work, which you can use as a reference in future.

  2. Recording your time use and summarising it so that you can use this information as a basis for making plans and commitments.

  3. Following a structured and disciplined process for developing software, including reviewing new code before compiling it.

  4. Recording, categorising and analysing all defects you find in your code.


Time Management

This material is based on chapters 1–4 of Introduction to the Personal Software Process by Watts Humphreys, the creator of the PSP.


Keeping an Engineer's Notebook

Here are Watts Humphreys' recommendations, taken more or less unchanged from chapter 2 of Introduction to the Personal Software Process.

My comments: I followed this for a while, and it didn't work so well for me. The year before last I went back to using ring binders. I'm not in a job where I need to be able to prove what I did and when, so that aspect isn't so important. On the other hand I do a lot of my work on a computer, and it's much easier to punch holes in a printout and insert it into a binder than to trim around the edges and glue it into a notebook. With ring binders you can use index tabs or dividers to separate different subjects and keep things organised that way. But I ran straight into the problem of having lots of bits of paper floating around everywhere, and losing track of them.

Last year I tried an A4 spiral notebook for all my handwritten notes, together with a ring binder for carrying printouts. That worked OK for me.

The important thing here is to develop a discipline of keeping an organised record of what you do. Otherwise even information that you remember to write down will be lost in piles of paper. Whatever you decide to do, stick to it and don't let your work descend into chaos.


What should I write/put in my notebook?

Everything! I recommend that you keep copies of all your COMP2100 work in your notebook.

Examples of things to write might include:


Recording your time use

Record your time on Time Recording Log forms. These are available as PDF on the PSP Page.

blank time log

There are detailed instructions on how to fill in the Time Recording Log as PDF on the PSP Page.

In order that I can summarise your results and display them in lectures, you will need to all use the same categories. That is, your entries in the “Activity” column should all be one of the following:

  1. Lectures

  2. Labs

  3. Homework

  4. Assignments

  5. Revision and exam preparation

  6. Other

A few tips:


Sample time log

sample time log

Weekly Time Use Summary

At the end of each week, summarise your data. There's little point in just keeping piles of Time Logs unless you do something useful with them. Here's one thing you can do which will help you to gain insight into how you work. This insight can then be used to help you plan better in future.

blank weekly summary

Filling in the weekly summary takes a bit of concentration, but it's a lot easier than programming. You can check your work by adding the daily totals down the right-hand-side and the category totals across the bottom. You should get the same answer both ways.

(If you have lots of free time, you could think about how an automated Time Log and Weekly Summary tool might work.)


Resources

Here are links to the forms and instructions you will need for the work covered in this lecture.


Preparation for next lecture

Before Friday's lecture, go to the notes for that lecture, and print out and read the relevant forms and instructions.

____________________________________________________

[ANU] [DCS] [COMP2100/2500] [Description] [Schedule] [Lectures] [Labs] [Homework] [Assignments] [COMP2500] [Assessment] [PSP] [Java] [Reading] [Help]

____________________________________________________

Copyright © 2005, Ian Barnes, The Australian National University
Version 2005.2, Monday, 21 February 2005, 11:52:48 +1100
Feedback & Queries to comp2100@cs.anu.edu.au