Category Archives: open source

Headless Chickens

This is an amusing this attempt to label strategic approaches to Open source available to the software vendor.

  1. The truly committed
  2. The mixed-codebase
  3. The pragmatics
  4. The anti-strategist
  5. The headless chickens
  6. The in-denial
  7. The anti-OSS

Open Source has upset the apple cart of consensus about how to run a software company. Just consider a handful of the sources of risk (from Porter’s classic list). Open Source totally changed the nature of buyer power. Buyer can now engage much more deeply with the vendor, collabratively evolving the product for joint gains. That change is rough for both sides.

The inputs to software firms have changed, i.e. what Porter calls supplier power. The open developer community is a vast resource that you ignore at your peril. The software components you stand on have changed and many are now open. Even if you avoid the viral power of the GPL the culture of development has changed.

While not particularly unique to open source (i.e. it’s happening all across the information/knowledge industries) new entrants face much lower barriers today. That increases velocity as well as uncertainty.

In classical industrial frameworks a industry seems to sort it’s self out into a clear pecking order. It then settle into a kind of low key rivalous behaviour along the lines of that ordering. Buyers and sellers rondevous around the resulting arguement.

In a disruptive period the rules aren’t clear. The argument is always changing. In businesses where industries don’t emerge them never do.

I’m amused that list reflects an attempt to impose ordering on the vendors. To frame the measures of quality for CIO/CTO buyers. In that PR frame it’s clearly biased toward the author’s firm. That’s typical, it’s part of an argument that unfolds whenever an industry is in flux. What measures of quality will define the industry’s peeking order after things get sorted out is the key issue during the disruptive phase. So of course every vendor clueful vendor is desperate to make sure that whatever they have in the way of strengths become the leading attributes of quality.

Reciprocity and Data Licensing

The phrase “reciprocal licensing” got into my head a few months ago. If you go poke around you find that the term is mostly used to describe ways that one organization agrees to honor the licenses granted to professionals by some other organization. Licenses are, of course, set of rights and responsibilities. For example is the state of Massachusetts grants me the right to drive a car on it’s highways most of the rest of the planet will also grant me that right. Lots of professions have associated systems of reciprocal licensing: plumbers, teachers, and lawyers. When you grant respect to a person’s title, for example Vice President of Engineering, outside the context where that title was granted you would seem to be engaged in a form of reciprocity.

Reciprocity isn’t just for roles. The GNU software licenses are a form of reciprocal licensing. In exchange for the right to modify the software you relinquish your option of hoarding those modifications. The peer to peer file sharing, systems are another example, in exchange for drawing down a file from the system you are expected to reciprocate by providing bandwidth for further file sharing. The peer to peer messaging and VOIP systems are two more example. Once you start noticing you’ll see lots of these.

Reciprocity is one way of framing the coordination aspects of collaboration. It’s a way of talking more explicitly about the responsibilities that come with club membership around a club goods. The peer to peer system, the GNU code community, the professional society around plumbers or doctors, even the universe of international drivers all have rules that govern how the goods are maintained in collaboration. You can find other examples around patent pools. Some platform vendors have begun to use these ideas to assure that members of their developer networks add to the platform. For example Microsoft’s consumer electronics platform has rules that clarify the timing of various developer IP rights so innovations can flow back into the common pool around their platform – or so I’ve been told.

Peering agreements are another interesting application of reciprocal licensing used is for. IP packet routing, or phone call routing, or check clearing are all examples. The problem is you want to join a distributed network but your concerned that other members of the network will freeload or cheat in various ways that disadvantage you. You need trust at a distance. By setting up a standard contract that every participant is required to sign you can temper some of the risks.

Data pooling agreements have the same challenges. Consider an example. Imagine you are an insurance company. You have worked hard at great expense to collect data about insurance claims. This data is valuable because in aggregate it drives how you set rates. If you had more data you could set rates even more accurately. That could be very profitable. The insurance industry shares data like this by establishing master database. And, I assume, they use a contract much like a patent pool or a peering agreement to reduce the risk that some companies freeload or engage in any number of other ways of gaining an advantage.

Of course all industries have a power-law distribution of players. One way you can disadvantage the small players is to create barriers to entry that only large players can overcome. One place you can establish these barriers is with the rules around the reciprocity agreements. But, on the other hand, you can use the reciprocity agreement to frustrate that. The GNU license is a fine example of that. There is another example found in the open source VOIP community. They need to exchange call routing data. They have a peering agreement for that which tries to keep large players from locking out tiny guys – like me with my basement phone switch.

