The importance of international ambitions for long-term success
As codebase stewards, our most immediate aim is to enable collaboration in, and reuse of, public code. The Standard for Public Code is meant as a key to unlock that collaboration on a large scale. To do that, it has a criterion called Use plain English. Naturally, a codebase community that starts out with a regional focus, are reluctant to take on the extra cost of working in a second language. That is why we in this blog post want to explain why we believe that having an international ambition is worth it for the long-term success of a public code codebase. There are three key aspects that we will take a closer look at and these are:
The potential for scale
Obviously, by enabling international collaboration the potential for scale is much larger than if you are developing to only meet a national need. And with that scale comes a number of things that you already want, or require even. A community that is global in nature typically has access to more resources.
More developers involved
Even though not every user of the codebase will contribute by developing code, sooner or later there will be some larger stakeholders joining that have a need to fill and developers that can meet it. Additionally, even though contributions might come in sporadically from around the community, collectively this might build up a cadence, a developing rhythm of the codebase.
When there is a pressing need for something that the entire community would benefit from, or urgently require, there is also a potentially larger funding opportunity. Not only might there be stakeholders with a budget that is larger in absolute numbers, any collective costs can be shared among more people, rendering the individual cost lower.
With more contributors involved there will almost certainly be a greater diversity in the available skills. Suddenly a mutual collaboration may be possible instead of procuring for solving specific tasks.
Finally, and as a result of Linus’s law, having more users will mean that bug-discovery will be quicker. This also extends to “regular” polishing of the codebase since users in the public sector context are more likely to be a good supply of feature requests that makes their daily work smoother.
International codebases becomes high profile
When a codebase has international collaboration, this is usually also something that the participants are very proud of. This is particularly the case on political and managerial level. With that pride often a will to invest comes along. Project managers and developers may see an increased mandate for their work and greater support from the rest of the organization. Thus, the international collaboration can unlock more resources from several stakeholders.
Variation of contexts
By collaborating internationally, the variation of the contexts of both the usage of the codebase and the local communities, increases more than it could in a national context. We see this variation playing out in three different ways:
Driving force for configurability and reusability
As the context almost certainly are different in various countries, the needs for configurability will be naturally discovered. When adjusting for those needs, it often turns out that there are users in the original context that also will benefit of that configurability. Overall, the needs that drives a codebase to be configurable also makes it more reusable.
With people contributing from several countries, there will naturally be an increased diversity, not only in the contributors, but also their needs and local circumstances. As people are using the codebase with slightly different perspectives and experiences, light will be shed on different parts of the system. The chance to make findings that increases both inclusivity and accessibility then increases, as the exploration through the systems gets higher because the paths that were less taken in one context will be different.
International collaboration will most likely also mean that internationalization and localization will have to be prioritized. While an initial cost, it will provide value with each new collaborator using a different language. As the new collaborators are adding new languages, everyone will get support for minor or non-local languages.
Different feature work prioritization
Local situations will vary, and that will lead to some organizations value some features higher than what others do. When they invest in meeting their needs and develop these features, they will become useful for all the others in the community. Often the value of such features are only understood after seeing it in action in another context, and might become valuable to organizations that did not think they needed it much.
Separately with more development going on, adjacent feature work can reduce cost of local feature work. This could happen because they use other underlying functions of the system that gets improved or that new basic features are put in place that is useful infrastructure in the codebase just to mention two of the possibilities that opens.
Stability over time
Finally, if a codebase is only developed in one political context, the results of any election may come to effectively put on an end to a codebase. By having contributors spread over the world any one local political change is less disruptive for the codebase as a whole.
We hope that this reasoning from a codebase stewardship perspective is clear enough to show the value for a codebase to have international ambitions. Do you have any further benefits or do you disagree with something? Tweet to us at @publicccodenet.