8 March 2026

Communication Is Not a Soft Skill

Technical competence loses its value in the absence of communication. Where software delivery breaks, and why the repair is a habit rather than a process.

What is harder than writing code or shipping a product? Talking to each other well enough that the thing you build is the thing everyone thought was being built.

Technical competence loses most of its value in the absence of communication. That is not a motivational sentiment. It is an observation about where delivery actually fails.

Everybody is speaking their own language, correctly

In a software team the backend engineer says service, the frontend engineer says component, the product owner says feature, and the customer says button. Every one of them is describing the same thing and every one of them is using the right word for their own work. Nothing here is a mistake.

The damage is that nobody notices the translation is happening. The vocabulary difference is visible and gets handled. The assumption difference underneath it does not, and it survives every meeting where it is never said out loud. It then travels the whole length of the delivery, from the first requirement to the deploy, and surfaces at the point where correcting it is most expensive.

Three places it breaks

Discovery and planning. Most projects take the wrong turn here. Teams answer what will be built and skip why it is being built. Product, design, test and engineering can sit in the same room, imagine four different outcomes, and all leave satisfied. Everyone is happy and everyone is holding a different product in their head.

Good communication at this stage means putting assumptions on the table in a form somebody can disagree with. I understood it this way, how did you understand it. That sentence is unglamorous and it is the cheapest correction available in the entire lifecycle.

Development. The sentence that wrecks a sprint is "actually that part changed". It is rarely a new decision. It is usually an old one that was made somewhere else and arrived late, and the delay is the communication gap rather than the change itself.

The repair is not more standups. It is better questions in the ones that exist. "Are you blocked" is a status check and it finds only the problems people already know they have. "What did we learn, and what changed because of it" finds the ones they do not.

Delivery and everything after it. A deploy is a transition, not an ending. The people who run the system cannot prepare for what they were not told is coming. The people who support it cannot help a user through a change they did not know happened. Every gap left open earlier is paid for here, quietly, by people who were not in the room when it was created.

Your architecture is a picture of your communication

Conway put this precisely, and it holds up every day in practice rather than only in theory.

Systems copy the communication structure of the organisations that design them.

As walls between teams rise, microservices turn into isolated islands. Without a shared vocabulary, API contracts blur at exactly the boundary where they need to be sharp. As silos harden, technical dependencies stop being mappable, because no single person can see across enough of the organisation to draw them.

The inverse is just as visible. In teams that communicate well, architectural decisions are written down and shared, changes are announced while they are still cheap to argue with, and technical debt is visible to everyone and carried by everyone.

The bill arrives during maintenance

The heaviest consequence of a conversation that never happened shows up long after the release, and it always looks the same. A bug arrives and nobody remembers why the code is shaped that way. A change request arrives and there is no record of why the feature was designed that way. A performance problem arrives and the engineer who made the decision has left, leaving behind a system that works and cannot be explained.

The maintenance team ends up working like archaeologists, excavating code to recover intent. That is slow, and it multiplies the chance of a new mistake, because a change made without understanding the original reason is a guess with good syntax.

Worse, the uncertainty turns into ownership disputes. That decision did not come from us. We never asked for it that way. Why does that feature still behave like that. These sound like technical arguments. They are the delayed echo of a conversation nobody had months earlier.

Small habits, not a new process

What changes this is rarely a framework. It is a handful of habits that are cheap enough to survive a bad week.

  • Write documents for people. A README that only covers how to install and run it answers the easy question. The expensive question is why it was designed this way, and the person who needs that answer is usually on your own team, six months from now.
  • End meetings with a decision. Information sharing is not an outcome. A decision, an action, or an explicit "we are deferring this" is. Leaving a room with a handshake and no record is how the same discussion gets held three times.
  • Make "I do not understand this" safe by demonstrating it. Declaring that there are no stupid questions does nothing. A lead saying "I did not follow that either" does the whole job in one sentence.
  • Ask the retrospective question that hurts. What went well and what went badly is a warm-up. Which missing conversation slowed us down is the one that changes behaviour, and it is the one most retrospectives skip.
  • Put engineering and product at the same table for architecture. Decisions made in one discipline and announced to the other produce the "but that is not what we meant" moment later, at full price.

It is a core competency, not a soft one

Software is human work. The best tools, the most modern methodology, the strongest infrastructure and every AI assistant you can buy all perform below their ceiling when the people using them are not talking to each other properly.

Deadlines slip, debt accumulates, teams tire and the grumbling starts. Most of that has a human root rather than a technical one, which is uncomfortable precisely because it means it was avoidable.

Communication is not a soft skill. It is a core engineering competency, and like any part of a system it needs refactoring when it stops serving the thing it was built for.

First published in Turkish on LinkedIn, 8 March 2026. Read it there.

More writing Back to the main site