Good First Project
An InnerSource program has been launched at an organization, and to get off to a successful start it requires some good first projects that lend themselves to InnerSource-style development. Assessing the InnerSource-readiness (fitness) of the candidate projects can help in selecting projects that have the potential to help demonstrate the power of InnerSource.
When launching an InnerSource program, it is essential to convince the skeptics about the utility of InnerSource (see the Start as Experiment pattern).
While any project has the potential to benefit from being developed in InnerSource style, some are more suitable candidates than others. But how do you find the projects that have the best chance to succeed as InnerSource projects?
Moreover, while previous works focused on the criteria for readiness for InnerSource adoption at an organizational level, there seems to be no concise and actionable guideline for assessing the InnerSource-readiness for individual projects.
- An organization is starting or is in the early phase of InnerSource adoption, with a lot of skepticism about whether or not it'll work.
- Selecting an inappropriate pilot project might lead to failure of the entire initiative (see the Start as Experiment pattern).
- Otherwise, a team might be planning to start an InnerSource project but they do not know how prepared they are and if the project they are putting forward is appropriate or not.
- Lack of knowledge about which projects stand to benefit the most from InnerSource development.
- The team might think they are prepared for InnerSource, but might not have an idea about what challenges lie ahead and how prepared they actually are.
- Unsure if the tools used by the project and the organizational processes are conducive to InnerSource style development.
This pattern presents a framework (Project-Process-People model) and an accompanying tool as one specific implementation of the framework for identifying the fitness of an InnerSource project. The framework is based on prior work by Klaas-Jan Stol and Brian Fitzgerald and Silona Bonewald, and helps to find promising candidate InnerSource projects by assessing their InnerSource-readiness.
We hypothesize that the fitness of a project can be measured by examining the characteristics of the project, the tools used and the organizational practices, and the readiness of the team in-charge, which we call the Project-Process-People model. We suggest two sub-factors within each which overall provides six dimensions to measure the fitness of candidate projects.
- Project Compatibility
- Seed Product -> Do the project characteristics make it suitable for InnerSource style development?
- Multiple Potential Stakeholders -> Is the project likely to attract developers from different teams and build a community around the project?
- Process Compatibility
- Appropriate Tools and Practices -> Do project practices facilitate contributions from outsiders and are the tools used in the project too specific and need to learned?
- Ease of contribution -> Are the required ancillary resources set up and is the code modular enough to facilitate contribution?
- People Compatibility
- Team Readiness for InnerSource -> Are the team members aware of and ready for the challenges of maintaining an InnerSource project?
- Management Support -> Is the management willing to support the developers working on the project and the initiative in general?
The InnerSource Project Fitness Tracker is one specific implementation of this pattern. It helps estimating the fitness of a candidate project along the six dimensions explained above, and presents an aggregate score which is the weighted sum of the scores for these dimensions. (As an side: Weights are determined by how many people considered a characteristic important in the InnerSource Survey 2020).
This demo video shows the operation of the tool mentioned above.
Using the framework helps to assess the InnerSource-readiness of individual projects.
The fitness score of a project can be used as an indication about its suitability for InnerSource style development, which can help in selecting the most appropriate candidate projects. By choosing projects with higher chances of InnerSource success, you also increase the chances of the overall InnerSource program to be successful.
The questionnaire presented in the tool also serves as a de-facto guide as to which aspects need attention for making a project better suited for InnerSource style development.
The two most important works in this context are by Klaas-Jan Stol and Brian Fitzgerald and Silona Bonewald.
In their work, Stol and Fitzgerald presented a set of nine key factors that are important for organizations to consider when adopting inner source. However, that model looked at an organization as a whole, and while a number of organizational characteristics are applicable to an individual project, some aspects are not, and some project characteristics are unaccounted for in the model. They presented three main factors: Software Product, Practices and Tools, People and Management, and three sub-factors on each of them.
Silona Bonewald, on the other hand, presented a near-exhaustive checklist about different aspects to consider while adopting InnerSource at an organization. However, not all of them are applicable while considering an individual project. Ideas from the two works described earlier are combined in framing the pattern presented here.
TBD
- Initial
- Tapajit Dey
- Brian Fitzgerald
Willem Jiang from Huawei for the feedback on the tool and translation to Chinese.
- InnerSource Project fitness
- InnerSource-Readiness of a project