A year ago I arrived in London for the Mozilla Festival, still a little unsure of what I had gotten myself into. I didn’t know a single person there. Everyone was scary smart and talking about things I had never heard of. Some of them sported Lovecraftian beards. I mostly just tried to keep my mouth shut and soak it all in. On the long flight back to San Francisco, my head was spinning.
Fast forward to last month, when MozFest 2013 came back to London. Those same people I was so hopeless intimidated by a year earlier? Now they all felt like old friends. Instead of sitting quietly in the corner I was running all over the building, leading a workshop, giving tutorials, presenting my work, writing code, and even speaking at the plenary session.
It’s amazing what can happen in a year.
Before I started my fellowship, I laid out some goals, and then I assessed my progress at the halfway mark. Yesterday I listed some of the lessons I’ve learned this year. I think it’s important to reflect frankly not just the highs of my fellowship but also the parts where I blew it, so with that in mind, here are what I consider some of my bigger successes and failures this year:
Learning new technologies.
In the past year, I’ve had a chance to dive into all of these things and lots more. In some cases, I’ve even developed something approaching expertise and been asked to teach others. That is insane, and also awesome. This was the year I went from a Fisher-Price toolset to a real one, from knowing a few tricks to having genuine confidence that I can crack any coding challenge that comes up.
Getting things published on BBC News Online.
The first thing I got published for the BBC was just a measly line chart. It was about 6pm on a Friday, and a reporter and I were the only two people left in the office. Someone from the business desk needed a chart for their story, and fast. I knocked out a quick stock price chart conforming to BBC style and it went live shortly thereafter:
I have made hundreds, if not thousands, of line charts in my life. There’s nothing special about this one at all. But oh, what a feeling to see that up on the BBC. I was ready to dance in the streets.
Since then, I’ve gotten some more substantial work published on things like the elections in Pakistan and Margaret Thatcher’s funeral. Yesterday I was working on visualizing the history of the World Cup. It’s never a dull day here.
Of course, by far my most popular project was The Secret Life of Cats. Given how often complete strangers ask me about it, I’m convinced that will be my epitaph. Few people know this, but the original idea was the result of a decade-long effort by BBC R & D scientists to achieve Absolute Internet, a state that was previously only theoretical and thought to be unreachable within the laws of thermodynamics:
Open-sourcing some useful things.
When I applied for the fellowship last year, they asked for a link to my GitHub account. This was a problem. I had a username, but I didn’t have a single shred of code posted. I quickly created one little Potemkin repo in an effort to trick the OpenNews powers-that-be that I was hip to this whole GitHub thing. I don’t think it worked, but I guess it didn’t hurt.
Since then I’ve gotten better and better about getting over my code shame and putting things online. I’ve also gotten better at packaging to distribute, sanding down the rough edges of a library and thoroughly documenting it (I might be the only person who actually enjoys writing documentation). I’ve got a long way to go in this regard, but I’m headed in the right direction.
Discovering a love of teaching.
If you had asked me a year ago I would have said I didn’t have much to teach anybody else or the right temperament for that role. But then a funny thing happened. Teaching others, and figuring out the obstacles to learning new skills in the newsroom, became a central theme of my fellowship.
It turns out I really enjoy working with people as they learn, trying to find that lightbulb moment when some piece of the web suddenly goes from mystical to mechanical and the moving parts click into place. I’ve mostly learned this stuff on my own, making progress in fits and starts and getting frustrated along the way, so I think my experience is a lot closer to the average code-curious journalist than someone who got a real coding education. I know all too well what it feels like to want to tear your hair out when you copy and paste an example from a tutorial and it refuses to work, or when the goddamn text box just won’t go where you want no matter how many numbers you change, or when an experienced coder explains how to “just” do something that winds up taking you six hours.
As a coder, you will always get in over your head and get stuck. But it’s easy to forget how thick the fog is when you’re just starting out. You don’t just get stuck, you have no way to formulate a plan to get unstuck. When something goes wrong, you are rudderless, without the nose for debugging and breaking down the problem into manageable bits that you develop with experience. It can be really dispiriting. I hope I can maintain some perspective on that as I move farther away from the beginner end of the spectrum.
Saying yes to too much.
This year has been a constant flood of surprising opportunities to learn and do new things. There was always another event, another project, another idea, another chance to say “yes, and…” I chased every rabbit wherever it led. I pushed myself out of my comfort zone whenever I could. That crazy, frenetic blend made this year what it was, and I wouldn’t trade that for anything.
Once upon a time, I wrote things for a living, and I could sit down and knock out ten pages before lunch. But writing is a muscle. You use it or lose it, and as my days have become less about words and more about code, that muscle has totally atrophied. Now a feedback loop has kicked in, and I fear the blank page much more than the blank command prompt. I really should have forced myself to write more about my work this year.
Not collaborating with my fellow fellows.
This is probably my most profound failure this year. My fellow fellows are a remarkable bunch. Every one of them brings unique talents to the table, and my favorite parts of this year have been spending time with them in different corners of the globe. While I’ve collaborated with them casually quite a bit, tapping someone on the shoulder for advice or expertise, I really wish we had found a chance to work together closely on something more ambitious. I’m not sure what exactly that something would be, which is probably why it didn’t happen, but I consider that a big missed opportunity.
Holding on to bad habits.
This year I had hoped to move away from developing by the seat of my pants and towards more sound practices, things like build automation, test-driven development, and more reusable modules. While I’m a much better developer than I was a year ago, I don’t think I succeeded on this front. I still sometimes end up with code like the messy office where you know exactly where everything is but nobody else would stand a chance. Part of this is because the newsroom is unusually forgiving of code sins; timetables and code lifespans are both short. But I also had the unfair luxury of being a one-man band on lots of projects, either because it was a solo effort or because my contribution could be easily compartmentalized. I wish I had done more of the deep collaboration that forces you to get smarter about structuring your code to serve other masters.
Photography has been an important hobby of mine for a long time, but this year my camera barely made it out of the bag. I was also determined at the start of the year to do some sort of project around the place of photojournalism in the news app world. This is something I care deeply about. It worries me that the medium of stills seems to be an afterthought for most people in this space, like we invented the audio slideshow and called it a day. Even animated gifs seem to get more play than traditional photojournalism. I had some interesting conversations with photo editors about this, but beyond that I failed utterly in my plan to turn it into anything of substance.
Saying yes to too much.
The downside of saying “yes, and…” to every opportunity was clear. There are only so many hours in a day, and I stretched myself too thin. I ended up with an elephant boneyard with dozens of unfinished projects big and small. I really should have prioritized those better, starting fewer and finishing more.