One of the most important aspects of a company is its team and finding how teams can collaborate effectively. It’s a common approach to separate people into teams and tasks, but is that the most efficient way to accomplish your goals? Here to tell us is Woody Zuill.
Woody is one of the original founders of Mob Programming, taking a “whole team” approach to teamwork in software development. He’s also been programming for 35+ years and has 15+ years as an Agile coach. He knows what constitutes an effective and collaborative team. Join us to hear him share his expertise on today’s CTO Studio.
In this episode, you’ll hear:
- Why the work of the software development team is more than just writing software.
- How is mob programming different than pair programming?
- Why is communication more than just someone expressing their idea?
- What is context switching and why is it so ineffective?
- Why it’s better to work slowly on the right thing versus quickly on the wrong thing.
- And so much more!
Woody helps teams to think differently about collaborating, efficacy, productivity and overall happiness in the software development process. In general, he is most interested in finding ways to make it easier for people to work well together. It’s also important to him that we all question the things we do without questioning, the kinds of things we have a deep belief in because we tend to not question those things.
This means even the traits of Agile are to be questioned – it’s not the untouchable document that so many tech leaders make it out to be in my experience. It’s about continuing to question the manifesto and why and how and how does this still apply.
Woody says this is a brilliant place to start. The Agile Manifesto for him has done a really good job of saying here are some things that are really important to us as we explore better ways to manage the creation of software or to go about doing that work. Woody doesn’t think it (the Agile Manifesto) was ever meant to be a be-all-end-all or some 10 commandments type of list! It’s simply four things discovered to be important.
He believes the people who put together the manifesto understood the massive importance of collaboration, and that we cannot collaborate on things if we aren’t working on them at the same time or if we are working on different things or if we don’t have enough time and space to do so.
His response led me to ask how much time do we waste when we collaborate? Woody quickly reframed the question: instead, he would ask how much time are we wasting when we separate people who should be collaborating?
Are you a technology professional looking to connect with like minded people? Sign up to get connected with 7CTOs!
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.