|
| 1 | +** |
| 2 | + |
| 3 | +Author(s) (Chronological order): |
| 4 | + |
| 5 | + Daniel Izquierdo Cortázar. Bitergia |
| 6 | + |
| 7 | +Reviewer(s) (Chronological order). |
| 8 | + |
| 9 | + Gregorio Robles. Universidad Rey Juan Carlos. |
| 10 | + |
| 11 | + José Manrique López. Bitergia. |
| 12 | + |
| 13 | + Kate Stewart. The Linux Foundation. |
| 14 | + |
| 15 | + |
| 16 | +Introduction |
| 17 | +============ |
| 18 | + |
| 19 | +Choosing the right software metrics is not an easy task. If you have |
| 20 | +access to data, and in software development a lot of data can be |
| 21 | +gathered, you can easily think of many possible metrics. Sometimes, too |
| 22 | +many... up to the point of reaching saturation! |
| 23 | + |
| 24 | +This report aims to formalize a strategy and a method to identify, |
| 25 | +acquire and understand metrics, and how to apply those to the inner |
| 26 | +source world. Part of the information found in this document is built on |
| 27 | +top of previous literature and talks about inner source. However, none |
| 28 | +of the former seems to focus especifically on the metrics needed to |
| 29 | +understand if a process is working as expected, or if substantial |
| 30 | +changes are required. |
| 31 | + |
| 32 | +As inner source is a medium or long term activity, as any new |
| 33 | +methodology to be applied within a company, feedback about the process |
| 34 | +and performance is key to assure its quality. This report has as goal to |
| 35 | +be the *glue* between developers, managers and C-level. It aims to help |
| 36 | +them build a proper mining software structure based on key indicators |
| 37 | +that will help to lead the improvement of the process. And specifically |
| 38 | +in the case of inner sourcing, this document is expected to help when |
| 39 | +selecting initial metrics and studies to lead that process. |
| 40 | + |
| 41 | +It is worth mentioning that the whole organizational structure should be |
| 42 | +aligned with the metrics used for the analysis. Qualitative feedback |
| 43 | +from the several layers of the organization is also a key part of this |
| 44 | +process, involving from developers to C-level and going through middle |
| 45 | +management. They all should understand that these tracking actions are |
| 46 | +following a specific goal and not tracking their own individual |
| 47 | +activities. |
| 48 | + |
| 49 | +Rewarding systems on top of the metrics are also recommended, but always |
| 50 | +with a specific focus on fostering some actions such as pushing |
| 51 | +developers to commit their first pull request[^1]. The point about |
| 52 | +having metrics is that people can cheat on them, so when fostering |
| 53 | +specific behaviours, those should be use in short periods of time to |
| 54 | +help developers to get used to some way of developing. The most |
| 55 | +recommended use of metrics is to track the performance of the whole |
| 56 | +community and how to avoid bottlenecks and actions that may delay their |
| 57 | +activity. |
| 58 | + |
| 59 | +The approach presented in this report follows the GQM approach |
| 60 | +(Goal-Question-Metric)[^2]. This consists of declaring the goal(s) of a |
| 61 | +specific decision, then state a set of questions that fit in that goal, |
| 62 | +and finally come back with a list of metrics that answer each of the |
| 63 | +proposed questions. |
| 64 | + |
| 65 | +As Inner Source has a different meaning depending on the organization |
| 66 | +where it is deployed, inner source may have different goals. However, |
| 67 | +there are some goals that are usually required across organizations and |
| 68 | +that can be divided into these main groups[^3]: |
| 69 | + |
| 70 | +- Improve **code quality** through continuous integration (CI). Open |
| 71 | + source projects are used to CI and peer review process. And |
| 72 | + specifically having many eyes to any piece of code going to master |
| 73 | + help a lot to detect potential issues in advance. It has been |
| 74 | + measured that having code review in your process helps up to the |
| 75 | + point of saving half of the potential spending when maintaining the |
| 76 | + software[^4]. On the other hand, CI allows to automate checks that |
| 77 | + were usually done by human beings, such as unit testing, regression |
| 78 | + tests, style checkers and others. |
| 79 | + |
| 80 | +- Decrease **time to market**. As silos are broken within the |
| 81 | + organization, there are developers and business units across the |
| 82 | + organization that are willing to work on the same topic. And this |
| 83 | + helps to increase the velocity of the development process. |
| 84 | + |
| 85 | +- Allow **innovation** within developers. Developers are now allowed |
| 86 | + to collaborate with others and create their own social networks with |
| 87 | + other business units. This collaboration helps to bring new points |
| 88 | + of view to the same problem what allows to bring innovation to the |
| 89 | + same problem. Developers can easily now create new repositories |
| 90 | + under some rules, having those projects as incubators and get |
| 91 | + traction from other developers that may participate in such project |
| 92 | + at some point. Do-ocracy could be also part of the process. |
| 93 | + |
| 94 | +- Reduce development and maintenance **costs**. Maintenance is reduced |
| 95 | + to the decrease of business units working on the same topic and this |
| 96 | + cost is now shared among all of them. And this applies to the |
| 97 | + development and maintenance point of view. Any business unit |
| 98 | + interested in participating in a project as their goals are aligned |
| 99 | + to such project may provide resources. |
| 100 | + |
| 101 | +- And last but not least, allowing developers to work on the topics |
| 102 | + they feel are important for the organization or on their own |
| 103 | + interest help them to be more comfortable. Inner source helps to |
| 104 | + improve the retention of the good developers for the organizations, |
| 105 | + but also helps in the recruitment process as the organization is |
| 106 | + seen as innovative and listen to developers needs. This helps to the |
| 107 | + general **engagement** in the organization. |
0 commit comments