For the last year or so I’ve been puzzling about the problem of how to equitably distribute blog pings from blogs to interested parties. The tough nut in the design is that there are some very large gorillas in the blog world and they are all, presumably, tempted to horde their ping data to gain various competitive advantages. And, as usual in these two sided markets where there are lots of providers and lots of consumers there is a two sided network effect that could lead to a single winner who acts as the hub for the exchange. A middleman taking a small cut as he coordinates the interactions. The usual way to temper that risk is to introduce some standards that fragment the market while solving the coordination problem enough. With luck you can even get the standard to do a better job than a single hub would.

All that has brought me around to the question of what the reciprocity rules would be in such a market. What the world needs is creative commons like license for pings. I want to know that when I ping weblogs.com, or ping-o-matic, or technorati, or pubsub.com that they aren’t going to horde the resulting data. I want to know that they have signed onto a peering agreement that assures that my ping joins rest of the ping flux as public data. Some rights and responsibilities are granted when you ping these guys. Their responsibilities need to be made more explicit.

I don’t mind if they want to horde information that they accumulated by spidering, polling, and scraping; though I suspect we will see similar creative commons like licenses appearing on sites. Licenses that make explicit the reciprocal nature of the relationships.

Space: the API

My car’s check engine light came on. Being both modern and a cheapskate I found the online community where Passat owners hang out. My old car there had a secret pattern of key turns and button pushes that would cause the car reveal engine’s fault. I was hoping for something similar.

But car makers love to keep things secret. German car maker are more secretive than Japanese makers. So it is verboten for Passat owners to know what lies behind their check engine lights. My fellow owners showed me a way. Autozone will read out your check engine codes for free. Autozone has solidarity with those who to fix their own cars.

The man at Autozone climbed under my steering wheel and plugged in. He and I copied the codes down onto a peice of paper. He then placed his finger just under a large yellow button on the read out device. He held it up, away from his body, toward me. He turned and gazing away into the distance. My eyes followed, a large warehouse sat on the far side of the parking lot. He said speaking into the empty car. “If it’s still under warrenty we can’t press the big yellow button. That clears the codes.” He paused, gazing more closely at the warehouse. “I” “Can’t push the yellow button.”

The inside of Autozone is full of gadgets to hack your car. An entire asle of things that plug into the cigarette lighter. A wall of steering wheel covers. Two racks of things to hang from the rear view mirror. Devices that clip to the air vents on the dash board.

I once built a store front. A place where developers could sell their wares. The developer products all plugged into an existing product. Our product. We called it the developer’s market place, it was a way for the developers to reach our customers, our product’s users.

As mentioned car makers like to horde their options. They like to sell you the radio rather than relinquish that option to some random 3rd party. So generally auto makers are not very big on open APIs. I suspect they grumble about that cigarette lighter.

But standing looking at the Hawain shirt steering wheel covers at Autozone I had an epiphany. How little it takes to create an API. How small an affordance. The convex shape of the steering wheel, the latent hook on the rear view mirror, the trickle of electricity in the cigarette lighter.

A few days later I was listening to a talk by one of the dudes who have been hacking on the Prius. He throws up a slide showing the floor under the hatchback. There’s a panel. The panel is removed in his next slide and there is a small shallow space. Just a few inches deep. Useless really.

But, immediately I knew. That empty space! Full of latent energy. Waiting for their hack. Drawing them in. “Fill me!”

What happened? Why did Toyota leave that space? Did they actually know what they were doing. Did they know that empty space is an open API for developers? It’s not as hard to create open APIs as you might think.

Open Phone

Open sure is virulent. … The folks that make one of the chipsets widely used in IP phones have decided to open up access to their software stack under a BSD style license. We really have no idea how open all these gadgets are going to be, do we? I wonder how long before we get open toasters and open microwave ovens etc. etc.

Evolution of Governance

I worry about firms capturing the open source movement. The most spectacular examples of open source emerged from the collaborative efforts of small groups joined in non-rival common interest. All those groups have suffered from very natural growing pains.

All institutions encounter two problems as the grow: coordination challenges and concentration of power. Those that steward the institutions respond to these problems by importing organizational devices from their personal experience. One of the reasons to study civics in school is to have a more enlighten less superstitious understanding of what you get from from the application of any given organizational device. It’s a shame that teaching civics isn’t a more serious enterprise.

There are standard ways to tackle the organizational problem, some amount of command and control are inevitable. You have lots of choices for example: laws, tools, standards, hierarchical organization, town meeting, representative democracy, etc. In designing solutions to the coordination problem it’s typical to pull something from bunch of different bags and combine them complex ways. For example my town as a representative town meeting, a board of selectmen, a town manager, a school board, and a school superintendent. All these, along with a large pool of professional practice and national and state regulation play a hand in coordinating various aspects of how we run the public schools.

