Developers are the unsung heroes of any Web project, but they’re really the heart and soul of Mozilla, the ambitious open source software project behind the ever-extensible Firefox browser. The Mozilla goal is both lofty and entirely sincere: to bring together thousands of dedicated volunteers around the world with a small staff of employees and improve the way people everywhere experience the Internet. But how does that get done? And what is daily life like inside such an enterprising ecosystem?
We decided to ask Brian Crowder, a software engineer working for the Mozilla Corporation on mobile browser development. Brian weighed in on the opportunities – and the challenges – of working in a flexible and adaptive development community, and why he believes that community can drive innovation.
What do you do? What is your company/project/mission?
I work on the web-browser Firefox, specifically on development of our various mobile browser ports. I can’t rephrase the company mission any better than this.
What is your process like?
On a personal level, my process has evolved to maintaining a TODO (yay, rememberthemilk.com) list that I keep as up-to-date as possible, adding even the tiniest pieces of work. I’ve found that without this, it is very easy for me to lose tasks while focusing on minutiae (which is pretty much what I do all day). When the TODO list empties itself out I find more projects by talking to my colleagues and looking through our enormous bug database. This hasn’t happened in a long time, though, as interruptions are constant and new tasks introduce themselves non-stop. A task can be anything from an idea or enhancement-request to a minor bug, a major bug, or a major system rearchitecture (these usually become lots of small tasks as they become better understood). Bite-sized TODO items is the goal.
Who comes up with ideas?
I do, my colleagues do, the Mozilla community (including developers and users) do, specification authors do, etc. This part of our ecosystem is very healthy and active.
What’s the best thing about your process? Are there things you would change?
I can work from anywhere, with anyone, and on nearly anything that interests me. There are critical components changing, growing, getting fixed or being replaced in nearly every possible discipline across our project and throughout every module. If there’s anything I’d change it’s that this can be very overwhelming. The amount of information available about what’s going on can be hard to digest and overwhelming to take in. It’s difficult to figure out even what to filter for, sometimes.
What’s the funniest bug you’ve ever seen?
What are the tools that you can’t live without?
Can’t live without bugzilla, version control, and a good text-editor (in my case, vim). Mxr.mozilla.org is cool and useful, though it’s on its way to being replaced by DXR (dxr.mozilla.org), and with a source-base as large as ours, these search tools are invaluable. IRC is critical to our process, as well, since many of us (including myself) work remotely.
What’s your favorite snack?
Peanut butter. Good protein, good fat, filling and easy. Beef jerky’s probably better for me, though.
Do your parents understand what you do?
Not even kinda.
What’s the biggest or most important thing that you’ve learned?
A good idea, combined with great execution (which means great, dedicated people) can change the world. I know that sounds like marketing bullshit spawned by all the Kool-Aid I’ve been drinking, but if you look at the differences between IE4 and IE9, you can see how much power a few people executing well on great ideas can have.
Interviews with Smart People
We think it’s important to hear from all sorts of digital builders, thinkers, and dreamers – not just the same thought leaders who get asked to comment on everything. Interviews with Smart People brings you the stories of people who should get interviewed more often. We’re going behind the scenes, under the covers, and inside the creative and build processes. If you know a person or a team we should feature, drop us a line at email@example.com.