Of seamless, seams, Conway and APIs.


Many enterprise software vendors promise seamless integration. This strikes me as both impossible and undesirable. The term is meaningless at best. Rather than wishing the seams between products away, we need to learn from cricket, and embrace the seam, it would be unseemly not to. In cricket, the quality and state of the seam plays a fundamental role in the how ball behaves, and can decide the fate of the whole game. Cricket without a seam would be dull, as too would baseball.

When I refer to Conway in the title, I don’t mean Devon Conway, the former SA cricketer now playing in New Zealand. His batting form is such he can play pretty much any type of bowling with a pool noodle. Champion.

Youtube video on Devon Conway 327 not out.

I mean Melvyn Conway, and more precisely his 1967 Law:

organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.— M. Conway


When products are acquired, or even built in different buildings on a large campus, they are different products. The grade of difference varies, because of organizational politics, different technical decisions, architectural hubris, product compromises, crafty workarounds, differing data model designs, and entropic impact of the passage of time. I suspect that a software archaeologist could determine org charts by looking at old code (one day there will be a job called software archaeologist). All software companies eventually succumb to Conway’s law. It may happen with acquisitions, but it typically begins around Dunbar’s number (140) of engineers. There is a cricketer by the name of Leslie Dunbar, who plays for Serbia. He scored a century on debut, but I digress.

Rather than attempting to hide the fissures between products, or parts of products, software vendors would do better by embracing the seam, and exposing it. To continue the metaphor, the API is the seam. It needs to be visible, durable, consistent, and ideally tamper proof. The API needs to take pride of place.

Seams on cricket balls can be stitched in two ways (by hand, the Duke ball and by machine, the Kookaburra). So too can APIs. In both cases, they require careful preparation, and precision quality control.

It is my wish that software vendors of all shapes and sizes cease talking of the chimera myth of seamless integration, and talk more openly about seams. And when customers buy products they should ask lots of questions about seams and stitching. Too often, customers are in te corridor of uncertainty.

As with any metaphor, this one has its limits.

By the way, I’ll be at the Unleash conference in March, where Stephen Fry is speaking. I do hope he talks about cricket. His podcast over the World Cup and Ashes summer with the bowler Stuart Broad, is brilliant. I think the real Jeeves would have loved it.