Personal Software Process (PSP1)

development-methodologiesestimationmetricspersonal-software-process

I'm trying to figure out an exercise but it doesn't really makes to much sense.. I'm not asking someone to provide the solution. just to try and analyse what needs to be done in order to solve this. I'm trying to understand which PSP 1.0 1.1 process I should use. PROBE? Or something else? I would greatly appreciate some help on this one from someone that has experience with the Personal Software Process Methodology..

Here is the question.

For the reference case (“code1.c”), the following s/w metrics are
provided:

  • man-hours spent in implementation phase (per-module): 2,7 mh/file
  • man-hours spent in testing phase (per-module): 4,3 mh/file
  • estimated number of bugs remaining (per-module): 0,3 errors/function, 4 errors/module (remaining)

Based on the
corresponding values provided for the reference case, each of the
following tasks focus on some s/w metrics to be estimated for the test
case (“code2.c”): [25 marks]

  1. (estimated) man-hours required in implementation phase (per-module) [8 marks]
  2. (estimated) man-hours required in testing phase (per-module) [8 marks]
  3. (estimated) number of bugs remaining at the end of testing phase (per-module) [9 marks]

Tasks 4 through 6 should use the data provided for the reference case within the context of Personal Software Process level-1 (PSP-1), using them as a single-point historic data log. Specifically, the same s/w metrics are to be estimated for the test case (“code2.c”), using PSP as the basic estimation model.

In order to perform the above listed tasks, students are advised to consider all phases of the PSP software development process, especially at levels PSP0 and PSP1. Both cases are to be treated as separate case-studies in the context of classic s/w development.

Best Answer

The use of Proxy-Based Estimation (PROBE) is indeed introduced at PSP 1.0. PROBE is also the recommended estimation technique, but from the standpoint of the PSP as a process improvement framework, it's not required. There are a number of other estimation techniques that can be applied. In a course about the PSP, however, I would recommend using PROBE where applicable.

I believe this passage from A Discipline for Software Engineering is applicable. This book is the traditional text for studying the PSP in an academic setting, and I believe a similar discussion can be found in PSP: A Self-Improvement Process for Software Engineers, which is the more applied discussion, geared for engineers in the workplace.

Another problem, particularly in the early stages of the PSP, is that you will have few historical data. To use the linear regression method, you must have at least three sets of historical data. This means that you cannot use the PROBE method as described here until you have at least three programs for which you have made object LOC estimates. Until you have this much history, you should calculate the Beta_0 and Beta_1 parameters from your actual object LOC and new and changed LOC data and use the averaging method to make your size estimates.

In Chapter 6 of A Discipline for Software Engineering, there are four planning methods presented. There are three questions that you need to ask:

  1. Do I have historical data?
  2. Do I have sufficient estimated object data?
  3. Do I have sufficient data for regression analysis?

If the answer to 1 is no, you must use expert judgement as your estimation method.

If the answer to 1 is yes and the answer to 2 is yes, then you can use PROBE.

If the answer to 1 is yes and the answer to 2 is no, ask 3. If the answer to 3 is yes, use the estimated new and changed LOC coupled with actual development hours. It requires at least three projects to have measurable accuracy. If the answer to 3 is no, then use data on estimated or actual new and changed LOC and actual hours and only requires one prior project.

At this point, you now have the ability to estimate development time. For estimating other tasks, you have a decision between PROBE and intuitive expert judgement options. If you are estimating size, use PROBE. If you can't use size-based estimation methods, use expert judgement and comparison to other projects without the formal PROBE methodology. The previous data come from either your historical data (preferred) or from example cases that can be related.

Now that you know how to estimate within the context of the PSP, it becomes your responsibility to perform data analysis, create an appropriate estimate, and justify your answers by pointing to specific cases, examples, and historical data.