Implementing Continuous Integration
Objectives of the session:
1) Learn about other people's experience with CI
2) Benefits and disadvantages
3) What metrics were being collected from CI
Learn about other people's experience with CI...out of 8 people who were a part of the session 3 had or were using CI. Each of the environments differed yet the benefits of this practice were present regardless of tools or languages used. It was interesting to learn in one example that the adoption of the practice required a significant amount of effort up front in order to implement CI and keep it running.
Benefits and disadvantages...there are far more benefits than disadvantages to this practice. However, there is one natural side effect that could resemble a disadvantage if presented to upper management or stakeholders whom are more interested in bottom line versus improved code quality, pulse on development, etc. The side effect has to do with managing CI once it is implemented. It does require effort to keep it going and ensure that it is producing the output required to provide the appropriate information to the team and the stakeholders.
What metrics were being collected from CI:
1) Build pass or fail (default metric)
What was interesting about this metric is that it could point out potential training issues with new hires - for instance if the build always passes then begins to fail it could be a result of a new team member not following the process or consistently checking in bad code.
2) Eliminates "Works on my machine" syndrome. The practice requires that all referenced files are properly implemented on the build server which forces development to specify the requirements for the build and ensure the system is able to execute the unit tests.
3) Code Coverage. Metrics surrounding the amount of code executed during the run of the build unit tests.
4) Lines of code (LOC), what was interesting about this metric was it could be used to highlight when developers are short cutting tasks for instance if LOC increases however the unit tests count is decreasing then not enough unit tests are being produced.
5) Code style checking, is an option during CI however I think we all agreed that this metric should be managed during the development process through the dev environment.
Other conversations which spawned from the session...Continuous Deployment and Continuous Monitoring. In the example discussed the company applying this practice was continuously deploying (daily or multiple times a day) code to node(s) within a production network. In addition, systems would continuously monitor the modified nodes to detect if user or system behavior negatively changed.













Comments
Post new comment