Hereâ€™s the thing about being a developer, you work in an industry which allows you to ply your trade from wherever thereâ€™s a halfway decent connection to the internet. Although thereâ€™s been an element of remote working in most of the jobs Iâ€™ve had over the years itâ€™s probably in the last five where itâ€™s been a major component of my working life. So, with that in mind I thought Iâ€™d share how I make remote working work for me.
Itâ€™s simply not a case of waking up, opening up a laptop and bashing away at the keyboard while sitting in your pyjamas. If that were the case it would soon result in a drop of productivity and even worse, stern looks from your other half or your cat or both.
Itâ€™s all about organising yourself and your day â€“ obvious really â€“ so that you can sustain a useful level of output, meet targets and not go mad. This has to work not just for a day or two but over a period of months, perhaps even years.
The first thing you need to do is to trim your hipster ambition of being a digital nomad and working from the local coffee shop. You need a dedicated home office where you can set up your laptop with an extra screen, keyboard, mouse and anything else that allows you to work as comfortably at home as you would in your ergonomically designed company office environment. Make sure the lighting is good, and if possible, that you have a view of the outside world. But this is your home so feel free to set up your speakers, put your Metallica posters up and rock the house out at full volume if that works for you or until your neighbours complain.
The second thing you have to do is get over the hype and work in some sort of Agile way, of course your company may already be doing that if so, great youâ€™re halfway there, but if theyâ€™re not you have to become Agile. You really donâ€™t need to go overboard with this, so no need to stand in the corner of your home office every morning with a mug of coffee in your hand desperately trying to remember what you did the previous day. But, if your company isnâ€™t following Agile practices what can you do? My setup is to create a personal Kanban board using Trello and get some tickets onto it that split the requirement up into achievable stories. Prioritise these and give them some points, perhaps at the start of the week. How you do that is up to you, but I tie story points up with the Pomodoro technique of time management. Whatâ€™s that? I hear you cry, Iâ€™m glad you asked, read on.
This third thing, and the thing that allows you to sustain a long-term remote role I feel, is effective time management. When youâ€™re in an office setting itâ€™s easy to fall into the rhythms of the workplace and synchronise with your colleagues so that you can deliver your stories in a timely manner. Working from home you wonâ€™t have the calibrating effect of a fellow team member shouting â€œWhereâ€™s that bug fix you promised me this morning, I thought it was a bleedinâ€™ one-line change?â€ This is where, for me at least, the Pomodoro technique makes it work.
You can google this of course and find out all about it but in a nutshell you split your day up into chunks of time dedicated to doing some work but with a small period of rest or reflection at the end of that chunk just so that you can ask yourself have I done what it was I set out to do earlier? If not, you then have an opportunity to ask yourself why? Was it more complicated than I first imagined? Was there another problem I had to solve before I could solve the current one? Or, did my neighbour call the police as I played â€˜Bat out of Hellâ€™ at up to eleven?
The technique is just a way for you to realise that there might be some adjustment needed to a deliverable and it maybe you need to get onto Slack and ask a colleague about it so that you can get it done sooner rather than later. Simply put the technique stops your efforts at solving a problem from spiralling out of control and allows you to keep on track with the story youâ€™re working on, or at least prompts you to ask for help with it early on. Itâ€™s all too easy for a developer, to allow an unforeseen problem to lead them down a rabbit hole of unplanned problem solving.
In projects where Iâ€™m setting the points for a story, I tie in the story points to a 25-minute chunk and typically Iâ€™ll get about 10 â€“ 14 points done on a good day. Thus, I have a way to measure my output, keep an eye on my productivity and a trigger to start seeking advice or inviting discussion about a problem before it turns into a major issue.
The final pearl of remote working wisdom â€“ again obvious really â€“ is donâ€™t work any longer than you would if you were based in an office. In fact, try to work the same hours and have a lunch break away from your desk, maybe take your neighbour and yourself off to that coffee shop â€¦ but donâ€™t take your laptop.
image: “Pomodoro [day 61]” byÂ gerlosÂ is licensed underÂ CC BY-ND 2.0)