I always dreamt of being able to collaborate more at work. Perhaps it’s a lack of confidence in my own abilities or a desire to be close to others, either way I’m happy and more motivated working with others. Working in an office surrounded by other developers -- each of us trying to solve the same problem independently -- feels like madness, so what stops us working together?
Why do we work alone?
I’m scared that I might not be what you think I am
When I applied for your job I my CV listed a long list of languages and technologies I could do. When you interviewed me you tested me on some basics and left the rest to hope. Now you expect me to know it all, if I work with you I feel vulnerable.
As programmers it’s our ability to learn that makes us effective, what we currently know, our experience, matters but that’s also a function of our ability to learn. We learn from each other.
I’m scared that we’ll disagree
I know we don’t alway see eye to eye, at least if I’m on my own I know I can do it my way. If we disagree what will we do? I’m uncomfortable with being told I’m wrong. If you’re way really is better where does that leave me?
I’m scared of a talking shop
I know what I’m doing, lets just get on with it, once we start talking about it we’ll never get it done. Worse still our solution will be a result of groupthink, nobody leads, nobody challenges, we just settle on a dirty compromise.
Why might we work better together?
You give me hope
Creating software, or fixing it is hard. Everyday we hit problems that stump us. Alone I get disheartened, I lose faith in my own abilities and those of the others on the team. When working together we support each other, there’s someone to listen to our frustration, someone to suggest an alternative. We share the pain.
You give me perspective
Sometimes I go down a path that’s takes us away from where we need to go. These rabbit holes can be expensive, when there’s little collaboration there’s nobody to stop me. I see developers becoming obsessed by these rabbit holes, struggling to let go of something they’ve started, no matter how little benefit it brings.
You challenge my ideas
We create software to solve problems that nobody has solved before, otherwise we’d just by it off the shelf. If other people are also trying to solve this problem we have to do it better. Finding better solutions requires clear critical thinking. Questions that dig deeper into a problem, that challenge our limiting assumptions and spur creativity allow that.
You bring new ideas
My ideas are limited by my perspective and my assumptions. All those things I’ve seen and done in the past are completely different from all those things you’ve done in the past. You see this problem differently, we’ll come up with different ideas, and we can challenge them.
I get better at collaborating
The more we collaborate the better we get at it. I lose my fear of what you might think because you “tell me” what you think. When we disagree we get excited about the learning that will emerge from our differences. I grow more confident because together we are creating solutions that we couldn’t have done alone.