And the truth (or at least, an attempt at redressing the balance)

Five things I’ve learned being on an innovation team

For just under two years now I’ve been a “Digital Guerrilla”, working as part of a team of six in Birmingham, created by the BBC to “pilot and prototype new storytelling ideas”, and help the broadcaster to “engage with its audiences and to deliver unforgettable content”. I’m leaving this month for a new role, but wanted to share some learnings from being embedded inside a huge organisation and being tasked with—that dreaded word—innovation.

1. Ask forgiveness, not permission

I’m kicking off this list with some hypocrisy, because this was something I wish I’d done more of at the BBC. It’s a large, complex and embattled organisation and therefore is famed for its processes, bureaucracy and policies. Most of these are understandable—even laudable—but they can certainly make for challenges when trying to push boundaries.

For example, releasing webapps that use public APIs like Twitter’s or Facebook’s require a custom development agreement to be put in place, because the BBC can’t sign anything granting unlimited indemnity (eg. if our Facebook app broke your computer somehow, the BBC could be liable to pay all your costs). This means that before we can release apps using these platforms, we have to get custom, BBC-specific agreements in place with Legal first.

Other concerns are around editorial policy: some parts of the BBC’s web properties I’ve worked on contain sex/drug reference. In one quiz we built (aimed at a middle-aged audience), we had multiple meetings to solve the (mostly theoretical) issue of an under-16 browsing our quiz and finding a link back to BBC Taster (which sometimes contains this edgy content) and being exposed to it. Lots of people were consulted on this before we signed off on wedging some copy into a text box intended for a survey, which warned curious youngsters not to click any further.

I mention this not to moan about the BBC (which, after all, is trying to protect the license fee payer), but to suggest that the world might not have ended if we’d just put these things out and taken the risk. Two of the apps I worked on were blocked from release at the end of the project for these kind of reasons. Clearly better up-front planning and discussion could have avoided this, but sometimes when you’re being asked to innovate, you have to ruffle a few feathers. Just don’t get sued.

2. Know your audience

Being asked to build things for a demographic you’re not part of is challenging – more so when that demographic is “young people” / millennials / your-epithet-of-choice-here. Everyone kids themselves that they know what teenagers like online (“oh, it’s all about Snapchat, right?” they say confidently), but really, it’s a mystery.

With that in mind, the projects I’m most proud of are the ones where we got out of our comfort zone (and studio) and met the audience face-to-face. Lacking a proper UX process, we did it guerrilla-style: popped over to the local university and plonked our stuff in front of them. Watching a bunch of first years mercilessly tear apart a D&D-style Twitter game we made was sobering but powerful: we learned more that day than in the months of development we’d spent up to that point.

We also got to see the real people behind the glossy personas or the faceless demographic charts. Real people are messy, unhelpful, resistant to pigeonholing and a thousand times easier to make things for when you’ve spent time with them. Every time we put our work in front of people and waited to see if it could stand up on its own, I felt nervous, defensive, proud and informed all at the same time.

And on the projects where we didn’t? I rarely felt much at all. Unique users on a chart are nice, but almost meaningless at an organisation the size of the BBC. We don’t need vanity metrics when we’re innovating, we need to see a real person recognise the value in the thing we’ve built. Get in front of them.

3. Throw things at the wall and see what sticks

I’m a firm believer in the agile/lean manifestoes – release early and often. Innovation should encompass this: you’re supposed to be trying new things and by definition, not all of that stuff will be relevant to your audience. Maybe some of it will become so, but it’s your job to work out what that might be.

With that in mind, life’s too short to lock up ideas in a lab while you perfect them. The sunk cost fallacy quickly creeps into the picture when you do this, too, and we were victim to spending too much time (and cash) getting something done, and releasing it knowing it wasn’t great but had to be launched.

The quicker you can drop professional pride and just get used to putting things out and seeing how the audience reacts, the quicker you can drop the stuff that isn’t working and focus on what is. It sounds obvious, but it’s surprising how hard it can be to switch to this mindset when you’re not used to it.

Case in point: 360° videos. I can’t think of a single other technology where the ratio of interest from publishers to users is so highly in favour of the former. The BBC loves them. Sure, it’s cool the first time you see one, and when the entire world is wearing an Oculus Rift at all times then bring ’em on. But the high cost of production (in terms of both time and money) means you could pilot three or four quicker, more agile ideas for the same cost.

