Home > Articles > Software Development & Management > Agile

Communication: the Key to Successful Software Development

  • Print
  • + Share This
Everyone on the product team has to speak in compatible terminology, or nothing will get done (or done correctly, anyway). In this article from The Coad Letter, Stephen Palmer provides groundwork for good communications within and outside the team.
This article originally appeared in The Coad Letter. To subscribe to the Coad Letter or other TogetherSoft publications, go here.
Like this article? We recommend


When we examine two developers writing a software application in their spare time, we see little that we would call a formal process. However, when we examine a project with hundreds of developers distributed across multiple locations working to develop a large software system, process often seems to be all we can see. Both examples do have process, but the first is much simpler and very informal. It's most likely maintained wholly within the minds and interactions of the two developers who, over time, have learned to communicate very effectively with each other. In larger projects, the processes tend to be both much more visible and much more formal, although you'll still find many small "processes" in a large organization that are hidden, "understood," or part of the tribal knowledge and not recorded anywhere. In fact the processes (not necessarily productive processes) that last the longest are those that become habit: "It's just the way we do things here." One goal for a process designer is to make the process straightforward to learn and remember, so that following it becomes habit as quickly as possible.

So what are the fundamental differences between two developers writing software in a garage and thousand-person, multimillion-dollar software development efforts?

Those who work in the real estate industry tell us that the three most important aspects of real estate are location, location, and location. The software development process equivalent is communication, communication, and communication. Communication is taking place constantly at every level within a software development process. In fact, no process (work) can occur without it! In failed projects, communication or failure of it at some level is usually a major contributor to the project's downfall.

If we consider developers as nodes in a communications network, all potentially linked to each other by communications channels, there is only one channel between our two developers in their garage. However, as we add more developers, the number of potential communications channels grows geometrically. Among 4 developers there are 6 potential communications links; with 10 people, there are 45 potential links; and there are 4,950 potential communications links among 100 individuals on a team.

If not managed, either too much time will be spent communicating and nothing will get done, or there will be too little communication and results will not integrate and work together. As a team grows larger, managing communication becomes increasingly difficult.

  • + Share This
  • 🔖 Save To Your Account