Governance design isn’t just about solving the coordination problems. It is also about tempering the concentration of power that natural emerges in all institutions. What if the superintendent becomes too powerful? What if the town meeting decides to mandate home schooling for all?

The stewards of institutions pull solutions from their experience to solve these problems as well. For example progressive taxation is one way of tempering self reenforcing concentration of power from the distribution of income. For example in the US we have, until recently, feared concentration of power in the banking industry – so we had potent regulatory barriers to prevent banks from consolidating into a handful of national banks as is common in other countries. Or in another example when we build the interstate highway system we diffuse some the power of cities. The electoral college and the seats in the house of representatives hand power to weak or small states and in doing so disenfranchise citizens in large powerful states. That was intentional. It was a design to temper the power and coordination advantage of the elite. Apparently the founding fathers worried about the elite.

In the open source community we have not, I think, been sufficiently aware of these problems. Some people have, of course, but most people cling to the presumption that we can run all open source on a collegial town meeting model. Where coordination problems are talked out and where all parties are peers of similar power. Sadly, for some projects, that doesn’t scale. More of concern is that it is becoming clear that that model isn’t robust in the face the arrival at the table of a powerful focused individual or organization.

These concerns are one of the reasons that towns often shift from an open town meeting to a representative town meeting. An open town meeting is all well and good until a handful of over enthusiastic nut cases start showing up at every meeting and advocating some silly agenda – say mandatory taser ownership. Those who care at that point force the long tail of disinterested people into the voting booth to elect representatives. By design they temper the power/enthusiasm of the small group with the long tail.

How you govern open source projects is getting increasingly subtle. Open source is now a key part of the supply chain for huge firms and for the economy at large. This creates incentives for the customers of open source to come to the table, or worse to attempt to capture it. Not because of any evil agenda, but as a means to temper the risk of a supplier who’s nature is hard to understand. Mystery is risk.

One way we have tried to tackle this problem is licenses. These play a two sided role. One the one hand they act like the banking regulations as a way of limiting the ability of a single organization to aggregate a majority share of the open source commons. On the other hand they act to lower barriers to accessing the commons in a way not unlike the interstate highway system they energize the long tail.

In-spite of that we have a handful of very large aggregated points in on the landscape of the open source commons – FSF, Apache, the standards bodies like W3, Oasis, and the Java community. You can’t avoid the emergence of cities on a new landscape – you always get the power-law curve. But you do need to look closely at how they are governed.

You have to solve both problems. These institutions need to be well coordinated. These institutions need to be guarded against capture by the powerful players around them.

We need to solve these problems professionally and not by superstition and magical thinking.

Open Source License Diversity

The chart at right has a dot for each open source license used by a project at source forge. Note this is projects, not installed base. I am not aware of good data for installed base. A typical power-law distribution.

All the usual forces are in play that would lead toward that. Preferential attachment for example means that licensing choice is can be modeled as nothing more than mimicry of the current license distribution. Then there is the multiplicative process where new projects evolve out of the substrate of old projects, tending to bring along their own licenses. Finally there is a certain amount of condensation where projects find it advantageous to adopt similar or identical licenses for functional reasons, e.g. the lawyering to figure out if license #12 is compatible with license #17 is enough to drive most reasonable men insane.

While those forces are far more determinative in driving this distribution than the functional distinctions between the licenses once the distribution emerges the distinctions between leading licenses become clear because that’s what you have to lawyer out. Like the distribution of human languages the installed base tends to be very hard to migrate; short of disruptive displacement of entire cultures.

It saddens me. Not that we have all this diversity, that’s to be expected. What saddens me is that we, the open source community, seem to get fixated on hair splitting about the distinctions between these licenses.

These licenses are a very high risk experiment. They are an attempt to find a means to create a durible vibrant commons. Something that will stand the test of time. Something that will be useful to everybody. While we have a lot of very smart people working on finding a solution to this problem we won’t know if we found it until much much latter in the game. In games with lots of risk and little certainty diversity is an very good thing.

It is a bad idea to put all our eggs in one basket. Oh sure, too much diversity would be a pain both in mounting out defenses well and in the cost of tedious lawyering about capability. But! I deeply wish we would all try a bit harder to respect and admire the choices that each license community is making as they run their experiment. People should back off on being some damn certain they have the future by the balls. I fully expect that over the years some of these models are going to turn out to be impossible to defend from those who would privatize the commons.

We are all on the same side here, right?