One of my favourite topics in Software Development is Continuous Integration.
In my eyes it is one of the key technologies to create good software:
- Every developer gets direct feedback if the software is working
- It encourages writing tests
- Distribution of the components can be automated
- It is possible to integrate a lot of tools like static code analysis or generation of documentation
Currently I’m using Jenkins CI at work with a small team of 4 people. As I mentioned earlier I’m working in a bigger company with a lot of oldschool developers who are happy within their world of C-programming and Linux kernels (not that this is bad, but it does not harm to think outside of the box sometimes…). It took some time and the help of some enthusiastic coworkers to bring up the huge advantages of CI, but there currently arises the idea of that we need a change.
So what to do now? I think there is a good opportunity now to show off the biggest advantages in a practical way. It’s one thing to read about how CI is improving the testability, it is another thing to show someone how the test results 5 minutes ago gave me a good feedback on where I should search for the big bug we’re having on the production system. I’ve got a bunch of ideas here:
- Better integrate our software to be able to show more and more things which can be done (automatic tests, distribution, analysis, …)
- Use Jenkins in combination with our existing tools to show how we could integrate it into our environment
- Talk about it, just let people know where the advantages are
Let’s see where this is heading. Rome wasn’t built in a day.