On Simplicity

We now know what we need in place to build software products. We can now ask a question: how should we build it? If there’s one rule I can confidently vouch for is this one: do it simply. Simple is not easy though. Simple is in fact very hard. But it is very worth it to enforce it. Recall the trouble of building a product: requirements change, new features need to be added, bugs need to be fixed, existing features need to be improved. In this chaos there needs to be some sanity. One principle I come back to again and again is I want the software to be simple. I want it to be dead boring and predictable. I groan when I see complicated code. Code is not a product, it is a liability. Do what is needed. Best part is no part. Do one thing at a time. Doing it in a shorter way is usually better than a longer way. Do it in a way that you can explain easily. Do it with fewer pieces. Do it by not sharing state. Do it in stages. That list goes on and contains lots of facets based on one’s experience. What I want to convey is that simplicity is a solid north star to how you want to build your software. It is also an easy test for existing software. We know if it’s simple or not. If yes, we should keep it that way, and guard the simplicity as it’s attacked with feature requests. If it’s not simple, we should work to make it easy.

Popular posts from this blog

Terminology of CICD

Perils of classes and pointers

On Testing