Stepwise Refinement

“You eat elephants one particular spoonful at a time.”
– Bryce’s Regulation

In a nutshell, the concept of “stepwise refinement” is to get an object and move it from a typical point of view to a precise stage of depth. Architects have applied these an strategy for yrs, as have engineers developing goods. But to do so, they recognized they are not able to just go from the typical to the certain in one particular felled swoop, but alternatively, in increments (methods). The range of methods needed to decompose an object into enough depth is in the end centered on the inherent mother nature of the object. To illustrate, for architects developing a developing, the regular methods include:

  1. Acquire artist rendering (to look at viability).
  2. Structure basis and superstructure.
  3. Structure Flooring strategies.
  4. Structure electrical and plumbing diagrams.

In other phrases, right before the initial shovel of grime is dug on the task, the architect is aware of specifically what the developing will appear like and how it will do the job. All of the guess do the job has been eliminated.

Engineers developing goods these as cars abide by related nonetheless different methods:

  1. Acquire artist rendering (to look at viability).
  2. Structure important assemblies (e.g., chassis, overall body)
  3. Structure subassemblies (e.g., engine, transmission, electrical, etc.)
  4. Structure operations (e.g., the different components of the engine).

Like the architects, the engineers know specifically how the car will appear, the pieces needed to produce it, and the sequencing of assembly. All of the guess do the job has been eliminated.

“Stepwise refinement” in the end represents a “divide and conquer” strategy to design and style. In other phrases, crack a sophisticated object into smaller, additional workable items that can be reviewed and inspected right before moving to the following stage of depth.

There are those people in the I.T. subject that truly feel these an strategy is impractical to implement, and alternatively of engineering your way to good results, you ought to get an first stab at establishing a plan, then continue to modify it until finally you have made one thing to pacify the user’s requirements. This of training course is a hacker’s strategy to improvement and might be good for establishing an innocuous tiny plan but definitely not suited for establishing anything at all of material.

Can the concept of “stepwise refinement” be used to a one plan? Definitely. As a matter of simple fact, it lies at the core of the structured programming movement of the 1970’s-80’s. But can it be used on a grander scale, these as an enterprise-large Info Procedure. Yet again, the solution is Yes. In simple fact, it is the reasonable way of attacking these a important endeavor.

Ahead of we can tackle an facts method, it would make perception that we initial understood the inherent homes or construction of the object of our notice. It has always been our rivalry that an Info Procedure is a product or service that can be engineered and manufactured like any other product or service. To this conclude, we see an Info Procedure as a four stage hierarchical construction consisting of the subsequent components:

Stage 1 – Procedure – symbolizing the over-all product or service to be developed.

Stage 2 – SUB-Systems – symbolizing the small business procedures affiliated with the method (one particular or additional).

Stage three – Processes – symbolizing the do the job stream of every single sub-method. There are necessary two sorts of processes Administrative – symbolizing processes executed by people and Computer.

Stage four – Plans – symbolizing the plans needed to execute every single computer treatment.

As an apart, there is also a Stage four for Administrative Processes (to write the recommendations/methods pertaining to the treatment), but for the functions of this paper, let’s set this apart for the instant.

Less than “stepwise refinement” the levels are decomposed top-down throughout the design and style system, and executed base-up a common engineering/manufacturing procedure.

To implement this strategy, a “blueprinting” procedure is applied which is really not far too dissimilar with that applied by architects and engineers in other fields. Right here, the blueprints are applied to express the succeeding levels in the method hierarchy. To illustrate, look at the subsequent diagram, where the do the job from the previous period feeds the following stage in the method hierarchy:

What this implies is that all of the guess do the job has been eliminated. So substantially so, that the creation of executable plans ought to be a fairly simple task. Yet again, the specifications for the plans were made obviously in smaller and additional workable increments, not all in after.


The concept of “stepwise refinement” is not specifically new and has been applied efficiently in the engineering/manufacturing of goods for numerous yrs as a implies to control complexity. It has only been in the very last 30 yrs that people today have been trying to implement the procedure in the improvement of units and computer software.

In the absence of “stepwise refinement” on a sophisticated method, the “brute drive” strategy is generally applied, whereby superficial do the job is finished in the earlier phases and significantly additional time is invested in programming second-guessing what is to be made. This is one particular explanation why businesses right now rarely tackle important units improvement assignments, and are information with attacking it in piecemeal.

But if you can assimilate a method as a product or service, and consider it can be engineered and manufactured like any other product or service, than “stepwise refinement” is a pragmatic option you can definitely use.

If you would like to go over this with me in additional depth, make sure you do not hesitate to ship me an e-mail.