It’s all about not being afraid to set a target for an idea (number of social engagements, time spent on average, or plain-old hits if you want to go all 90s) and then releasing it, interrogating it, and iterating – it’s the digital equivalent of cutting a path through a dense jungle. Let someone else airlift a cement mixer to the forest later.

4. Be a unit

This was the first time I’d worked on a small team – in previous roles I’d been part of teams of a dozen or so, but here there were just six of us.

Geography played its part in challenging us – we weren’t based in a mainstream BBC office (just on our own in Birmingham’s “creative quarter”, Digbeth), not all of our team were located in Brum, and frequent trips to London to work with other teams sometimes got monotonous.

However, the moments when the whole team were engaged on an idea: everyone focused on improving it, testing it, developing it – these were the standouts for me. You’re more invested in the success of a concept when you’ve had a hand in shaping it, and you’ll fight for something you know is a strong idea when you’ve sweated on the details and partnered with your teammates to make it better.

We had a few periods like this – all cylinders firing, everyone contributing to each others’ ideas, everybody willing an idea to succeed. It’s hard to capture and difficult to regain when it’s disappeared, but team unity is paramount and correlates directly to the strength of your output: you need to be greater than the sum of your parts.

5. Innovation is relative

Finally, the dreaded I word. Explaining your work on an innovation team might become a millstone around your neck when you speak to certain folks – they’ll think you’re either trying to be the next Elon Musk, or about to sell them a VR headset. It’s easy to get down about your work and think “this isn’t innovative, someone could’ve done this three years ago”.

Innovation, though, is relative to the organisation you’re doing it in. When I started at the BBC they’d never been able to embed a Disqus commenting widget on a site. Small an achievement as it was (I’m not putting “embedding an <iframe>” up there with “inventing SpaceX”), it represented a step forward in navigating the BBC’s legal/editorial policy framework (see above), and perhaps helped show the organisation that the sky doesn’t fall in when these things happen.

If you’re in a team tasked with innovating within your company, remember that you’re not being measured against the entire digital industry. What are the things your organisation is afraid of or “unable” to do? Prove to them that it’s possible and build those future paths for other people to follow.

By next month I’ll be off on a new role, helping another organisation to challenge boundaries and explore new ways of working. Not everything worked the way I wanted it to at the BBC (though when can you ever say this about a job?) but I learned several useful things about how we work, how we develop ideas, and how to approach challenges in a huge organisation – I’d happily do it all again.

Debunking Private Eye’s “gobsmacking” gender/race accusations

There’s a photo doing the rounds on Twitter of an extract from the current edition of Private Eye magazine. The text concerns the recent Forward prize for poetry, and the chaps from the Eye have decided that the gender/racial demographics of the Forward prize panel chair and the winners of the prize suggest a sinister conspiracy:

“Maliki Booker [the chair of the judging panel] is a British writer of Caribbean parentage, and so it was not entirely a surprise, though still rather gobsmacking, that all three prize winners were women, that two were from the Caribbean […] and that [one winner’s] publisher, Peepul Tree Press, is also Booker’s.”

Was this gobsmacking, though? Did the blokes from the Eye bother to do any number crunching to determine just how surprising it was that a woman chair would select three women as winners?

Short answer: no.

Longer answer: definitely not. Let’s dig in:

For one thing, the chair in question is just one of five judges – and the 2016 panel included two men. They choose three winners each year (in different categories). How much is Private Eye willing to ignore the contributions of the four other judges, none of whom are women from “Caribbean parentage”?

If we look at the lists of past winners and past judges/chairs, we can do some analysis. If we look for panels which awarded prizes to poets of a single gender, there have been three all-male winner lists (1994, 2001 and 2003) and two all-women winner lists (2016 and 2015). The two all-women lists were chosen by female chairs, but 2/3rds of the all-male lists were chosen by female chairs, too.

TL;DR: women are just as likely to choose all-male winners as all-female. Men have never chosen all-women winners (women have done this twice).

We can also see that women chairs show a far less polarised distribution of voting:

… whereas the male chairs massively skew towards a 66% male selection of winners.

TL;DR: men tend to choose other men to win this prize. Women are much more likely to pick a mixture of genders.

