Monday, August 05, 2013

The interface doesn't matter.

Excellent article by @somic on a "Response To Simon Wardley: Innovation in Interface Implementations" and well worth a read.

It's an intelligent article with little for me to take umbrage with, other than the "ideological footing" comment as very little of what I write comes from a particular ideology but instead pragmatism to eventual evolution of acts to more of a commodity. Other than that minor quibble, it's a well reasoned article (a blessing from the various Simon is a buffoon comments I get to read) but there are a couple of points worth raising.

Point 1 - Don't mix product and utility

The article states that "customers want differentiation". Differentiation in a function for a product like "cars"? Absolutely we want this.

But

"customers want differentiation" - in function for a utility like "electricity"? Really? Do I really want the interface to be changing from one socket to another? A different frequency, voltage and socket type? I don't think so. 

The two contexts are different, you cannot simply compare products versus utility. This alas is the flaw with the analogy given in the article. If we want to compare utility versus utility and use cars as the example then we would have to roll the clock forward to a time when cars are more of a utility i.e. a world of self driving cars where I just jump in and say where I want to go (a more automated form of today's taxis). 

Will I care about the diameter of the steering wheel in such a world … nope. It's an invisible component to me in a utility, I only care that I can jump in and say where I want to go. This act of saying where I want to go is the interface.

Will I care if someone changes the interface because of a desire to innovate and so when I jump in and say "Cowper Street" it returns back "Please tap out your directions on the driver's head rest in Morse code" … yep. I'll care quite a bit.

Will I care if different cars use different co-ordination / mapping systems such that a direction in one car will end up at a different location to another - you betch'a. I'll tend to get quite annoyed at this one behavioural change.

I'll be definitely writing posts that say the interface doesn't matter, please limit innovation to above the interface (would I like a fast route or a scenic one) or below it (operational efficiency of car) but leave the interface as standard and just adopt the dominant de facto please. 

Yes, we could have abstraction layers in which case I could walk around with a piece of kit which translates my speech to Morse where necessary and my directions to the right co-ordination / mapping system. Would it make me happy - nope. I'd think of it as a bloody waste of good engineering time and effort with no obvious benefit other than pandering to desires to innovate at the level of the interface.

Point 2 - We shouldn't care about the interface.

As the articles states "Has the generic IaaS interface changed in any significant way? Not really - no one is innovating in the interface any more because a lot of interesting work there has already been done"

Perfect. I couldn't agree more and would reiterate this has been the case for some time. However, if the above is true then why on earth can we not just adopt one interface then - the dominant defacto of the market. If the interface doesn't matter then we should simply adopt AWS APIs and co-opt their ecosystem because after all, this is a battle of ecosystems and co-opting is the right play.