Integration Token

An Integration Token is a single physical object used to determine who has the authority to integrate code into the main build of a software project at any given time.

Remember the conch (?) shell from Lord of the Flies? "Whoever's holding this shell can speak." That's the idea. Whoever has physical possession of the integration token is the only one with the authority to integrate. If you want to integrate, you have to get the token from whoever has it.

Often, the integration token is a silly toy, which makes it unmistakeably clear who's got it. It's also a GoodThing to have a reasonably large token, so it can't be hidden in a pocket or otherwise easily lost.

And the integration token must have a home, so that there's a common place to look for it when nobody's doing integration.

Variation: Maintaining TheIntegrationStation.

How do you have an IntegrationToken when you have people distributed across multiple physical sites? TomAnderson is currently on a project whose happy band of brothers and sisters is spread out over sites in Kerala, Denmark, England, Virginia and Connecticut, and he would really like to have a good answer to this question. He knows about a project like this where they had two sites; they had the token in one place, and the people in the other place could grab it by proxy, asking someone physically close to the token to grab it for them. That doesn't scale to five sites in three and a half timezones. He and his colleagues have talked about doing something purely electronic, but not actually got round to doing it. That doesn't quite feel right, either, although it may be unavoidable.

Electronic solutions will work easily enough. You can even make an electronic token far more secure than the physical approach. OTOH, I would suggest that IntegrationToken is simply not a scalable solution, and that one should consider switching to true software management utilities once the project scales beyond a certain point (and possibly even before then). Distributed version control systems, ZeroButtonTesting (automated unit and integration tests), configuration management software, bug tracking, etc. are desirable.


TryLikePages WorkspacesOfTheFuture


EditText of this page (last edited March 26, 2010) or FindPage with title or text search