Communication is the key to agile.

People in a meeting.
Communication is the key to successful agile.

Gigantic enterprise projects require thousands of developers and countless hours of work.  I am working on one of these projects, and I have learned a few things along the way.  Today, I want to discuss the importance of communication if you will be a successful agilist. 

When working with extensive enterprise applications, you should understand that no one will know how the system works. A person will understand how a particular portion works but not how the entire system operates. Today's giant business software applications are so big and complex that it is impossible to understand how information flows through the system comprehensively. Confronting this reality requires numerous people's collaboration to outline how a system operates.  

When a group of experts comes together, they collectively decipher the system's operations.  Once they have a general understanding, they begin creating user stories to elaborate on these operations and distribute tasks among different teams.   With software teams spread across the globe in different time zones, communication challenges are inevitable.  This is where the pivotal role of product owners and scrum masters comes into play, as they strive to connect the various teams and facilitate the completion of tasks.  It's a demanding and meticulous process. 

I use a technique I learned in my undergraduate days as a speech and debate person.  I tell people what I am going to say to them.  I tell them and finally tell them what I just told them.  These techniques sound redundant, which is the point of the entire exercise because repetition aids in the retention of information.  

For instance, we add extra fields to an API, so I call a meeting to discuss it with the vendor and the team consuming its API.  I send out a meeting notice with a brief plan.  During the conference, I said, "We will cover the new fields in the API and how they will be consumed."  The next portion of this meeting talks about the fields and how the team will consume them.  At the end of the session, I review what we discussed and, if necessary, follow up with an e-mail and some user stories the teams need to finish.  

Notice that the meeting goal is clear and stated up front with a clear purpose. We work toward that goal. Finally, we restate how we are going to achieve that goal. This helps to leverage the communications systems used in the office, including e-mail, instant messaging, and project management tools. It is a way to hold people accountable and make sure they understand. 

Checking for understanding is essential.  It is one thing to say something, but understanding is a different skill.  It is why you should ask others to repeat what they know.  When there is a disconnect, you can clarify the misunderstanding.  For a busy person, communication like this can be exhausting, but checking for understanding will improve the quality of work on the team.  The time spent talking now is going to save time for reworking later. 

On gigantic projects, it pays to over-communicate.  Tell people what you are going to tell them.  Tell them, and then tell them what you just told them.  You can thank me later when the level of misunderstanding decreases, and the quality improves.  

Until next time. 

Edward J Wisniowski

Edward J Wisniowski

Ed Wisniowski is a software development veteran. He specializes in improving organization product ownership, helping developers become better artisans, and attempting to scale agile in organizations.
Sugar Grove, IL