3 ms·
In my experience, communication skills are always the bottleneck. > But with the coming-of-age of IoT and ubiquitous connected services, we call them "stream-a
by goodroot 7y ago
In my experience, communication skills are always the bottleneck.
> But with the coming-of-age of IoT and ubiquitous connected services, we call them "stream-aligned" because "product" loses its meaning when you're talking about many-to-many interactions among physical devices, online services, and others. ("Product" is often a physical thing in these cases.)
Foreboding over IoT is not a strong argument against product teams. Whether it is product teams, streams, microservices, or monoliths: people have limitations on how they can maintain equilibrium and the current set of processes and tools overwhelm it at the cost of productivity.
I agree with the spirit of the argument, but I think it's counter intuitive to suggest "yet another" thought construct based on a premise of under-loading cognitive faculties.
- flying_sheep 7y agoI think it is more than communication skills. Communication is effective when something is "speakable". This implies both parties has good abstraction over the same thing. But when the system is overly complex (no matter monoliths or micro-services), it is impossible to build a good abstraction. Just considering a n parameters boolean function. You can build a simple formula around it and communicate well if there is simple pattern. For example, f(x1, x2, ...) = x1 When there is some exception? Fine, we can still talk about general pattern, while communicate particularly about the exception. But when the mapping gets more random, at some point no one can describe it without going through each value one by one. The complexity will become O(2^n). You will spend whole day to communicate only tiny part of the function
- atoav 7y agoAs somebody who worked quite a bit on various smaller film sets it always shocka me just how bad people in IT often are when it comes to communicating either within their teams, with their code or with non-IT people. It certainly got better in some ways, but nowhere near the military precision of a well tuned and experienced film crew.
- slowmovintarget 7y agoBut film crews don't have to invent a vocabulary for each film. The special terms used are all the same. Developer teams juggle multiple special-purpose vocabularies specific to the technology stack they use, the techniques they employ within the technology stack, the language of the domain they are encoding in software, and the language of the software solution itself. The set of vocabularies gets expanded or swapped every time you add a person, a technology, or a new project. Of course we're "bad" at communicating! It's a harder cognitive problem space to convey meaning in.
- taurath 7y agoYou can absolutely create a culture where there's a shared amount of base concepts though. Communities form in code around those vocabularies - if you have no shared vocabulary you don't have a team, you have a bunch of individuals.
- Benjammer 7y ago>communication skills are always the bottleneck Conway's Law[0] says that communication will have a huge impact on most of the architecture design and roadmap itself, not just as a bottleneck. [0]https://en.wikipedia.org/wiki/Conway%27s_law https://en.wikipedia.org/wiki/Conway%27s_law