That is primary to him, we make an assumption that separating people and then coordinating their communication and their type of collaboration is beneficial to us. But what is the advantage to doing this? Normally people tell him something like this: When we have 5 people working on 5 separate things we are getting 5 separate things done. But he says the reality is that we have 5 separate things that are crawling towards being done, and when we bring those people together to work on one thing at a time we will suddenly get things done very rapidly and in a more beneficial way. We are also getting more feedback sooner: we have 5 sets of eyes on the code at one time, we are sharing our ideas in real-time and we are coming to better decisions and we are able to unmake decisions.
If we are integrating at certain points then when we do that we are going to find out where we differ, and then we have to have the same discussions anyway! We have to talk about why we thought something should be done a certain way (or another way), and by that time we’ve forgotten why we made so many of the decisions we made because we made them in tiny steps as we went.
The issue I wanted to raise within this topic is how to ensure everyone is pulling their weight. If you have a group of 5 or 6 or 7 people working together there’s a concern that one or two people may not contribute or be as efficient as they would’ve been if they had been knocking out code by themselves.
Woody agrees, he says the idea of efficiency is the place to start here. Is being efficient actually useful to us? There are other considerations. Being effective is what he is after, and being productive might fall between efficient and effective as well. He explains that efficiency itself means (to some degree) that we have found a way to do something with as little motion waste as possible so to speak.
So if we have a manufacturing device that is going to put two parts together and it has to reach a far distance to bring one part to the other part if we put the two parts really close to together then we’ve gotten rid of the inefficiencies of it.
But we can be extremely busy without ever actually finishing any work, so productivity is the idea that we are actually producing something and there will be an end result. But productivity really is about the outputs divided by the inputs, in other words how much are we getting done for the time involved. Effectiveness is figuring out the right thing to be working on.
So the problem is what is the right thing? Part of being effective is the process of discovery and learning what is the right thing to be working on. He likes to think we have to have a combination of being efficient and effective, but really the important thing is being effective.
You’ll also hear how that manifests and what it looks like in real-life mob programming, plus how we get good ideas, what makes some teams stronger than others and the importance of listening in team collaboration. Join us for those topics and more on today’s CTO Studio.