In an age where there is seemingly an app for everything – or the potential for one – companies don’t want to waste any time developing software, lest they are beaten to the market by competition.
This need for speed is boosting the popularity of agile software development. Compared to more traditional software development methods like waterfall, agile speeds the process by having developers work in iterative cycles called sprints.
Serena Software just released a survey it conducted at the Agile 2012 Conference, showing that while adoption of agile is growing, it’s hardly ubiquitous. Forty-nine percent of the surveyed companies said they were doing some agile development work.
The good news is, 52 percent reported being happy with their current agile projects. Just 15 percent said they weren’t happy with agile projects. Given that it’s the rare software project in which all of the people are happy all of the time – or even most of the time – those seem like pretty good numbers.
The biggest challenges around agile, according to survey respondents, involve the need for greater communication among all stakeholders. This isn’t surprising, since agile calls for business analysts, project managers, developers and testers to work together more closely than they may have in non-agile projects.
Can’t We All Communicate?
Somewhat surprisingly, managers and developers were largely in agreement on the top challenges, though there was disparity on the issue of testing team sprints. Forty-nine percent of developers mentioned adequate testing as a problem, while just 25 percent of managers did. Four of the five biggest roadblocks mentioned by survey respondents involve communication.
The single largest challenge, mentioned by 51 percent of managers and 52 percent of developers, is understanding and prioritizing customer demand.
Communication can be tough even for teams located in the same office, so it’s no surprise it may become even more difficult for dispersed teams.
“In smaller co-located teams, it’s relatively easy to have daily face-to-face discussion of stories, status and roadblocks. However, the more dispersed the teams, the greater the number of barriers. Many people cite time, language and culture as typical barriers for distributed software teams,” says Miguel Tam, Serena Software’s senior product marketing manager. “As agile teams get more dispersed, so does communication with customers. Sometimes one team will take the lead with customer interaction, and other teams will have to ensure they interpret customer needs correctly. Other times, different teams will work with different customers, and at the end of the day, all the teams will have to coalesce around what makes the most sense for all customers.”
Making Agile Work
Tam says the best way to deal with communication challenges is by ensuring there’s a defined process for communicating and sharing information across teams and tools. He offers two suggestions:
- “The process for sharing information needs to extend beyond core development teams to embrace the entire development lifecycle. Our survey showed that customers, support and IT operations often had little visibility into releases. In order to overcome communication challenges, all stakeholders should be considered.
- “It’s important to think globally but act locally. This means that while there should be a standard global process, there still needs to be enough flexibility for individual or regional teams to develop products the way they see fit – whether it’s agile, waterfall or hybrid.”
Last month, we shared some excellent tips from ESI International’s Matthew Ferguson on keeping a positive dynamic with dispersed development teams, all of which should work well for agile teams. Among them: Use verbal communication as much as possible, and create a succinct message to tie the team together.
Dispersed Team Difference
Despite the challenges, Tam says dispersed agile development teams do enjoy some benefits.
“With time zone and cultural barriers minimized, it’s easier for development teams to work more closely with customers who are located nearby, helping ensure they understand what customers want,” he says. “For example, a French development team would find it much easier to work with a European customer than to rely on a single team located in the U.S.”
Dispersed teams are also likely to benefit from more diverse viewpoints than co-located teams, Tam says. “Dispersed teams can learn unique ways of solving problems from each other that they may have never encountered if they were all located in a single place. Being able to take those best practices from one local team and replicate them across the entire organization is perhaps the greatest opportunity of all for distributed teams.