Not all communication is equal. Most software developers and management will argue vigorously the opposite. #DDDesign #ConwaysLaw #TeamTopologies
1. A puzzling take on team communication is that some subset of people on a team of any size must communicate well, while another subset doesn't.
2. Another puzzling idea is that everyone on the team will achieve sense giving and sense reading on the same level. (Although few would actually know what sense giving and sense reading are.)
3. There's also the practice of management forming teams and selecting team members in a vacuum, arbitrarily, with no feedback from technical leaders.
4. There's the extreme opposite of 3, that of full self-selection of teams.
The first two of these are not true. Sure, humans and sometimes agree on where to eat lunch or the colors for a team room. Yet, agreeing on the same mental model of a complex software problem and solution just won't easily or even simply happen. Every single person, even identical twins, have different default concepts and heuristics, because they've all learned and experienced things differently and separately. Besides that some blank out on audible or visual, or at least favor one over the other.
It takes a lot of careful communication, which is not only audible or written. It requires visualization of concepts, example scenarios written and visual, and patient reputation.
The second pair of assumptions are likewise nearsighted. While point 3 is the worst of the two, even team self-selection can lead to deficiencies. One team with a lot of experience and skill could self-select on a clear or complicated problem, while another team could self-select and be ill-equiped to solve a complex problem.
Note: Some highly skilled developers work on low-complexity problems so they can introduce complex technical mechanisms, tools, and software development approaches for fun.
#TeamTopologies refers to this as cognitive load and focuses on decreasing cognitive load of all teams, with the first priority on stream-aligned teams.
The primary problem with all kinds of team compositions is management (a) viewing all developers as equally skilled cogs, (b) not knowing how to determine levels of complexity, and (c) having little idea what's going on within teams.
Skill here means mental capacity, clear, concise, complete communication; commitment; technical and software development capabilities; and willingness to challenge everything that they currently assume.
This all traces back to Conway’s Law and what I refer to as Conway’s First Axiom:
- Communication matters most
- First designs are rarely the best
- Flexible is required to improve and possibly reform teams based on the need to improve communication and possibly other skills
Don't take these for granted. Keep a pulse on all teams involved in a system solution. Adjust as necessary.
Software Ecologist, Architect, Modeler | Optimizer of Teams and Individuals | Domain-Driven Design and Systems Transformation
2moListen: https://adddot.io/podcast/s4e2/