I tend to play down the fact that I work remotely. It's an unpopular practice in the Agile world, and to be honest I'm concerned that I will be branded a Charlatan. In my talk at the Lean Kanban UK conference this week, I talked about what I've been doing at Biomni for the last 10 years and how working remotely worked in that context. After the talk, all the questions were about the way I worked remotely, and a lot of the conversation over the next 2 days included it. People seem interested in exploring this further.
And why not? If work really can be as engaging, creative and effective with a remote team isn't it something we should be exploring? Assuming we can be as effective as a co-located team, and my experience tells me that it's possible, there are an awful lot of advantages for the people working on the team and the organisation. So I plan to spend my next few post exploring this issue. I'd like to try and do some case studies on other teams working this way successfully. Anyone out there wanna talk?
Before we start I'm going to give what I'm talking about a name "Collaborative Remote Software Development" (CRSD). I'm not really sure that's a good name. What do you think? So what's my initial plan? Here's what I want to cover.
- What does CRSD feel like?
- Practices (Stand-ups, Board, Pairing, Retrospectives)
- Advantages and Disadvantages for employee and organisation
- How might I go about introducing this to a new team
As I've discovered with most things in life this isn't about the tools, it's about the people. Getting the tools right is critical but no less so than other development. The key to doing this successfully seems to be the mindset. Collaboration needs to be more deliberate at first. We are naturally social animals in the physical world, we need to learn to behave in the same way virtually. Social media may have prepared us for this. To work well it requires a certain etiquette and it requires us to balance our needs with others. There are many programmers for whom remote collaboration is easier than face to face contact.
Just like any collaborative Software Development process, we need visibility so that we can all see what's happening, collaboration so that we can continue to share and learn together, and time for collective reflection where everyone is free to express and attend to each others needs. It's part of the continuous improvement process, it will present us with new challenges and problems, but like all challenges we are there to discover ways to overcome them. I'm going to go a bit further, I have a hunch that by overcoming the challenges this constraint brings, we can discover better ways to work together creatively and better ways to work and live in our modern world. I realise this might sound a bit crazy, we'll see.