Finally, to the Eye’s dogwhistle-like mention of the racial origins of the winners this year. Well, life’s too short to compute the birthplaces of 75 poets (and it looks like the Tories are about to make this compulsory soon anyway), but it’s curious that they don’t mention this for the other years where it’s probable that there was overlap in the countries of birth of the judges/winners. The fact they bring it up at all suggests they think that either a) there’s something suspicious about people from the Caribbean winning an award based on merit or b) there’s an objective “winner” in poetry prizes that will always be selected by any panel of judges, regardless of their interests, origins or reading habits.

Either way, this is shoddy journalism. The data tells us that it’s more unusual for women chairs to pick all-women winners for the Forward prize, and that the only consistent pattern—if any—is for male chairs to pick majority-male winners. That is the scandal the Eye should be complaining about.

A resolution on communication

Talking is hard. So’s writing. Self-expression is sometimes crushingly futile when we try to reduce the mad, beautiful complexity of the human mind into the crude box we call language. Even with the best will in the world we can still mess up, “misspeak”, communicate badly.

In the spirit of “do unto others”, a vaguely new resolution of mine is to tell others when something about their communication has made things difficult, upsetting or unhelpful for me. This is, of course, purely subjective – something that hurts me may not hurt others, and doubtless most times the people in question don’t intend to cause offence. These are the people it’s worth reaching out to, then – if something I said ever hurts or demeans someone else, I’d sooner know about it than not, no matter how hard it is to hear.

With that in mind, here are a couple of recent incidents where I’ve exercised this new power.

I’m a solo developer on a team at the BBC that’s not directly connected to the rest of the organisation – we don’t sit in a regular BBC office or have daily contact with other teams. While this is hugely freeing and means we can work quickly and with minimal restrictions, there’s also the side effect that it can sometimes feel isolated and lonely. At the end of last year I went to an internal developer conference along with probably a hundred or so other BBC technical staff. I didn’t know anybody else there and travelled to a different city for the day.

Some days my introvert nature is stronger than others and that day was definitely more of a “flight” than “fight”. I listened along to the talks but didn’t really feel like striking up a conversation with the groups of folks all around me who were all existing colleagues.

During one talk, a senior architect was asking the audience whether they’d used an internal software tool his team were working on. When almost everyone raised their hand he jokingly changed the question to “okay, who’s not heard of it?”. I raised my hand – then looked back (I was sitting on the front row) to see I was the only person in the room with my hand raised.

Now, probably nobody else noticed or cared, but in my state at the time I was already fighting back feelings of imposter syndrome, “you don’t belong here”, etc. This question all but confirmed it for me: I wasn’t part of this crowd. It took most of my self control to stick around for the second half of the day after that, trying to reassure myself that the talks on programming were still relevant regardless of whether I’d heard of some internal library.

After the event I decided to email the speaker and let him know how I’d felt. I acknowledged that he’d not meant to single me out or poke fun at anyone, and that I’d done the same sort of “put your hand up if…”-style audience participation in talks I’ve given. But I wanted to share with him the realisation that I’d had at that moment: asking those kind of “survey” questions in that sort of exclusive (rather than inclusive) way is liable to isolate some of your most important audience members: the ones you haven’t encountered yet.

To his credit, he replied and agreed with my feedback and pointed out it was an off-the-cuff comment. I felt glad to have shared my feedback with him, though – if I’d given that talk and inadvertantly made someone feel out-of-place I’d prefer to know, and correct it for next time.

The second time I’ve recently given feedback was during a particularly trying exchange of emails. My team got clobbered with some red tape: essentially, we had to undertake a (second) security review of an application we were building for boring, complex process reasons. The man who instigated the review sent our team a fairly unhelpful email (with multiple senior stakeholders CC’d in) which didn’t offer us much support with fixing the problem he’d raised.

Once we’d fixed the issue, I asked a technical question and got back a fairly patronising message from him stating that it was “concerning” that I didn’t understand the issue – an issue that he’d raised. In this reply he’d again copied in some senior folks. I acknowledged my error (which it was indeed) and thanked him on the thread for pointing it out.

I then privately replied to him and pointed out that escalating the email to my boss and the way he’d spoken to me had embarassed me and, I felt, could’ve been resolved with a private message between us. I noted that I didn’t feel he’d approached us with an attitude of wanting to help us get our product live and iron out the issues, which is the policy that particular team are meant to stick to.

