The viscosity of software

When you start writing a new green-field project from scratch it is such a nice feeling. You can go really fast, there is really nothing stopping you.

It is like walking on a green field out in the fresh air.

As you make progress, however, if you are not careful, you will start feeling that it is harder and harder to make changes to your code-base. You are not sure what will be the impact of each change and you start to fear that adding a new feature might break another feature.

The feeling is more like walking in a pool neck-deep in the water.

By the time your project matures the feeling gets worse and now it feels as if you were stuck in the mud. You can hardly move and you fear that you might drown.


You can avoid this process when you start the project by consistently improving your code-base. It might feel like extra work, but in reality it is just an investment in the future so you will be able to maintain velocity.

If your project is already in the deep water or in the mud, you can still reverse the problem. It will be harder, but it will make your life better and you will be able to generate more value to your company faster.

I am sure you already know, the key-words are automated test, continuous integration, continuous delivery and refactoring.


Good luck, and let me know if you need help!