In my experience I’ve rarely looked back at a technology decision and claimed to have made the absolute right one. Oh, I stood in front of plenty executive management and presented architectural victory. It was easy with products that brought more revenue and happy customers! Money seems to be capable of justifying anything. I think that we, software architects, rarely make right choices. We make good and bad ones. We could all use a more pragmatic approach.
But first a bit of theory.
There’s the vendor-based selection processes, aka “pure evil”. I’ve been invited numerous times to sit in a room full of C and V-level decision makers sitting in front of a skillful salesman. The well-dressed actor is pitching you the tale of software or hardware awesomeness. He has practiced in front of a large mirror in his chateau. Pick my vision of the future! Pay for all the amazing marketing and top shelf sales! How’s your golf handicap doing? What about your kids and the Hamptons house? We got a bunch of poor super smart chimps killing themselves at this thing I am selling! You’re buying a team.
The less pricey decisions are made in an Excel spreadsheet. You’re yawning through a ten pager with pretty colors, columns containing solutions and rows of features. You pity the poor shmuck that sat between marketing and sales that made it. You finally suck up to the most prominently featured. Why should you care? The peons who are going to actually implement the software live in another time-zone and you can claim some strategic initiatives this year and go work for someone else when the house crumbles.
But again, you may have been born in Soviet era socialism. I was. My people invented that system, but the joke ended up on us. We took a group of super smart folks, stuck them into a room and let them argue to death. Good arguments were listed on whiteboards and everyone got emotional for the greater good of society. Some particularly smart people were shot. Lots of average decisions were finally made, so while we intended for the best, it turned out to be as usual - average. Villages starved. The evolved Communist version included well-spoken leaders – the rest of the humans were first annoyed, then tired and finally scared. Nobody spoke up.
It doesn’t have to be this way. Instead of always struggling to make the absolute right choice, just make a few smaller good ones. Use my helpful diagram below instead of a sales person, spreadsheet or committee. Make choices that fit in my picture. Ask yourself: How much time are we fighting the technology vs. learning or producing tangible results? The right balance is something like 5 vs. 95%.
How do you make decisions? Listen to other smart, non-partisan people and let them pitch you the software they use. Ask questions. Find trustworthy peers rather than salesmen and pay attention to whether they use the words awesome, easy and elegant. Become part of a community of craftsmen. Read Hacker News and watch InfoQ videos. Go to tech meet-ups. Take a few classes. Learn to be a more pragmatic software architect.