Mini Process

4/20/99 - Jack Harich

One of my lastest reads is "Rapid Development" by Steve McConnell, author of the classic Code Complete. This is state-of-the-art coverage of the software developement techniques that impact throughput heavily.

On page 61 Steve tells a story from an article by Larry Constantine. It's about the 1995 Australian Computer Society Software Challange, where 3 person teams develop a 200 function point application in 6 grueling hours.

"The team from Ernst and Young decided to follow a formal development methodology - a scaled down version of their regular methodology - complete with staged activities and intermediate deliverables. Their approach included careful analysis and design - part of what this chapter describes as technical fundamentals. Many of their competitors dived straight into coding, and for the first few hours, the team from Ernst and Young lagged behind. By midday, however, the Ernst and Young team had developed a commanding lead."

This, I thought, was very interesting. I've long been using a personal process with discrete steps and deliverables, even on very small subsystems or small rewrite work. I'd never seen anything like this mentioned for "small" work.

Once I begin to doubt the usefulness of my approach, so I alternated using it and not using it for awhile. Boom! It was obviously productive. Formal use cases and models brought great clarity to big problems that were solved quickly as small projects. There was less rework also.

Here's my minimal, ultra-tiny process, for individuals or teams. Some steps are optional. Once you've tried this for awhile variations and improvements should be made, such as adding Strategy step 2.5, Requirements Validation step 11.5, User Validation (usability and beta testing) as part of your iterations or step 13, and Predicted Solution Value as step 14. The last exhaustively reviews your requirements, output, and User Validation results, and comes up with a predictive rating of Perceived Solution Value. This can be compared to later post shipment Perceived Solution Value ratings from users, giving you early and late feedback loop data for your process.

Step

Process Element - (Version 4/20/99)

Relevance

1

Nutshell Vision - Sentence or paragraph capturing the pure essence and goal Required

2

Narrative - Describes what the system must do, key features, issues

Optional

3

Use Case List or "Standard Use Case(s)" for frameworks Required

4

Major Use Cases stepped out - List all steps for crucial or fuzzy cases Required

5

Trait List - Features applying to many use cases, such as speed, security, usability

Optional

6

Risk Management - Identification, ranking, resolution

Optional

7

Risk Reduction - Prototypes, GUI sketches or Visio, test classes, etc

Optional

8

Models - Conceptual Model, Class Diagram or other types Required

9

Implementation Plan - A series of steps to implement the model(s)

Optional

10

Implementation Iterations - Often with elaboration of above steps per iteration Required

11

Unit Tests - Usually run per iteration, may be part of Full Regression Test Required

12

Integration Tests - And more types of validation if you're really mature! :-)

Optional