Achieving Engineering Balance
I read an interesting article “You Are Not Google”. The author’s main argument is that most applications in the world will not see Google (or Facebook/Amazon/LinkedIn) scale. Therefore, we should avoid over engineering problems with technologies that these companies use.
I’m a big believer in the KISS principle (Keep It Simple, Stupid!). However, I also believe should build systems that are open for extension and closed for modifications. Engineers should avoid painting themselves into a corner. In my experience, this is the number one reason that Engineers like to “rewrite” and “rearchitect” solutions.
Old code is usually like wine. It gets better with time, iff you treat it well. A code base needs to organically change over time so that it can be refined and condensed to its purest form.