Day three of my winter adventure brings us a metaphor about food.
If you eat steak every single day, you’re missing out on some critical nutrients. You may be living like a king (if that’s what kings eat every day), but you’re a whole bucket of fruits, vegetables and breads short of living like a normal human. The same would apply if you just ate bread, or if you just ate green beans. All of these things are great part of a larger diet - but it’s that larger balance that produces the healthy results you want.
Of course, when you’re solving a technology problem or designing a software system, it’s sometimes tempting to do the same thing. But software problems aren’t human problems, and technology doesn’t need to eat a balanced diet to keep working. Just because you can design a solution that uses 10 servers, 3 operating systems, 4 programming languages, 5 APIs and 2 network protocols doesn’t mean you should - and it doesn’t mean you’ll have a solution any better than if you’d kept it simple.
In fact, most of the time that you do this you’ll have something too complicated and interdependent. So just remember - even though your users are humans, their tech problems aren’t. They might need a balanced diet, but their software doesn’t.