Its the time of year to gather with family and share all the things that we are thankful for. As I was planning the overly stuffed menu for this year, I started drawing parallels to my career and how things have changed over the last couple of decades. I couldn’t help but notice I’ve changed my own Thanksgiving menu to match the patterns and designs I have implemented throughout my own career. Hang tight, I’ll explain:
Imagine you’re cooking Thanksgiving dinner for friends and family. Things are coming together; the turkey is roasting in the oven, the yams and potatoes are just about ready and people are HUNGRY! Everyone is at the table and itching to go, except the rolls aren’t quite right, and nobody eats until everything is on the table. Well, you better hurry up and fix it because people are starting to get “Hangry”.
That’s how most enterprise software deployments have been for years; except instead of the turkey you have your core functionality and the ‘fixins’ and side dishes are your cool features. Everything goes out at once, and if your mashed potatoes are chunky and you have to go back to the kitchen to fix them, you’re going to have some upset folks!
Well, hungry people are scary and it always seems that in the hustle of the kitchen something always comes out shy of “just right”. Visualize your rolls weren’t cooked in the center, or your gravy was lumpy, you would have at least somebody complain even though everything else came out just fine.
Not to mention, it was really difficult to cater to “guests” with different tastes or dietary needs. So if you have a friend or family member who is dating someone who is lactose intolerant, Gluten-free or a vegetarian, you would probably be screwed and panic to get something put together (assuming you were a good host of course). This is actually something software systems get asked for more and more lately with all the different integrations and inter-connectivity in today’s software landscape. Who hasn’t been asked to integrate into this monitoring system or that CRM etc? This is the main reason why the industry started to go with the smorgasbord approach; always have distinctly separate offerings that can be swapped in or out without having to rebuild the whole board.
Technically speaking, the smorgasbord is what the industry has embraced as the micro-services pattern; distinct services that do one thing, and one thing only. They can be swapped in and out since their relation to each other is abstract at best. You can combine them in different ways and create something totally new from existing parts. Just like Thanksgiving left-overs, take the turkey and some bread and make a turkey sandwich later, or simply grab some of that green-bean casserole and drizzle some gravy and pop it into the microwave for a few.
The other great feature of this architecture is that you effectively created a giant pluggable system that allows any developer to bring their own flavors to the table without any restrictions. Imagine not having to make that Tofu-turkey and letting your tofu-loving friend bring their own to the party. Just like the iPhone opened up the mobile world to the concepts of apps or how Salesforce created a cloud platform; allowing the developer to build a full-featured application and host it on a common system while being able to use any existing feature. They can do this while maintaining their own upgradability independently of the systems. That’s why each has a lot more people at their dinner table and why they have a very rich third-party developer ecosystem.
So, by making our services smaller and more succinct, we are actually able to make more advancements in less time. We can focus on the problems areas, which have already been isolated and exposed, and fix them and deploy them independently of their peers. We can deploy quicker and cleaner, and most importantly of all, keep everybody happy.
I guess maybe this year, I’ll go with a smaller turkey and try that sous vide rack of lamb as an alternate main dish and see how that goes. Should only take a few hours and we still have the smoked bird thats tried and true. So in the end, mom was right all those years ago: take smaller bites and chew your food, so you don’t get a stomach ache.
From all of us here at Archetypical Software, we wish you a joyful and successful Thanksgiving. May your kitchens stay in order and your ovens make you proud. We are thankful to all of you for taking the time to read this and thankful for each others time and challenges that make us strive to be better people, better friends, and better technologists.