Know When To Stop
Applications and tooling continue to follow the same cycle: start small, inflate with features, and finally become so unwieldy or unusable that users flock to the next application that promises to be smaller and more focused. This cycle is not sustainable for creators, due to the ever-growing cost of new features and increased maintenance, as well as users, due to the constant fear that they will have to pack up and move to another service. As users, we can Mind What We Can Manage. As creators, however, we have the ability to solve this problem. How, then, do we avoid this cycle? How can we keep our software small, focused, and responsible only for the problems it was built to solve?
The ability to know when a product is finished is not only a crucial skill, but one that our industry severely lacks. Doing so saves time, money, and headaches for everyone involved. Instead of continuing to stuff features into a given product, it's important to stop and ask “Does this solve the problem this product was built to solve?” Each and every application or tool is created in an attempt to solve a problem. At some point, that problem is solved and no longer requires additional changes. If you ask yourself this question and your answer is an emphatic “Yes”, then that feature may well be a core part of your application or tool that was previously absent. However, any other answer is a great time to step back and try to understand why it doesn't. It's likely a great sign that you should seriously consider stopping.