Andorian development principles and practices
A work-in-progress collection of development principles and practices that I find myself saying repeatedly.
- Done = released to the user
- Commit changes (/ merge PRs) daily
- Write *** tests:
- (almost) every commit should have tests
- when fixing a bug, first write a failing test
- the less obvious the code, the more tests are needed
- Aim to write code that is obviously correct
- Avoid code duplication: extract methods, classes, libraries, …
- Understand the technology you are using:
- Learn it, e.g. read the manual
- Ask a team member for help
- Really, write *** tests:
- Solve problems effectively:
- Define the problem you are solving
- Determine whether it’s the right problem to solve or a consequence of the real problem
- Identify possible solutions, and compare their benefits, drawbacks and issues
- If it’s a significant problem, document why you solved the problem the way you did
- Leave the code better than you found it.
- Break a large task into a carefully ordered sequence of subtasks that deliver value incrementally
- Don’t break the build: run tests before pushing changes. And if you do break the build, fix it quickly.
To be continued…