Disclaimer: this is a reflection that I had while bouncing on a fitball to make our baby sleep, so that’s why the ideas could be a little messy!

As I have already written here, some months ago Elena and I welcomed our little baby.

We started to buy a bunch of stuff and when was the moment to choose for the bed we went for a 7-in-1 composable solution that costs close to an intern monthly salary. On paper it looked like the perfect solution, you paid a good quantity of money once but save in the long term since the bed could be used from 0 to 5 years. Moreover the frame is of wood, the really famous (?) Polish wood.

Given my limited ability at assembling furniture, Ele decided to take care of preparing the crib for the first month. We were really happy with the solution.

Then the baby was born with a preference for the carrycoat (besides the bed was too large) so months passed with the freaking bed unused. When the carrycoat was overgrown we moved to the fancy bed and for some weeks was ok. Then we had to enlarge it and connect to our bed like a next to me, and the two mattress did not perfectly align. Probably because it was thought for a different type of adult bed.

That made me think of the story a friend of mine told me.

He is a software engineer and with his team he built a platform for collecting, storing and and making computations on data. The cloud architecture on paper was great and would work perfectly for petabytes of data. Unfortunately, not all customers were so keen to share data with this platform. Therefore they invested in a solution that would be probably be justified only with amount of data one order of magnitude larger that they were at (and still are now).

For sure it makes sense to build solutions that can be extended and that could handle not only today’s needs but also tomorrow’s. But building a skyscraper when a two-stories building can already manage way more than you actually need is a little non sense.

I believe this is especially true in the software world.

Suppose you actually build the nice not-very-scalable architecture that is great for today’s needs but can still handle tomorrow’s. You will probably save money and complexity and maybe have something to expand on if you have to scale up. Imagine that the service you build gets traction and you figure that the 2-stories architecture will suffer if the numbers keep increasing. You can implement the skyscraper architecture, after you validated that you are actually solving a problem. And while you get to the new solution you can still keep using the 2-stories building.

On the other hand you build a full-fledged skyscraper architecture. In the case the service is used by a huge number of people immediately you freaking won. Otherwise you have a solution that costed more than the lean one and it’s probably more costly to maintain.

So the advice is to not build a solution for satysfing needs that you will probably have in 10 years. And don’t buy 7-in-baby beds.