This Bamboo customer story is the first of an 8-part blog series about why so many developers adopt continuous integration, written by John Ferguson Smart.
This Bamboo customer story is the first of an 8-part blog series about why so many developers adopt continuous integration, written by John Ferguson Smart.
John is a consultant and trainer specialising in Build Automation, Enterprise Java, Web Development, and Open Source technologies, currently based in Wellington, New Zealand.
Johan’s Outsourcing Blues
Johan is a project manager who works on internal corporate web applications for an IT shop in Frankfurt, Germany. He has a team of 10 developers, testers and BAs based in Germany, as well as an offshore team of similar size based in Bangalore, India. The project is not without hitches – co-ordinating work between teams in different parts of the world requires a much bigger overhead in time and effort than Johan’s organization had initially thought. The offshore approach was imposed on the German development team from above, and is unpopular with many of the local developers who view it as a threat to their own jobs. Johan knows that this is not insurmountable, but that the two teams need to gel better before they can work together effectively.
The language barriers also make things difficult. Although all the team members can get by with written English, many are not confident with spoken English,
One Step Forward… Two steps back
Nor do code conflicts where a developer over-writes the changes made by another, which has happened a few times as well. For example, there was the time Jagath, a young developer on the Indian team, wanted to update his code before committing his changes. Doing this, he noticed some conflicting changes coming from the Frankfurt developers.
This sort of thing is symptomatic of a broader communication problem – the developers on both teams are largely unaware of work done outside their own IDE until it is too late. There is little communication between team members on why particular changes are being made, and little opportunity to give feedback on these changes. This inevitably makes integrating the work done by each time more difficult, and can also lead to hard-to-find issues caused by misunderstood APIs or architectures.
Driving for team improvement
Johan needed a way to encourage his developers across both teams to collaborate more closely. He knew that communication is a key aspect of any development project, and even more so in the case of separated teams, so he needed to ensure that the communication channels between team members are open and being actively used. Everyone needed to know when changes are being made to the code, what they are, and whether they are compatible with their own work. Team members needed to be encouraged to communicate more spontaneously about code changes and technical solutions, and about potential code conflicts and integration issues.
Adopting Continuous Integration
Johan decided to attack his teams communication issues by adopting Bamboo. Since written English represents a lower communication barrier than spoken English, Johan has installed, and encouraged the use of, an internal IM server. All code commits and build results are sent to all team members by IM.
Stay tuned for the next Bamboo customer story when we talk about aligning work habits.
What’s your adoption story? Tweet Atlassian or leave a comment below about how and why you adopted CI.