Tuesday, August 16, 2022

Intangible Things like Software

Civil Engineering & Software Engineering. The context is not the same.

Too often I see principles of Civil Engineering being used in Software Engineering, like BDUF and elaborate Gantt charts, and WBS, and….

For a long time, it was OK. But the world has changed, and almost everything has become frighteningly fast. Be it Cricket, making a movie, or building and launching software. 

As PaulGraham said, if you are running on the road and if you want to come to a halt, all you have to do is incline your body a little bit backward, and you will stop quickly. But while skiing if you want to halt, and if you do the same trick of leaning backward, you will have a spectacular fall.

Using principles from one context in another context could be a bad idea, even if those are solid and proven principles. Manufacturing tangible goods (like pens, shirts, airplanes) and building intangible things like software are quite different contexts.

For tangible goods, specifications are known & frozen before you make them.
For intangible things, specifications start evolving as you start making them.

In Civil Engineering it is perfect to adopt the policy of Ready-Aim-Fire.
In Software building the right way is…   Ready-Fire-Aim-Ready-Fire-Aim-Ready-Fire-Aim-Ready….

The context matters.

No comments:

Post a Comment