Again, to his credit, he replied and apologised and said he hadn’t been out to embarass me – indeed, he revealed his own frustrations that teams like mine were left without clear training on how to avoid some of these issues in the first place. I was glad I’d given him the feedback – it might assist other teams in future if they’re dealing with these situations.

I don’t want to come off here as a special snowflake who’s constantly being offended by well-meaning folks (and then griping to them over email about it). I’m in a fairly unique position at the moment where my team is isolated from the rest of the organisation – often these kind of issues would be resolved over a face-to-face chat. But I do believe that it’s valuable to give—and receive—feedback on how we talk to one another. It’s the worst feeling in the world to find out that you’ve hurt someone without meaning to – I’ve experienced this and remember how awful I felt. But as bad as you feel when you realise you’ve let yourself down, you’d feel worse if you never got a chance to correct it or make up for it.

So I challenge you: if someone you work with or see socially (or anything else) has communicated with you in a way which hurt you, annoyed you or prevented you from doing something, don’t be afraid to (productively, and politely) tell them. Do so in the spirit that you’d like to receive such feedback: from someone who believes you can (and want to) do better. And if you’re reading this and I’ve made you feel like that, I want to know about it too. Drop me a line!

My Atom setup

I recently decided to switch my main text editor for coding from Sublime Text to Atom by Github (mostly because my old work license expired when I changed jobs, but also because I liked Atom’s open-source nature). In the six months I’ve spent with it, I’ve grown to love it and wanted to share a few tips I’ve learned in the form of packages you should definitely install for almost any form of coding.

No-brainers

file-icons

Really simple – makes files in your sidebar show up with file-type icons. Should just be part of Atom core really.

linter / jshint

You’re linting your code for errors as you work, right?

minimap

A bit of a hangover from Sublime Text and probably not crucial but I love it just for familiarity. Again, should just be a core Atom feature.

open-recent

Useful just to go back to where you were.

sync-settings

Super, super useful if you’ll be using Atom across multiple machines. It uses your Github account to sync your plugins/settings across computers – I use it to keep my work and home Atom instances in sync.

Working with text

aligner

aligner

Useful if you’re a bit OCD and want your import statements, object definitions or other repetitive code to be beautifully aligned.

atom-beautify

beautify

Like aligner, but to the nth degree. I use this frequently when working with someone else’s (messy) code or improving things I’ve typed into the browser console etc.

activate-power-mode

power-mode

Some days, you just want to feel epic when you code.

Time-savers

autocomplete-paths

autocomplete-paths

This one’s handy to just help you browse for files in your current project.

color-picker

color-picker

Gives you a shortcut for a handy color picker meaning you don’t have to leave your editor if you just want a half-decent colour.

emmet

emmet1

emmet2

I was initially sceptical of Emmet but decided to give it a try when building a few sites from scratch. Being able to type out a single line and get back dozens of boilerplate is great, and its CSS autocomplete shortcuts are nice too.

Visual aids

highlight-line

highlight-line

Super useful for me as I sometimes struggle to find my place when switching between Atom and other windows.

highlight-selected

highlight-selected

Another Sublime feature I missed – select a term and see where it’s used in other places.

pigments

pigments

The definitive colour preview package – it’s even clever enough to highlight interpreted variable colours and Sass functions if you enable the setting to do so.

Augmenting Atom

atom-ternjs

tern

I’d tried tern in the past and found it slow and unworkable (albeit for a massive project), but for smaller things I’ve found this handy – adds IDE-esque features to Atom allowing you to jump to the definition of a variable or function, and adds autocomplete tooltips for your own functions and modules to remind you what arguments they take (even inferring parameter types where it can).

tool-bar / tool-bar-almighty

toolbar

A set of plugins to add a nifty toolbar menu to Atom allowing easy access to settings, splitscreen views and others.

In all of the screenshots above, I’m using the beautiful (free for personal use) Input Mono font, the Seti UI and the Chester syntax theme.

These are the plugins and settings I use every day – I’d encourage you to try out a new editor for 2016 if you’re stuck on the non-free, slowly-updated Sublime Text. Github are putting a lot of work into Atom and it shows – my only criticism is its slow startup time but I can live with this, and a hackable, web technology-based editor is a welcome change. Give it a try.

