<%= bold "Update"%>: After more than 5 years since being written, this post no longer represents our current development practices. We keep it here for historical purposes only.

At Manas we have never strictly adhered to pre-canned methodologies, such as Scrum. As years went by, we switched certain practices in and out, gathering inspiration from different sources, though always keeping an agile approach. Every project was ran with slight variations, experimenting with what worked best for us.

As part of an effort to start distilling the underlying principles of these practices, in order to ensure every project has the quality standards we want, we decided to write such principles down as part of our handbook. This helps us to keep in mind everything that should be present in a project, makes the onboarding process of new devs easier by giving them a clear picture of how we work, and allows us to share with the world our standards - and get valuable feedback on them.

The UPP are split into two sections: Artifacts and Tasks. Artifacts are items that should be present in every project, including (but not limited to) a git repository built on the git-flow pattern, a README file, licensing, continuous integration and deployment scripts. It is the responsibility of everyone in the project to keep them up to date.

Tasks are things-to-do that should be tackled at different times throughout the lifetime of the project. Most of the initial tasks include setting up the artifacts, and there are periodic checks to ensure that all scripts, backups and documentation are in a healthy state.

UPP, as most “policies” in Manas, is subject to constant change and revision. We strive to ensure that the we are satisfied with the current state of our processes, which leads to a never-ending stream of adjustments and improvements to them.

You can check out the full text of UPP in our handbook. We’d love to hear how close you find these practices to your company, and what you do different or would change.