Hero Driven Development
Just a brief thought or lament on a common pattern in open source development. It's the dependence on "heroes" of the ecosystem.Heroes are individuals or groups who "step up" and, for continuous years, make new stuff and maintain it. When they make promises and commitments, either explicit or implicit, you can count on them.
An example of an implicit commitment is registering a domain name. Are you going to be cool and keep that URL working forever? If I ever have to use a site archiver, you have failed, and I'm a bit sad.
For various reasons ecosystems occasionally attract very energetic people. Some could even be called prolific, with the amount of work they put out so rapidly. They can turn into heroes. But if it was all flash-in-a-pan, that's not good. A lot of these people burn out and fade away.
It's really kind of depressing when you see an individual making cool stuff in an ecosystem for, say, 5 years, and then they just up and vanish and it's been 5 or more years since their last meaningful anything. In the best case, their most important work has been handed off to someone else to keep it alive, but so often it's just abandoned. Maybe it still works fine, maybe it doesn't, but it's ownerless now, and things without owners decay.
They may have been heroes, but until humanity solves the disease of aging, individual heroes cannot remain so forever. As an ecosystem ages, it's more likely for creators to have actually died. What's the bus factor of a project, especially one made by a hero? It makes sense to ask this for two time durations as well: the present, and the potential future further away. Some projects have a more than 1 factor for the present, they have a set of maintainers and if any of them disappeared the project could continue on just fine. Others don't -- but if they're important enough to their users, then it's possible a new maintainer will emerge.
vim provides an interesting example because it was mainly Bram's work. He died. Yet the project still continues on, with daily commits. We even saw a successful live-fork with neovim when he was alive, so that even if no one stepped up to keep vim going, we'd still have neovim. These projects have effective bus factors over longer periods much higher than 1.
Another positive case for an ecosystem can be when a company becomes a hero. The bigger the company, the more impact they can have on an ecosystem, and their contributions and maintenance can last as long as the company lasts. The immediate bus factor correlates with the company size, it's easy to be greater than 1. Things can go back to the depressing state if the company goes under, of course, and some companies never grow and so their pooled contribution is like a few guys at best.
Who are your language or ecosystem's heroes? How do you find them? Look to open source contributions first. Code is king. It can come from individuals, voluntary groups, companies, or school departments. Next look at book authors, introductory and advanced and topic specialized. Next look at creators and promoters of learning resources attracting newcomers to the ecosystem, some of whom might turn into heroes. Finally look to social gatherings of practitioners -- conferences, forums, mailing lists, discords, and so on. This last bit is especially useful in keeping up with knowing who modern-day heroes are -- like maybe someone published a book 33 years ago, but otherwise hasn't done much with or for the ecosystem. Their contribution can be incredibly valuable and important, still highly relevant even, but they're not in the active game anymore, and that's a distinction worth noticing. It also helps identify quieter heroes (sidekicks?) who are stuck in proprietary hell and don't have very visible work, but whose work is important, at least to end-users, even if not so much to other practitioners.
Github adding sponsorship deals was good to try and recognize this.
It's worth adding a little more on conferences, because it really is another way to identify heroes, and help them find each other, and help everyone find could-become heroes to collaborate with -- breeding new heroes, you might say. If your ecosystem don't even have conferences... This is also an important role for hero-companies, perhaps even more so than any particular code or product they put out, because they're the ones most capable of financing and running such conferences. And if they're growing, they can acquire more heroes to join, but even if they're not, growing the ecosystem they've made their company reliant on should be viewed as a good thing overall.
Posted on 2024-09-25 by Jach
Permalink: https://www.thejach.com/view/id/434
Trackback URL: https://www.thejach.com/view/2024/9/hero_driven_development
Recent Posts
2024-10-04
2024-09-25
2024-09-23
2024-09-22
2024-09-02