Home | Work | Play | Photos | Contact | About

Trade-Offs and Compromise


Home \ Work \ Trade-offs and compromise

A fundamental part of being an architect is making decisions. While we hear a lot about failing fast and often, making the right decision in the first place is obviously preferable. And choosing the high road as opposed to the low road (or vice versa) comes at a price. What's the motivation for choosing Rails over PHP? Asynchronous RPC as opposed to synchronous IPC calls? Is the time required to implement a context-sensitive menu in a tree view worth it?

Consider the following -

Trade-off triangle

This is a classic trade-off triangle. Given three requirements - a short schedule, minimal resources and a large feature set, you can only ever choose two. Another common example is usability, security and low costs -- again, you can only ever choose two.

Here are some more contradictory project properties to think about:

Leading edge   Tried and tested
Strategic   Tactical
Painful   Painless
Revolutionary   Evolutionary
Ideal   Affordable
High risk   Low risk
Big bang   Incremental

Finaly, a discussion with recommendation engine ©®™ Pat.Pend. 🤣 and list of tradeoffs you might consider when choosing an approach to developing software can be found here.

< Back to Work | ^ Back to top

All content copyright © Michael Wittenburg 1995 to 2020. All rights reserved.
Merch (t-shirts designed by my twin)