“Having recently embarked on a web development project with a friend (Bobby) I’ve been learning a lot about collaborative working.
After working together at a hackathon we took things to the next level with a freelance job agreed at Google Campus, London. The difference this time would be that for part of the project, Bobby would be based in Kuala Lumpur, Malaysia and I’d be based in London.
Interestingly, the same tools that allow a team in the same room to work together also apply two two individuals thousands of miles apart. We’ve used:
- Skype (ok, so maybe this wouldn’t be required in the same room)
Getting to grips with git is perhaps the hardest challenge, but once done it pays dividends (granted there’s still more commands to learn, but we get by). To be able to branch the project, work on a new feature, roll back to a previous commit when things break, then potentially merge the feature with the master branch when done… it’s super useful, but it was daunting before we started.
As a side note we’ve started a cheat sheet for all the commands we find useful working on the project.
There are three main challenges that come to mind from the experience.
- Load Balancing/Trust
- Problem Solving
1. When you’re working in a room together it’s easy to see who’s working hard and who’s not pulling their weight. When you’re working miles apart with a huge time difference very often you’re working to different schedules, on different things and there’s not much visibility. Instead we’ve relied on a task based approach that, usually, comes together just before a deadline. The lack of micro management means that we rely on trust to complete the work by the deadline we set.
2. Occasionally we come across a problem that we need to consult each other on (usually Google suffices). In this instance it would be great to both be in the same room and brainstorm the issue together. Instead we’re forced to exhaust all other possible avenues before we convene on Skype to discuss. Perhaps this could also be seen as a productivity advantage… as usually we end up solving problems ourselves that we could have wasted time talking about to the other person.
3. It can get lonely working on a project when your team is elsewhere. It’s the little things, like being able to discuss over lunch the latest problem you’ve tackled. Funnily enough others aren’t too interested; so we have to save these nuggets for our Skype calls.
Lastly, what has been invaluable about the experience so far, is the learning curve we’ve been on. With a client, deadlines and money at stake it forces us to pick things quicker than we might otherwise. It cuts away the excuses for slow learning and instead forces us to be productive with our time. If anyone’s teetering on the edge of development I’d encourage them to “take the leap”, if they can, and develop for a client.”