By Robert Broneak
October 3, 2017
A small team of developers is tasked with building the special registration landing pages for a large website build. Simultaneously, other teams are working on the general registration pages, blog pages, chat interface, and member profile pages.
Collectively the team for the landing pages spends dozens of hours ideating and coding an elegant solution for how the user interface will look, function, and integrate with actual registration logic. It’s a solution that could be applied across the entire project, and they’re proud of it.
Unfortunately, the general-registration team spent a similar amount of time solving for their slice of the project. They have similar layout and registration needs as the landing pages, so their solution also is applicable to the entire site. And it’s different.
When the overlap is discovered, it’s an issue—to say the least. In addition to the wasted time and effort, now there’s tension as to the best way to move forward. Who gets to keep their work, and who has to backtrack? How did this happen?
Sometimes Agile Development Breaks
Anyone who’s worked on large agile development projects has probably experienced scenarios similar to the one described above.
In my experience, these breakdowns usually are caused by a lack of natural, human-to-human communication. They’re the result of organizing work around (and through) agile task boards, without the support of robust communication processes and engagement.
Siloed and layered communications are more likely to cause problems like this in multi-team agile projects. But even a single team is susceptible to mistakes too, if person-to-person communication breaks down.
Without established processes for regular, nuanced communication, individuals and teams become overly dependent on the digital toolset of the agile process. These tools give individuals the feeling that they’re part of a team, but real, interpersonal communication has a tendency to drop off. As a result, it’s easy for different individuals or teams to lose track of what others are working on.
Furthermore, project success becomes measured against the completion of charts and checklists, instead of by how effectively and efficiently the build meets design aspirations. Clear, user-focused design solutions often are diluted or lost across a series of stories, tasks, and burn-down reports.
Agile Communication Tip #1: Stay Together
While it’s nice to have developer teams working in close proximity to one another, that’s not what this is about. Rather, this is about having a well-coordinated plan of attack for a project.
When assigning stories and tasks, it’s useful to have teams working on tasks that are the same, or similar in nature. This naturally creates a shared understanding of the problem and typically result is a more streamlined solve. With good communication the teams will simultaneously identify how the solve needs to hook up with other components and tasks. This creates clarity and predictable patterns for teams.
Putting together a coordinated work plan like this requires a certain amount of thinking up front. At Azul Seven we put all the UX and all the designs up on the wall, as well as the stories, to start identifying similar pieces and components.
Then we simplify the groups, making the components a little more abstract and creating variations of each. This is a technique for getting the whole team—or for larger projects, the leads—involved in analyzing all the problems and pieces in play. As the agile process evolves, the same people revisit and revise the groupings on the wall.
Agile Communication Tip #2: Utilize Roaming Workers
I like to think of them as roaming worker bees.
They’re the developers who float between teams providing additional lift as needed, observing alignment and creating better communication and cohesiveness between teams. This also could be a team lead who regularly checks in with other team leads. They have a set time and process for discussing similar problems across teams, sharing ideas, and checking for overlap.
Agile Communication Tip #3: Establish Regular Facetime
To truly safeguard against lapses in communication during agile development, each team member must want to collaborate and be aware of what others are working on.
Establishing a team culture of curiosity and generosity is easier said than done, especially with distributed members and diverse personalities.
In my experience, repeated prompting by project managers doesn’t result in better lines of communication. But an established schedule of daily or weekly check-ins can. The trick is to make these check-ins quick but friendly.
Face-to-face or via video conference is especially helpful for establishing rapport, and everyone gets a couple minutes to talk about what they’re working on and field questions. Consider working in a running game of trivia or balderdash to loosen things up. It may feel awkward at first, but over time it can really build team cohesiveness and open up lines of communication.
The truth is, interpersonal communication can sometimes feel like an unwanted distraction when we’re cranking through a coding project. It’s much easier to just leave a note on a Slack channel and hope for the best.
But that’s why as a team or project lead, it’s especially important to build a culture of face-to-face collaboration. It’s not just about avoiding redundancies and inefficiencies. It’s also about needing to be fully engaged, as humans, in the creative process on all projects. If we’re going to succeed in making digital projects that are delightful and compelling to other humans, this collaborative and open communication is essential.