The fairy tale of software development
The fairy tale of software development

The fairy tale of software development

The proper software needs to follow some guidelines, frameworks and patterns in order to succeed and stand in time. By compromising and taking shortcuts you jeopardize the whole project.

Imagine that software is like a house and the strategies are the three little pigs.


The first little pig built his house out of straw because it was the easiest and fastest thing to do.

The little pig has gone with the wind and created a house with no much thought. If it has four walls and a roof, then it's good enough.

Then, the first difficulty (bug, change, etc) comes up. "I'll huff, and I'll puff, and I'll blow your house in" and with the first blow, everything collapses. 

The second little pig built his house out of sticks.

This was a little bit stronger than a straw house.

Some documentation here, a couple of tests there, a try for some guidelines, etc. This practice can stand a blow or two, but eventually it will fall. Having half measures won't save you. It will just postpone the inevitable. "Will do at some point in the future" won't help either. Let's be honest. That point will never come, and the wolf is not that far away.

The third little pig built his house out of bricks and concrete.

That little pig had a vision, a design. It developed the software with documentation and a lot of tests. By the time that the wolf came to the house, the little pig was prepared. The software was made concrete. The wolf couldn't take it down. And even when the wolf tried to enter from the chimney, the little pig had a kettle of boiling water.

The vision was a solid house. The design was made of bricks. The documentation was the concrete. Lastly, unit, integration and end to end tests were the boiling water. There was no way in.  

The first two little pigs had someone looking after them and providing shelter. In business this is not going to happen. No one will back you up and by the time that you'll see the wolf coming, it will be too late. Most of the time, a house cannot be upgraded. You have to take it down and start all over again. Either way, it's too late.

Creating software is not an easy job. It's not just coding, typing the commands that do the work. You need a vision, strategy and to be disciplined to succeed. Think of where you want to go, keep a track of what you are doing, document it and act proactively by solidifying the software with frameworks, design patterns and principles and as many tests as you can. Otherwise, the bubble will blow at some point, and the only way is going down. Building with bricks takes time, but eventually it pays off. 

Sometimes, we tend to rush things to get into the market. At first this might make a lot of sense, but as fast you can enter a market, with the same speed you can get out if you don't have a sustainable product. Getting as many features that have business value at the expense of technical consistency is not just a risk, it's certainty of failure.

Which pig would you like to be? Choose wisely! Don't underestimate the big bad wolf! 

You can also read it in medium.

References:


Amazing metaphor Dimitri! It also applies to all aspects of life...nice reading it!!

Like
Reply

To view or add a comment, sign in

More articles by Dimitris Nikolouzos

Others also viewed

Explore content categories