Continuous Integration
Earlier in the year, I gave an internal videocast to my colleagues in IT on continuous integration. I finally got around to posting it online and the presentation is now available on Slideshare.
Earlier in the year, I gave an internal videocast to my colleagues in IT on continuous integration. I finally got around to posting it online and the presentation is now available on Slideshare.
When an executive manager approached me a few weeks ago with the idea of running a developer day with one of his Java development teams, I jumped at the opportunity. The idea was simple: emulate the success of Google 20% time and the Atlassian Fedex day to improve the collaboration and skills of a bunch of developers.
I started out with some research and found the following excellent resources:
It was decided (in hindsight, a fantastic decision) to hold the day in a neutral venue away from the usual office in a training room environment. The pre-requisites equipment-wise were at least one machine per two attendees (we ended up with two high-spec developer machines and a bunch of laptops), network access, a projector and the usual agile materials of post-it notes and pens. A supply of snacks and drinks was also available to give it a “start-up” feel.
As we had two days and wanted to also allow for some presentations and discussions, the run of the days ended up as follows:
9.00am: Standup Introductions (All), why are we here, team building exercise (paper folding exercise)
Give each member of the group an A4 piece of paper, the facilitator needs one too. Have them close their eyes. The facilitator issues the instructions and follows them as well. No questions are allowed.
The group can now open their eyes and find that there are many different shapes of paper. The debrief covers the need for two way communication and that the different perceptions of the people caused the many different designs. If time permits the group can be put in pairs. Have the pairs sit back to back and repeat the exercise using two way communications and find that the patterns come out closer
10.00am: Presentation (Agile Tools & Maturity)
11.00am: Brainstorm / Retrospective: What would make this a better team -> how can we make a difference in 24 (8) hours
The idea was to review the good and not so good of the team and help determine the issues the team would like to tackle.
12.30pm: Iteration 0 / Planning / Lunch
2.00pm: Iteration 1
Including a quick planning session
3.30pm: Iteration 2
Including a quick retrospective and planning session
9.00am: Standup
Overview of highlight of yesterday and what planned to do today.
9.30am: Iteration 3
Including a quick retrospective and planning session
10.30am Iteration 4
Including a quick retrospective and planning session
12.30pm: Developer Practices discussion / lunch
Based on the development practices prescribed on the Donkey open source project.
1.30pm: Iteration 5
Including a quick retrospective and planning session to ensure ready for the 3pm demo
3.00pm: Demo Showcase
4.00pm: Closing Statements and circle
Well, it turned out better than I could have imagined! Iteration 0 everybody turned a bunch of PC’s in boxes and chairs and tables into 5 distinct teams. Story walls went up, planning started and the software required was downloaded (or people remotely accessed their work machines). Pair programming naturally happened (the limited number of machines helped this) and teams supported other teams when they ran into problems or needed assistance.
The 5 teams focussed either on stuff they wanted to learn or things they wanted to achieve to help their everyday work. The projects attempted roughly consisted of:
The morale was high at the end of the two days, everybody clearly learnt something and the developers were asking when the next event was. Success!