You developers have got it easy when it comes to staying up to date with current tech. Even if you’re not lucky enough to be working with the latest and greatest stuff like the team at PXtech, you’re at least writing code every day, solving software problems, and keeping your tech mind sharp 9-5.
Since becoming development manager, I’ve really had to work hard to keep my development skills up to date. As time has gone on, my workload has shifted away from the code, and more towards reports, organisation, recruitment etc. (you know, all that management stuff). This meant that dipping into the code on the rare occasions I was able to, was just getting more and more difficult, and taking more and more time to get up to speed with what was going on. It didn’t help that making even an hour of space to focus on it without interruptions was nigh on impossible.
Things are changing though. Focusing is easier, I’m able to get productive from a cold start more quickly, and many of the newer frameworks the team are using don’t feel quite as alien anymore. Put another way, I feel in touch. Not as on top of everything as I’d like to be, but I can be productive as a developer alongside my responsibilities as a manager.
I wanted to share some of the tactics I’ve used to get to this point, and will continue to use to maintain the skills that are so valuable to me and, I hope, to my role at PXtech.
Make the space
It sounds obvious, but if you don’t make the space to work on your development skills, you won’t be able to work on them. Making the space is actually the easy bit, protecting it is harder. Distractions such as email, meetings, questions etc. all break your flow, which as you know is just disastrous for programming.
I did a few things to defend this time, which really helped. First I made a conscious effort to get control over when meetings happened. Bunching them together is best and planning the preparation and follow up time appropriately also helps. Second, I closed Outlook (I can sense the collective intake of breath from here). Yes that’s right, I closed my email, and most days I will only check emails at 11am and 3pm. I can’t claim credit for this idea, but this guy can.
Finally, I accepted that I needed to regularly commit time out of work to learning. It’s good practice for developers anyway, but essential if you’re not 100% development focused in your day job.
Embrace generalism
Sounds backwards right? The most successful programmers out there specialise, and for good reason. If you’re a generalist then your skills are in rich supply. If you’re a specialist, then you’re that big fish in a small pond (hat tip to John Sonmez).
Well, all that is true, but now you’re managing a team of specialists and aspiring specialists, and you need to know at least a little bit about what each of them is doing. Chances are your experience will help them hone that speciality and (if you’re doing your job right) apply it to your team’s products in the most effective way through excellent application architecture design.
I try to learn something new every week. Whether it’s a technique one of my team are using, or looking at an emerging technology area so I can have an informed discussion on it with our expert in that area. It helps to push me and my team, as well as keeping my knowledge relevant to what’s being worked on
Have a side project
I can’t stress this enough. It’s all very well aiming to be an active member of the development team, delivering value to the customer by coding features and completing sprint items, but sooner or later you’ll be pulled away and you’ll go through a period where getting anything (technical) done is not, and cannot be top of your priority list. The team will be impacted, sprint goals will be missed, and you’ll feel awful being the one dragging everyone else down. Sorry – it’s a fact, and you can bet it’ll happen at the worst time.
For that reason, I try to limit my direct delivery of backlog features to relatively independent, lower priority items. Naturally, they’re also not always the most interesting.
To afford myself the luxury of playing with the very latest tech in an interesting way and being able to dip in and out as required, I have a side project (an important one, but a side project nonetheless) that only I work on. It’s my playground for want of a better word. Somewhere I can try things out and learn new things safely. It’s been invaluable to me in staying up to date and keeping up with the team around me.
Read endlessly
Read tech blogs, news, books, everything you can to keep a grip on where the industry is going. Not only do you want to make sure you’re focusing your precious time in the right areas, but you need to keep tabs on your team to ensure you have the right mix of capabilities in the right areas.
I find Twitter is a particularly useful tool for this. I check it as frequently as I can, and try to keep the majority of the people I follow relevant to my industry. (If it helps, set up another account for this!)
Learn from your team
One of the best resources available to you, is sat right with you in the same room most of the time. These are the people who you are entrusting and helping to become specialists in their respective fields, so learn from them. Get them to show you what they’re doing, explain it, and help you apply it. They’ll benefit from your eyes and approval of their work, and you’ll benefit from the research and learning they did to get to that point. Win-Win.
So there are the 5 main tactics I have used to keep myself up to date since letting go of development full time. It’s hard – really hard – but I’m not ready to let go of it yet, and I can’t yet imagine a time when I will be.
Ralph Cooper, Head of Software Development