In our work as software developers we regularly have to evaluate architectural tradeoffs. We have voices, either external or internal, telling us to think about, for example:
- Going API first
- Building to accommodate horizontal scaling
- Building with the most modern tools
- Building with tools and frameworks that let us hire the best (or sometimes “Building with tools and frameworks that let us hire the cheapest”)
There is often a tension in these matters between practical and “correct”.