Recently, I had an opportunity to work with German, Leif, and Daniel on a very interesting study of the Gnome FOSS Ecosystem. We were interested to understand how release managers coordinate a shared release of a set of interrelated projects within the Gnome Ecosystem. In particular, we investigated:
- Communication channels used…
- How developers communicate and coordinate…
- The key actors, the key tasks, and the most pressing challenges…
With respect to release management in the Gnome FOSS Ecosystem.
What I personally found most interesting are implications for coordinating activities across an ecosystem. In our case, release managers did not exhibit concrete power over developers. They could not just make people do things. This reminds me of some systems and systems as well as ecosystems that I see emerging in industry, where again it is not always clear who has the main responsibility.
In such a situation, our lessons learnt relate to soft factors more than technology. Specifically, we derive the following recommendations from our case study:
- Ensure that the release team follows the main communication channels used by developers. The release team needs to be in touch with the developers. IRC channels and face-to-face meetings in developer conferences were highlighted in our case study.
- Provide a common place for coordination for an ecosystem. In a globally distributed and multi-cultural environment, we found an asynchronous, global mailing list ideal, when complemented with individual, direct communication (face-to-face or IRC) with developers.
- Consider including both good technical and social skills in a release team. In short, technical skills are necessary to earn the respect of developers and to communicate with them, social skills are crucial to convince them to perform necessary actions.
- Aim for a diverse release team. Successful release managers can be seen as representatives of the different parts of the ecosystem. A good release team should mirror the diversity of its ecosystem.
- Based on lack of power, lobbying and consensus based management must be followed. A release team is well advised to keep close to key influencers in the ecosystem.
The Journal of Internet Services and Applications has accepted this work and published it open access.
|author||Germán Poo-Caamaño and Eric Knauss and Leif Singer and Daniel M. German|
|title||Herding cats in a FOSS ecosystem: a tale of communication and coordination for release management|
|journal||Internet Services and Application, 2017, 8(12), 1-24|
|abstract||Release management in large-scale software development projects requires significant communication and coordination. It is particularly challenging in Free and Open Source Software (FOSS) ecosystems, in which hundreds of loosely connected developers and their projects are coordinated to release software to a schedule. To better understand this process and its challenges, we analyzed over two and half years of communication in the GNOME ecosystem and studied developers’ interactions. Through a case study, we cataloged communication channels, determined the main channel from which we categorized high level communication and coordination activities spanning five releases, and triangulated our results by interviewing ten key developers. We found that a release schedule, influence (instead of direct control), and diversity are the main factors that positively impact the release process in the GNOME ecosystem. We report a set of lessons learned that encapsulates our understanding of how the Release Management process function in a FOSS ecosystem, we learned that: (1) ensure that the release team follows the main communication channels used by developers, (2) provide a common place for coordination for an ecosystem, (3) consider including both good technical and social skills in a release team, (4) aim for a diverse release team, (5) based on lack of power, lobbying and consensus based management must be followed, (6) help the release team in the coordination process with a well defined schedule, and (7) release team work is different from regular software work. Our results can help organizations build better large-scale teams and show that research focused on individual projects might miss important parts of the picture.|
|keywords||release management, software ecosystems, empirical study|