Whether you’re developing for us or thinking about doing so, this guide is here to let you know how we work. It describes our approach, covering the key aspects of modern software development that we’ve taken to heart, but also how we apply those techniques to give confidence to our developers and to the end users of the awesome stuff we build.

By hosting this document on github, we can facilitate changes and improvements over time in the form of pull requests. Try it! We’ll listen to all constructive comments.

  1. Fearless Development - This underpins our development ethos. Many of the other topics are there to enable us to establish an environment in which new starters and regulars alike can dive straight into the next task fearlessly.

  2. Project Management - Our agile approach.

  3. Ensuring Quality - Here we talk about the best way to make architectural decisions as a team, reviewing each other’s code and releasing it out into the wild.

  4. Using Git - We use git and github and we go with the git flow.

  5. Environments - Your own development environment is important, but is a personal choice. This chapter focuses on the multiple environments an application should run in and how keeping them in mind from the start can help you avoid problems later.

  6. Testing - Testing is an incredibly important part of ensuring quality. Here’s why as a developer you should want to employ good testing techniques from the start, not as an afterthought.

  7. Reusability - Reusable code saves time for the next time. When something is self-contained, why not package it up and open-source it?

  8. Release and Deployment - How to set up servers for deployments, how to release and when to release.

  9. Indicators - How stats and analytics are vital for keeping apps up and running and for improving them over time.

  10. Security - What needs protecting and how to protect it. How to keep secrets.

  11. Freelancer’s Guide to Working with Us - How we like to work with freelancers.

  12. Python Style Guidelines - How we write beautiful python code.

  13. Ruby Style Guidelines - How we write beautiful Ruby code.