Best Practices for a Software Engineering team in 2020
The Joel Test is a classic blog post that was written about 20 years ago. It's a list of 12 best practices that every software engineering team ought to follow.
What follows is an updated and maybe harder list of best practices in 2020 that many teams aren't following:
- Do you require all code pass a code review before being merged into the main branch?
- Do you reject code reviews that don't have a test plan? (Ideally the test plan is automated unit tests or integration tests.)
- Do you reject large code reviews that could be broken into several smaller code reviews?
- Do you require that large projects begin with a written plan that gets discussed before implementaiton begins?
- Do you set aside time to pay down tech debt as determined by the developers most familiar with the code?
- Do you do regular hallway usability testing? (Ok, this one's on the original Joel test, but deserves more attention.)
- Do you have an up-to-date roadmap of at least a month worth of work?
- Do you deploy to production or a heavily used staging server on every commit to the main branch?