Here, we document how we develop software at RMI, including social and technical aspects around several themes. It should help guide our actions, and understand what to expect from our colleagues and what they expect from us. Wherever possible, we refer to the source of information that defines a "best practice". Anecdotes and personal experience have value, but we prefer evidence from research, books, and large and mature communities of practice.
We have agreed to these practices by consensus. They document heuristics, as detailed instructions may never cover all scenarios. We focus on what to do and why, and only recommend optional resources about how to do it. We realize there may be times when you can not achieve all these practices. In those cases, it's nice to let others know, e.g. in a commit description or a PR comment, how or why some of these guidelines could not be met.
We also keep public documentation of interesting resources (best practices and otherwise) here: