How to make difficult technical decisions
This is a summary of the original blog post titled How to make difficult technical decisions you and your team won't regretby Jordan Cutler
- Write out every possible options
- Cross out what won't work
- Write the pros and cons of what is left over
- How much effort is it to implement?
- How easy is it to use and learn?
- How readable is it?
- How reversible is it?
- How maintainable is it?
- How fast and performant is it?
- How scalable is it?
- How secure is it?
- How much community support is behind it?
- How easy is it to debug?
- Write down your own preference and be able to explain which solution is best
- If you have equal options, become your end user (engineer) and test the option. Imagine use and edge cases
- Discuss options with junior and senior engineers: Explain options, ask where it could break or where it confuses
- Ask yourself questions
- What is the cost of making the wrong decision?
- How long does it take to ramp up?