Hilton Giesenow on Continuous Integration in Scrum
The Cape Town chapter held it’s 4th event last night. We meet at Great Westerford, with venue and food kindly sponsored by Intec and drinks sponsored by Scrum Sense.
Hilton Giesenow, Development Manager at 3Fifteen and Microsoft MVP spoke on continuous integration (CI). He spoke of CI as a continuum and just one of a number of good software development practices. He outlined 10 steps to implementing good CI, with the first 3 being an essential starting point:
- Source repository - gotta have this!
- Make code self-testing with unit tests (for bugs in legacy code, write a failing unit test that reproduces the bug, then fix!)
- Automate the build - use one of the great free tools such as Cruise Control from ThoughtWorks; trigger to run every 30 mins or on each check-in.
- Everyone commits their code daily (at least).
- Every commit should be built (all code is integrated)
- Keep the build fast
- Test in a clone of the production environment (use VM’s)
- Make it easy to get the latest deliveries (for example use zip of exe)
- Everyone can see the results of the latest build
- Automate deployment
In the subsequent Q&A session we noted that:
- You can implement CI beneficially in any SDLC process, whether Waterfall, Scrum or other.
- Scrum is (deliberately) silent on software development practices, leaving teams and organisations to choose their own.
- It is essential that teams implement good practices such as CI to complement the Scrum process if they want to improve.
- Doing CI will provide you with useful metrics as a side-effect, for example code coverage by tests, number of automated tests.
We’re grateful to Hilton for taking the time to spend with us!
Popularity: 12% [?]
Continuous Integration is definitely more than tools. It’s a philosophy that needs buy-in from the whole team. The tools make it easy to keep up with, but the team itself needs to participate. The points that you outline are a great way to look at it. For example, automated builds without automated tests just doesn’t buy you a tremendous amount. And you don’t get automated tests for free. Your dev team has to work them in from the beginning.
Thanks for the post!
Just a suggestion: For people with no expirence in CI CC.net and all the config stuff is kind of scary. Using TeamCity from JetBrains seems to be less daunting.