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 -
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|
|High risk||Low risk|
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.
All content copyright © Michael Wittenburg 1995 to 2020. All rights reserved.
Merch (t-shirts designed by my twin)