Communicating Effectively in Agile Development Projects

[article]
Summary:

In today’s fast-paced workplace, software developers and project managers are confronted with a painful paradox. They are faced with continual pressure to accelerate the development process, but this “need for speed” can result in communication failures—and the accompanying project and quality problems.

In today’s fast-paced workplace, software developers and project managers are confronted with a painful paradox. They are faced with continual pressure to accelerate the development process, but this “need for speed” can result in communication failures—and the accompanying project and quality problems.

Business imperatives are unlikely to change any time soon, thus project managers must redouble their efforts to maintain efficient and effective communication.

Agile: Solution or Snake Oil?
One of the first communication issues to address is the meaning of the phrase “agile development.” To some, “agile” refers to a collection of specialized software engineering practices (XP, RAD, SCRUM, rapid prototyping) intended to make conscious choices about trading reduced scope and additional resources for reduced development time. For others, agile is a catch phrase to sell tools, new methodologies, or seminars—each promising to further reduce software development cycle times. Whichever definition you prefer, schedule pressure can lead to disaster as teams cut corners and try to decide what not to do in hope of achieving tight schedule goals.

Cautious Hand-Offs
The baton frequently drops in the hand-off between the users and analysts who capture requirements and the designers and developers who interpret and implement them. A public sector project my wife recently managed was for a client department that had specialized vocabulary about its business administering claims against the government and administrative hearings to adjudicate those claims. The client purchased an off-the-shelf case management system typically used by law firms. During a design review of workflow customization she discovered that some of the terms used by the client were similar to terms used by lawyers, but different in some critical ways initially misunderstood by the vendor. Extensive and ongoing user involvement was essential to identify and resolve these issues before costly implementation mistakes.

Specialized development processes generally benefit from improved communication between customers and developers. As Ken Pugh, software consultant from Pugh-Killeen Associates in Durham, North Carolina points out, “With agile, the customer needs to be available so that the details of requirements (stories) can be discussed and explained. If technical issues implementing a particular requirement become relevant, the customer and developer can work together to determine the solution.” 

Unfortunately, project sponsors often do not understand the discipline and resource commitments required to execute these processes successfully. Agile is not a cheap way to quickly build systems, but it can decrease development time if executed well. Making sufficient, knowledgeable customers integral members of the development team to facilitate communication exceeds the budget allocated to many projects, and the results are predictable.

The emphasis of agile methods is on timeboxing the work and controlling the scope to fit in the timebox. This can only be done by understanding the bigger picture and how this piece of work fits in and constantly communicating and setting expectations as the work uncovers issues that may threaten the timebox. 

The successes attributed to agile methods can often be traced to small teams of developers and customers who are co-located and focused on the effort at hand, which naturally minimizes some of the communication challenges. The speed improvement doesn’t come because programmers type faster, but because each keystroke is more useful and results in fewer errors to correct.

Better, Cheaper, Faster
To many, agile development means tying to deliver software under ever tighter time constraints. Asked to share agile insights, Bent Adsersen, independent Danish project consultant offers the words of Roman emperor Augustus: “Festina lente”—Latin for “Hurry slowly.” Avoiding panic and the chaos it engenders is key. For Adsersen, this involves taking the time to establish sound habits at the start of the project. He encourages taking the time to establish cultural norms from the outset that make solid, frank feedback both acceptable and appreciated.

Compressed time frames strain communication. Graham Oakes, a software consultant in London suggests, “The communication issues [of agile] are all the same, but there's less margin for error and more opportunity for things to go wildly off course in a week. To paraphrase Bent, to move faster you have to move slower—take time for regular, small communication sessions so you can steer.”

Stay the Course
Oakes points out many software development practices that improve the quality and timeliness of communication as well as software work products often are improperly sacrificed for the sake of speed by teams under pressure. “Tailor processes to the circumstances, but don’t simply drop review and other quality assurance processes to save time,” Oakes warns. “Defects cost time.”

Some “Legacy” Work Products Aren’t Foolish
In my experience working on large projects, work products like requirements specifications, architectural specifications, and detailed designs are intended to record complex ideas so they can be reviewed for consistency and clarity, then clearly communicated to others. When schedule pressure results in reduced clarity or content of these work products, misunderstandings are propagated forward and snowball.

User Comments

1 comment

About the author

Payson Hall's picture Payson Hall

Payson Hall is a consulting project manager for Catalysis Group, Inc. in Sacramento, California. Payson consults on project management issues and teaches project management. Email Payson at payson@catalysisgroup.com. Follow him on twitter at @paysonhall.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Nov 09
Nov 09
Apr 13
May 03