Software Finish Levels

Craftsmanship in software is important. It is important beyond simple quality and productivity. Lets consider some information about the neglected craftsmanship of Three Mile Island.

Three Mile Island

The control room: “investigators found key indicator lights on the backs of panels, switches out of calibration, and tags covering warning panels, and never fewer than 52 alarms blinking at all times. Over 100 alarms would sound when the reactor started to fail in Pennsylvania, and it was impossible to sort the critical ones from the usual.” – Three Mile Island – America’s Worst Nuclear Accident

As a casual observer it seems to me that they were skipping design steps, neglecting maintenance, and outright skipping tasks to do other things. Sound familiar?

There are many standards for developing software, quality, and testing. Many are difficult to grasp, and some are full of ceremony. What I would like to do is offer something that is light, and therefore admittedly a little subjective.

The Software Finish Level Matrix

Software Finish Levels

What Software Finish Level do you target? What do you output? Eventually I would like to craft more qualitative definitions and a simple questionnaire to help us be honest with ourselves.

Just what is it? It is made up of six levels that describe the form of the code. This has nothing to do with user interface or experience or anything to do with graphic design. This has nothing to do with the maturity of the code. It has everything to do with existing and new code. It describes code readability and organization on a function and process level. It describes how decisions are made about the code.

From these statements about the Software Finish Level, we can start to formulate a basis for being deliberate about the “fitness” of the software. If you want to sponsor a triathlon winner, don’t go looking for a lazy person with no desire to run. You start with someone fit from the beginning. Fitness being the software’s ability to do what is intended.

Like not waiting till race day to see how well your sponsored candidate can run the triathlon, you will want to be sure of their performance beforehand if you want a winner. With software this is done with the various Software Assurance practices. The primary concerns for assurance are performance quality and security. Software Finish Levels describe how deliberately these results were achieved and how much effort will be needed to address areas that failed to satisfy assurance expectations. The less deliberate the team was the less likely the team is to repeat satisfactory results or address failures.

Software Finish is a team activity. While it is easier to achieve Level 5 Finish with contributors acting at that level, we know that it takes time for someone to achieve this level of skill and craftsmanship. To achieve the best outcomes with various skill levels, teams must support each other and be willing to learn and follow some leadership structure. More on that to come…

Software Finish Levels

One thought on “Software Finish Levels

Leave a comment