📖 Read the GitBook: https://thekarel.gitbook.io/best-practices/
📌 An example implementation is available at thekarel/best-practices-example
At the basic level, this document can serve as a blueprint for groups and leads to establish their bespoke ways of working. I firmly believe that successful development teams have a comprehensive set of best-practices from the very beginning. A solid baseline provides confidence and productivity.
Even without tailoring to your particular situation, these ideas can make software development more efficient and more enjoyable.
The basic principles can guide you when making day to day decisions. You can assess how changes align with the business goals, the social nature of software development, the protection of your team's attention capital and the need for simplicity.
This document promotes a very business-domain centric view of software. Explicitly separating parts of your codebase to follow the business thinking will help with maintainability immensely. Such architecture aligns nicely with the separation of concerns too. Writing and reading your source code will become easier.
There is a separate section dedicated to testing. The aim, once again, is to keep the testing effort aligned with the basic considerations: creating and releasing better products.
The ideas presented here are not all new. What I've tried to do is to show them pragmatically, in the context of modern enterprise web app development.