Building Software Together

Appendix I: Project Evaluation

Give your project 1 for each "yes", 0 for each "no", and -1 for "I don't know" or "I don't understand the question".

  1. Does your project have a Code of Conduct and does everyone follow it?

  2. Does your project have a vision statement and does everyone know what it is?

  3. Does every meeting start with an agenda and end with minutes filed somewhere findable?

  4. Is every project resource saved in version control?

  5. Can you rebuild and deploy your project with a single command?

  6. Do you write tests at the same time as you write code?

  7. Do you always run your tests before checking changes into version control?

  8. Do you have a bug database and have you triaged it recently?

  9. Do you use assertions and other defensive programming techniques?

  10. Do you use a symbolic debugger to track problems down?

  11. Do you embed your documentation in your code?

  12. Is there a searchable archive of discussions about the project?

  13. Do you use a style checker to maintain code quality?

  14. Do you do development in a distraction-free environment?

  15. Do you work steadily, without all-nighters or last-minute panic sessions?

How did you do?

5 or less
There is a lot of room for improvement, but don't try to fix everything at once. Instead, get the team to agree to tackle one thing at time.
Most mature development teams are in this range and can bootstrap other improvements they need on their own.
11 or higher
If you're looking for a job, please let me know. (Hell, if you're hiring, let me know that too…)