A few weeks ago, I had a little electrical incident at my house. After the fire department left and the mess was cleaned up, we took stock of the damage. Except for the offending surge “protector” that caught fire, our UPCs pretty much did their job. No computers were damaged — just a dead scanner, a zapped paper shredder, fried cordless phone, and, most frustrating of all, an ex-coffee maker.
I really like coffee … a hot cup of joe for breakfast, espresso in the afternoon, coffee to take in the car, iced coffee on a hot summer day, coffee for entertaining — you get the point. I had already been suffering coffee cravings because my espresso machine had independently given up the ghost a few weeks earlier. But like a thorough architect, I had a BCP (beverage continuity plan) in place so I broke out the French Press to make individual cups of coffee in the morning for the next two weeks.
You might wonder why it took so long to replace a simple coffee maker. The Internet is a blessing and a curse. You can’t just go out and buy a coffee maker anymore; you have to do the research first. My favorite coffee site, Whole Latte Love, lists 41 coffee makers and 146 different espresso machines, some of which have as many as 800 reviews from happy, or not so happy, customers. Not to mention the combination machines that do both.
Then there is the whole peer pressure thing. People who love coffee hang out with other people who love coffee, kind of like a community of practice. So I had to ask my friends what they had. Craig swears by his $2,400, one-touch monster (www.wholelattelove.com/Capresso/S9_One_Touch.cfm). Jim is more of a purist and wouldn’t dream of letting a machine automatically grind his beans or mix his cappuccino. He recommended the $2,000 ultimate purist home machine (www.wholelattelove.com/Rancilio/epocas.cfm). Now, in addition to no coffee, I have a serious case of gear-envy. So what should I get? A new coffee maker, a new espresso machine, both, a combination, a fully automatic? Help!
Perhaps it’s time to ask: what would an architect do? First, break down the different services provided by the coffee machines: grind beans, make a cup of coffee, make a pot of coffee, make a cup of espresso, steam milk, make a cappuccino. (None of them do the dishes, though.) OK, I can get one machine that does everything, one that is automatic and does almost everything, or three different individual machines (grinder, coffee maker, espresso machine).
Well, what are the pros and cons of each? The automatic, all-in-one machines excel in ease of use and occupy the smallest footprint on my counter, although not the lowest power consumption or cooling requirements. However, it can only make a single cup of coffee at a time. What about the architectural considerations? With an all-in-one machine, the components (grinder, coffee, espresso) are tightly coupled. So they cannot be used separately, and if any one piece breaks, I’m out of luck for all of them. At the other end of the spectrum, three separate machines are the most loosely coupled. I can use the grinder for either a pot of coffee or a cup of espresso. If one machine breaks, I only have to replace that one component. And I already have the grinder. However, this approach suffers in ease of use and footprint, although power consumption is actually lower.
How should I decide? Well, time to compare the services and coupling against the requirements. One thing I learned from my BCP is that making a single cup of coffee at a time doesn’t fit my lifestyle. Also, sometimes I want coffee, other times espresso. And of course there are cost considerations. I like coffee, but apparently not nearly as much as my friends Craig and Jim … Ultimately, I kept the grinder, replaced the coffee maker with the same model as before, and got a shiny new, but moderately priced espresso machine.
So, what lessons emerge from this experience? First, understand the requirements. Your requirements are likely to be different from others, even if you share common interests with them. Second, if you’re not really sure about a new system, take an agile approach to evaluating what it would be like to live with. Next, an architectural approach will help you decompose the systems or solutions into constituent parts where you can make tradeoffs between coupling and other considerations.
And one more lesson: according to my wife, I really need that cup of coffee in the morning.