Collaboration is the key to agile software development
Posted on January 30, 2012 by Olivier MICHEL
One of the most radical and controversial practices in Extreme Programming (XP) is so-called “pair programming”. This involves two developers writing code simultaneously with one keyboard, one screen, one mouse and four hands.
“The majority of people are unaware of this new practice, especially in France. Nevertheless, it produces excellent results,” explains Arnaud Bailly. Arnaud is an agile software development specialist who joined PolySpot a few months ago. He is also a firm believer in pair programming. And it’s something that he does himself on a regular basis.
In fact, pair programming is fully consistent with PolySpot’s approach to agile software development. One of the key benefits of this approach is its instant feedback loop. For example, if a non-explicit variable is declared, it is likely to be noticed and corrected immediately.
Furthermore, the quality of the code produced by this method (one of the key requirements for agile software deployment) justifies the fact that two developers are assigned to the same task.
Development as a social activity
“Pair programming also gives developers another human being to communicate with, instead of an unresponsive machine”, continues Arnaud Bailly. In his view, development is primarily a social, collaborative activity.
While pair programming is, admittedly, an extreme example, it is nevertheless revealing. In order for it to work properly, the developers have to put their formal, hierarchical relationships to one side. In general terms, one of the 12 principles of the agile software development manifesto states that the best results are gained from self-organising teams. The R&D manager’s role is therefore changing, with greater emphasis on team leadership and coordination.
Contrary to popular belief, agile software development (as with other collaborative practices) demands more – not less – rigour. One of the key challenges is to develop successful teamwork. Unfortunately “software development is not seen as a team activity in France”, bemoans Arnaud Bailly.
There are a number of reasons for this: engineers receive excellent technical training but have no software development background, French companies tend to be “traditional” rather than “collaborative”, etc.
Agility involves more than just R&D
Within an R&D team, these challenges can be overcome with relative ease. However, it can take much longer and be much harder to roll out agile methods across all departments and set up the necessary rapid feedback loops. This process affects the entire corporate strategy and a wide range of departments, including marketing, communication and consultants.
And for a software developer in particular, agility must extend way beyond R&D if the company is to reap all of the benefits that it offers.
PolySpot is now fully committed to this new approach. Although we continue to use our existing resources (software code and organisation), we have started to conduct a range of experiments, including one customer who is testing a prototype, involving rapid feedback loop exchanges. “This new approach cannot be implemented without trust”, concludes Arnaud Bailly. Trust is the key word that underlies every collaborative project.
No related posts.
Comments
One Response to “Collaboration is the key to agile software development”
Leave a Reply


Forum about the processing and research of information in companies. Beginner, experienced, member of the Lucene community or passionate about these subjects, find all the necessary information on PolySpot and its ecosystem. Find, share and stay informed with the PolySpot blog!


January 31st, 2012 @ 4:56 pm
Yes, software development is a social activity not a lonely pursuit. I think many organizations miss that (not just in France.) Pair programming, daily stand-up meetings, team rooms, shared office space, etc. help to improve socialization. Better software is the end result.