3 ms·
Communication problems usually come down to people not understanding each other, which has many causes of course. Most of these have to do with people being all
by peterwwillis 6y ago
Communication problems usually come down to people not understanding each other, which has many causes of course. Most of these have to do with people being all different. When people are all the same, less communication problems.
But having people all the same then introduces non-communication problems. Lack of genetic diversity is a potential catastrophe. Lack of outside perspective makes novel thinking difficult. Lack of change breeds complacency.
So you need your software to work pretty much all the same way, but you need diversity in how it works to survive environmental challenges.
Nature has a solution for this (as in most things): evolution. You mutate a bit every so often and eventually something works better. Then you stick with that and repeat. It's a continuous improvement cycle driven by measurably better outcomes from experiments.
This can work for hardware too but it's definitely not as straightforward. But no matter what you use it on, you can't have some clunky, hierarchical, reactive, conservative, single-minded power structure holding the process back. The stack will always suffer as long as there's a giant anchor at the top keeping it from being agile and mutating. It's not so much a cultural thing as an organism; if the organism can't agree on how to grow, it's not gonna fare well against competition.
- vegetablepotpie 6y agoWe’ve replicated evolution in software with free software and agile. The problem is that the feedback loops are too long to prevent damage. The systems we have make some people the slow gazelle, they get eaten and don’t reproduce. We need different people in software. We need more different people too and we need to communicate better. The real problem is the way we isolate our selves. I think the solution is less code and more understanding of what the limitations of existing code are. This requires us to prioritize communication and understanding.