The idea that some software developers matter more to coding projects than others is controversial, particularly among open source projects were community cohesion and participation can suffer if contributors are not treated fairly.
Scott Hanselman, partner program manager at Microsoft, argued against the notion of rockstar programmers back in 2013, as have many others. But not everyone agrees and it’s a difficult debate to settle because there’s no consensus about what to measure, much less about the methods used to make the measurements.
What’s more, projects may have different needs at different times – a dominant contributor may help bring projects to life but then become a liability when the project is mature.
The latest entry into this long-running argument comes from a research paper, “Why Software Projects need Heroes (Lessons Learned from 1000+ Projects),” published last year [PDF] and just revised [PDF] with 16 additional pages.
Penned by a quartet of computer science boffins from North Carolina State University in the US, the paper presents data about over 1,000 open source projects on GitHub and finds that “the majority of the projects are hero projects” and that “commits from ‘hero developers’ (who contribute most to the code) result in far fewer bugs than other developers.”
Principled individuals may reject the notion of software heroes outright because the very concept can be taken as antithetical to the abstract notion of equality. But it’s important to distinguish between equality as a civil right – everyone deserves equal treatment under the law – and equality as an assertion that everyone is the same.
The paper’s authors – Suvodeep Majumder, Joymallya Chakraborty, Amritanshu Agrawal, and Tim Menzies – demonstrate their awareness of the political combustibility inherent in such discussions by noting that their use of the term “hero” is not gender specific.
Even so, it’s worth noting that “hero” comes with baggage and that other terms like “rockstar,” “champion,” “leader,” “grunt,” “maniac,” “dominatrix,” or “martyr,” might have been used instead and might have conveyed different implications. But for the sake of simplicity, let’s stick with “hero.”
Boffins debunk study claiming certain languages (cough, C, PHP, JS…) lead to more buggy code than others
The researchers define a “hero” project as one where 80 per cent or more of the contributions come from 20 per cent of the developers.
What is significant about this definition is that it considers both code and communication as a contribution. Given this, the researchers aim to test CMU computer science professor James Hersleb’s hypothesis that writing code is a social process and social interactions produce better code.
“From the ‘Code interaction graph,’ the developers who contribute more than 80 per cent are hero contributors and in the ‘Social interaction graph,’ the developers who are making 80 per cent of the communication are hero communicators,” the paper explains. “Both are ‘hero developers’ for us.”
Based on their analysis of the GitHub data set, the researchers conclude that most projects are driven by a hero and that heroes help create better code. They argue that further work should be done on how to streamline communication between heroes and other developers to improve code quality.
“The finding is interesting because we now know with significant evidence that ‘hero’ developers do exist in open source projects,” said Gias Uddin, a computer science doctorate who’s currently working in the tech industry, told The Register, noting that the findings demonstrate how important communication is in an open source environment, where participation and contributions come from the desire to learn and be recognized rather than desire for compensation.
“Given that software development is a demanding work, it would be interesting to know whether and how the ‘hero’ developers experience stress during their participation, both in terms of making progress in the project as well as in their personal and professional lives,” Uddin said.
Uddin said the study suggests further avenues for industry and academia to explore in terms of how they can better support developers and open source projects.
The researchers offer a similar conclusion.
“Heroes are born when developers become are so skilled at what they do, that they assume a central position in a project,” the researchers say. “In our view, organizations need to acknowledge their dependency on such heroes, perhaps altering their human resource policies and manage these people more efficiently by retaining them.” ®