A Few Words On Architecting Technical Solutions

I was having a conversation with some other engineers about architecting technical solutions. As is my habit, I ended up talking about some of my personal philosophy.

To me, success is about finding the space between what’s possible and what’s good. And there’s not one objective answer, the right thing is defined by the goals and constraints of the parties involved.

By success I mean that, as an engineer, I want to build a system that everyone is happy with. Everyone being the team, the business and our users. That’s hard to accomplish of course. If it was easy, everybody would be doing it.

The challenge with designing a system for a for-profit business is not just imagining something that seems conceptually possible. It’s about trying to anticipate the cost of building the thing, where cost is ultimately measured in person-hours and calendar time. In my experience in building software, all of the other factors in cost are dwarfed by a couple of things. Is the tech you choose battle-tested, and does the team who is going to build it have enough expertise in that tech.