Postscript: Kevin Mears on Twitter pointed out a nice Atom feature where you can “star” a package and then install another user’s starred packages. I just used apm star --installed to automatically star all my installed packages, and you can install them with apm stars --user mattandrews --install which will give you all my packages (there are a couple of misc extra ones not listed here, FYI). Thanks Kevin!

Learnings so far after leaving my old job

It’s been three months, give or take a few days, since I left the Guardian—and London—to move to the BBC (I know, how imaginative…) in Birmingham. It’s flown by. Tomorrow I’m off for a visit to the capital where I’ll be seeing some former colleagues I haven’t seen since I left. Thinking about that has made me reflect on what I’ve learned so far.

The most immediate thing that stands out for me is that I’ve hugely upped my game, tech-wise. It’s counterintuitive: I’m the only developer on my team and don’t work directly with any other technical people. Really, I should be stagnating: there’s no omniscient senior dev or meddling software architect for me to learn from or query. Nobody is reviewing my pull requests (in fact, I’m mostly committing everything directly onto master… sorry, Roberto). Any technical decision my team needs to make is mine and mine alone – unlike at the Guardian, where this was rarely (if ever) the case, and any decision I did argue for was frequently challenged and queried by others.

On the other hand: being a solo dev in an organisation the size and scale of the BBC has forced me to drop some lazy habits and delegation I’d become used to relying on at the Guardian. True story: even at the point that I left that role (in June of this year), I still didn’t really have much of a grasp of what was going on behind the scenes when I hit the “deploy” button on our app. I didn’t know how to set up a new build process for a brand new app which would take code from my machine and plonk it onto the internet. Jesus, I’d never even used Heroku.

This was because I didn’t have to worry about those things. Other people did; often the groundwork for projects was already laid when I joined them and cleverer people than me had sweated over the fine details so I could mash the “deploy” button and go and buy an overpriced coffee while my code was hitting the servers. Clearly those skills (and tasks) existed within the Guardian but I never quite got around to picking them up. We did have vague training schemes for them and doubtless most of my colleagues would’ve been happy to walk me through these tasks when asked, but quite a lot of the time it was taken as an assumption that I either a) already knew how to do them, or b) would “self-select” and skill up on my own.

Clearly I was getting lazy and unmotivated and I think this is partly what prompted me to realise I needed a kick up the arse and to get out of that environment. It took this move – a leap of faith, really – to force me to learn what I’d been putting off.

In many ways it’s been the most challenging period of my developer career so far. The BBC has a huge, complex tech stack built over long years and hard-learned lessons. It’s called Cosmos and sits atop AWS for various complex legal reasons. Because my team was a new one with no existing tech stack (and no other developers, let alone operations support), it was my job to get to grips with Cosmos and figure out how to get my silly little apps onto the cloud.

It was painful. I wrestled with internal wikis, plagued IRC channels, roped generous remote colleagues into answering my rambling questions and eventually worked out that my lack of a developer certificate on my machine was why I couldn’t get half of it to work was a problem I needed to solve. I had to learn what a VPC was, how to configure CNAMEs in Route53 and automate build jobs from Github to Jenkins to the cloud. And I did it.

Now, it probably took me twice as long as most more competent developers would’ve taken, and doubtless there are still rookie errors and configuration bugs I’ve yet to spot which will cause me troubles down the line. But the main thing for me is that I’ve definitely “levelled up” as a developer in a way that I was never going to do at the Guardian. That’s likely down to me – when I get unhappy I tend to disappear into my own little world of moodiness and introspection, and by the time I recognised it at the Guardian I was too frustrated to want to solve my problems there and it was better just to leave. No doubt I could’ve learned all these things there too, but the comfort factor of sticking to what I already knew was too easy and the lack of management support meant I wasn’t being challenged to do this myself.

I should also say that the BBC itself is great at teaching these things: there’s actually an official internal training course (a proper, real-life event lasting two days) to learn about Cosmos, which I’m booked onto. New developers typically get a better start than I did because they’ll be joining established teams (or at least reporting to other technical staff who know the workarounds and timesinks from tried-and-tested experience).

I don’t regret my experience so far because it’s taught me to learn to solve these things myself – and as I hinted at above, I have almost complete freedom to decide what I work on, how I build it and when it’s “done”. With great power comes great responsibility, of course, and I’m conscious that left unchecked this will start to see my work decline if I get blasé about my code, but in general right now I’m feeling like uprooting myself from my comfort zone has been one of the best things I’ve done in a long, long time.