Monday, October 8, 2012

Intelligent Design Patterns Part 2: How Service Oriented is Your Architecture?

The other day I wrote about the inherent struggle between simple and complex software design, and promised to follow that up with some specific instances from small design decisions such as whether to use the facade pattern between your web and business layers, to fundamental decisions regarding your organization's theory of software development such as Test Driven Development. Let's start the series ambitiously with the granddaddy of them all - Service Oriented Architecture (SOA).

The concept of SOA has been around for a few years now, and really took off around six years ago when SOAP web services were saturating the development landscape, and Microsoft introduced WCF. Though strict adherence to SOA principles has declined as PM's have realized some of it's drawbacks, the theme of services has remained strong, and promises to do so with an ever growing suite of tools such as Microsoft's new MVC 4 Web API.

Thursday, October 4, 2012

Intelligent Design Patterns Part 1: Black Coffee Software

Being a transplant of the great white north to the proud state of Alabama, I was thrilled when the state's first Dunkin Donuts opened about two miles from my office. We have a couple of Starbucks close by, but until about a year ago we were painfully without Dunkin. For those of you outside of the United States, in our country the Dunkin vs. Starbucks question has become sort of a cultural litmus test based on the true fuel of American innovation: coffee. An order at Dunkin usually reads along the lines of "Large Coffee, Black." Starbucks, of course, is famous for its ability to build drinks more complex than non linear algebra containing contributing ingredients from more countries than the international space station. A Starbucks order must be at least 18 syllables  and run along the lines of "Venti half soy, half 1 percent, cream mocha vanilla latte with splenda, add a split quad shot with whip and caramel. Extra Hot."

To Dunkin fans theirs is the choice is one of simplicity - of getting the job done with no bells or whistles. To them, a Starbucks coffee is complex for complexity's sake, and contains unnecessary ingredients that do little to advance the coffee drinking experience but increase cost and obfuscate any attempt to understand one another's drink orders. Its customers are pretentious at best, and quite possibly un-American at worst.

To Starbucks drinkers, theirs is the more evolved palate. Their orders simply cannot be appreciated by the cretins of DD, who they will not rule out as a potential lower life form stuck in a rigid coffee drinking pattern and unable to adapt to change should the need arise.

So which group of loyal customers is right and which is wrong? Of course this a question that can't be answered - there are simply too many variables, too many circumstances, and too many considerations of personal taste.