Do One Thing

Software should do one thing, and do it well. Each piece of software should have a clearly-stated goal that is used to determine whether a particular feature should be implemented or not. When a proposed feature does not fit with the software’s stated goal then don’t implemented it. Just don’t.

Like adding source control to your product. We already have several perfectly good source control systems. Building your own custom source control system into your product is never a good idea. Your implementation is unlikely to be as good as the standalone products like Git, Mercurial or Subversion, and it’ll probably make it difficult for me to use my source control system of choice.

Ask yourself why you think you need to roll your own source control system. Is it because your file format confounds Git? If so then change your file format and fix the underlying problem.

When I encounter a product that has built-in source control it makes me doubt that the company talks to its users and I assume they lack a clear goal for their product. Products like Postman, Apigee and Pega are all guilty of this.