The traditional form of coordination in organizations is meetings. The challenge is that most meetings are incredibly ineffective and a waste of time for everyone involved. All of us have perfected the behavior of pretending to pay attention while working on other things at the same time. The problem is of course that during meetings, it is virtually impossible to do deep, hard work and work is constrained to the easy administrative tasks. Like many others, during my time in corporate, many of my days consisted of 8 hours of meetings, some hours of email and then, finally some real work in the rest of the time.
On the subject of coordination, I believe that many organizations can learn quite a lot from the architecture and development of software systems. In software engineering, there is a taxonomy of coordination mechanisms that teams use that are preferable over meetings. These mechanisms are, in order of preference, architecture-driven, continuous-integration centric, social media centric and, finally, meetings. Below, I’ll describe each of these approaches in more detail.
First, architecture-centric coordination decouples teams working at different sides of architectural interfaces. As long as both teams meet the agreed specifications on their side of the interface, there is little need to coordinate. Of course, no interface is nor should be static and architects periodically evolve the architecture and the interfaces between different parts. At these times, there will be a need for other coordination mechanism between the architect and the teams. However, with proper interface management and the use of deprecated interfaces, the coordination cost is minimal. Although this works well for development teams, it also works in other context where teams work at different sides at an organizational interface. The same requirement needs to be satisfied as with development though: the primary activities should mesh with this architecture. Some companies have perfected this model into a service-oriented organizational architecture where two-pizza teams provide services to internal and external customers through predefined interfaces and have instrumentation in place to measure each team’s performance.
In software development, a second mechanism for coordination is through continuous integration. Here, the development organization uses the build and test system as a way to coordinate between teams. When two teams touch the same component and create incompatible changes, the team that checks in its code last will run into the incompatibilities as the test system rejects their code and this team then has to fix the problem. Even though this may seem effort consuming, organizing a meeting every time we might experience an alignment problem, which is the practice in many companies, wastes lots of time by bringing two or more teams together to discuss alignment. Outside of software development, the same mechanism can be used between teams, especially when IT systems are involved. By putting clear acceptance criteria on the contributions of different teams, preferably algorithms but otherwise humans can accept or reject the contribution.
Third, although surprising to many and not the least me, social media tools such as Slack offer a powerful mechanism for teams to coordinate internally as well as for cross-team coordination. Even though it is an approach that requires time and attention from humans, rather than using automation, it often offers a better, real-time and lower effort way to maintain alignment. Although tools like Slack are used by many agile development teams, we see very broad adoption in the industry at large outside of software development.
Finally, for all the issues associated with meetings, there are times where it is the best approach to achieve alignment. There is solid research on how to run effective meetings, including the need to only invite the key stakeholders, have a clear agenda, time box items as well as record and communicate decisions. I won’t go into the details as there is so much material online, but the first step has to be that those in the meeting actually need to be there and have something to contribute. Just remember that Peter Drucker (the famous management professor) said: “meetings are a symptom of bad organization”.
Concluding, coordination is an important, but expensive activity in companies. Strategically choosing the best mechanism for achieving the required level of alignment with the right and most cost effective tool is important any organization. Just remember that in the vast majority of cases, organizing a meeting is not the right mechanism.