Jim Chiang, CEO of NeoContext, an Agile consultancy, says, “One of the biggest hurdles in outsourcing is getting over the collaboration hump. It’s too easy to put together a project plan and send it over the fence for implementation. We all know this is a preferred strategy, but it doesn’t work.”
So how do applications development and maintenance (ADM) engagements solve the collaboration challenge? Chiang says Agile “forces collaboration at the most minute level.”
Agile skills may become increasingly useful as 2011 begins and more organizations seek shorter-term outsourcing contracts. According to Op2i’s 2010 report, over 50 percent of firms are seeking outsourcing contracts less than one year in length, a challenge when trying to “build a solid partnership,” according to the survey’s commentary.
Here are some real-world lessons in how Agile thinking lays the foundation for ADM success.
The Agile story
A group of experts developed Agile from a variety of other project management styles such as Extreme Programming, Waterfall, and Scrum. The group put together the Agile Manifesto, which describes the goal of Agile in 12 points. The points encourage continuous communication, collaboration among teams, and shorter delivery cycles for quicker understanding of the implications of choices. The Manifesto holds customer satisfaction as a top goal and believes Agile delivers this through shorter development cycles accompanying workable versions of code and an increased focus on communication.
According to David Anderson of David J. Anderson Associates, author of Agile Management for Software Engineers, Agile use in an outsourcing relationship creates a focus on “creating processes that make progress with imperfect information, establishing a high-trust working relationship with the service provider, and minimizing time to market.” Anderson says implementing processes where “the parties can detect errors quickly via fast feedback loops” is a benefit of using Agile. But he warns that without the right mindset across the team, focusing on high-trust relationships across distant groups, the “project will lack agility and the relationship is likely to implode quickly.”
Agility is inherent in Agile projects because there is a stronger focus on building relationships that create trust in decisions made by software engineers, according to Anderson. The vision is to use the brains of the team. “Teams find the best path for the project through collaboration, going beyond specific documentation and plans to make the right decisions inside changing environments,” he says. This vision may be difficult inside outsourcing teams with so much distance between them, causing projects to fail. “Without trust, projects operating at Agile speeds will fall apart,” says Anderson.
Agile helps ADM projects three ways:
- Dealing with timing issues
- Forcing collaboration
- Increasing product quality
Timing
“The most common issue I see with my clients is outsourcing providers writing the code in the wrong language,” says James C. Roberts, a lawyer from Global Capitol Group. “All my clients have clauses that require the outsourcing team to re-do the work, free of charge, but this leads to delays no one planned for.”
When projects live somewhere else, timing becomes increasingly important and more formalized. It’s impossible to drop by someone’s desk and discuss. Dan Neumann, from NeuManagement, has faced this challenge managing outsourced projects in India, China, and Brazil.
“We started using Agile because the time zone challenge made it difficult to keep in close contact with the team. When we sent a project to China or India we would wait for the first deliverable. When the deliverable missed the mark, we had to find a better way,” Neumann explains.
Agile was the answer,” Neumann recalls. “It was easy to see quickly where we were going right and where we were going wrong.” His company started using typical Agile structures that included a long planning meeting at the beginning of each cycle.
But, the company had to make many modifications because of time zone differences, 12 to be exact. Time zone differences are one of the biggest challenges outsource managers face. Neumann and his team were up late and early across the globe trying to work together. He approached the outsourcer about doing shorter iterations to reduce planning time. They experimented with one-week cycles pulling a subset of the outsourcer’s team members to focus on smaller project iterations.
Neumann felt this change was successful, but the outsourcer was not pleased. The team used in the trial was unhappy they were singled out, wondering why they couldn’t keep up with the larger team, which was continuing to get longer, more complicated assignments. Neumann says, “It took time for the outsourcer to see we were not giving the team short assignments because we didn’t trust their work, or because they didn’t know what they were doing. We carved away at the process to make it shorter so both sides could benefit.”
On the whole, Newmann, who is an Agile coach, says the time spent engaging groups frequently leads to better products. “Agile takes time. There is a sense that it would be easier for the American team to put together a detailed technical review document and send it to the offshore team. The reality is that things change quickly in technology. When we use Agile, we can change ideas, approaches, and the project as a whole quickly.”
Jim Chiang argues that “project predictability is a key problem” inside projects that leverage alternative project management methods. Chiang recalls one project he was hired to transform to the Agile methodology. The buyer gave the outsourcer a time frame of four months, which quickly turned into eight without a deliverable. The buyer feared the project was failing and called Chiang for help.
“The outsourcer was busy developing the back-end system, which is essentially a black box without a user interface to evaluate it. But the buyer had no way to understand it without a visual way to review it,” recalls Chiang. This approach left the project without a feedback loop. “The outsourcer had no way to show the buyer progress or to intelligently comment on changes to the specs,” reports Chiang.
Chiang pushed the outsourcer to create a user interface for the buyer to see the existing back end, a common first deliverable in Agile methodology. Chiang says when buyers experience the product live, they have the power to evaluate how to proceed. “The buyer’s business owners lacked the resources to have an educated conversation about what was and was not important when they considered changing the original specification. This needed to change,” says Chiang.
After the first iteration arrived, the buyer’s executives could literally see progress and make decisions,” recalls Chiang. Chiang transitioned the rest of the project to the Agile methodology. “The buyer felt back in control of the project because it was clear where the project was and how it was going. The buyer could weigh features against the cost of development and potential delays in release. As a bonus, the change in methodology transitioned the outsourcer into a business partner with the new ability to be part of this business conversation providing the timelines each feature set would take to deliver,” says Chiang.
Collaboration
Neumann’s next project will use a service provider in Brazil. He plans to include its team in the first meeting. He says his most successful outsourced projects included on-site interaction. “We worked with an Indian team with the team leads sitting with us in the States for most of the project. Having a local interface was key to the project’s success,” he says.
Agile forces collaboration,” something virtual teams have great difficulty with unless it’s a formal practice,” Chiang of NeoContext, observes. He says one of the bonuses of constant collaboration that is a hallmark of Agile is it encourages groups to recognize context questions. “We worked with one team that did not understand what just-in-time delivery was.” This concept, which is standard language in the United States, was foreign to the outsourced team. The buyer had to educate the service provider’s team on why the system needed to work a certain way; they needed to understand U.S. customers expect products to arrive in a timely fashion.
It’s important to talk with the team about the concept you are delivering, posits Chiang. “Spending time with them, explaining why something works a certain way in the United States helps the outsourcer be more successful,” Chiang says. He adds using the small cycles in Agile forces these conversations because it’s clear early if the team doesn’t get it.
Outsource lawyers recommend keeping close track of projects with timely deliverables and frequent meetings. “Clients with successful projects are the ones that write meeting requirements into contracts,” says Roberts. Roberts adds that any process that encourages this behavior, Agile or no Agile, leads to greater success. “Teams have a lot of obstacles when working so far apart, literally and figuratively. Creating contracts that encourage performance work, but the teams need to develop their own methods for effective implementation.”
Product quality
When you know exactly what is happening with the project it’s hard to end up with the wrong product. Most lawyers advise that contracts should clearly define projects and contract clauses protect organizations against poor quality. Roberts says, “Contracts should have ongoing measurements and acceptance procedures inside of them. This avoids unwelcome surprises. No one likes surprises.”
Agile avoids surprises. By forcing collaboration and consistent checking on deliveries, it allows for a continuous review of product quality. “Because colleagues right next door used to do so many of these projects, the American model is to throw the project to the new team and expect them to get it done in the same way their old colleagues would have. Plus people are busy and often don’t have the additional man-hours to be checking on quality. They also see constant checking as doubting the person doing the work,” says Chiang.
He says his clients want their outsourcing team to think outside the box. “While it’s possible to get innovative thinking from outsourcers, the buyer needs to bring the team into their culture so they understand the expectations and their definition of creativity,” advises Chiang.
Expecting creativity is dangerous, according to Chiang, without checks in place. “Agile forces buyers to check on quality because the team doesn’t know what to do without the next planning meeting.”
As the experts in the story convey, Agile positively affects timing, collaboration, and product quality in a positive manner. Any team can leverage these features. Spending more time managing projects with a sharp eye for quality, engaging the team frequently using collaboration techniques, and finding ways to meet with the complexity of time zones will help any project move into the positive column.