We were eager to know what's happening for Firefox. Mike Beltzner, the open-source browser's director, was glad to tell us. Here's what he had to say about future features, competition with Chrome, and keeping thousands of Firefox contributors in sync.
When Beltzner was graduating from Queen's University in Toronto with Bachelor of Education degrees in computers and math, preceded by a B.S. in cognitive science, Firefox was still three years off, a future outgrowth of dissatisfaction with the Mozilla Suite's feature bloat. He quickly discovered he "didn't have the patience for high school students, or unions", but a recruiter thought his studies, along with his tenure as a freelance web site builder and layout director for the weekly paper Golden Words, made him a perfect fit for IBM's user experience design team.
Work at Big Blue involved, in part, watching workers use business-to-business software from behind one-way glass, but also gave Beltzner a taste for open source development in the Eclipse project. After landing at Mozilla and working as a user experience lead for three years, he took up the director's chair in July 2008. These days, almost all of Beltzner's work, decisions, and inter-team conversation is done entirely in the open, discussed and analysed endlessly in technology circles—a kind of two-way glass, with magnification for both sides.
Beltzner talked with us on the phone last week about working as a Firefox manager, how Firefox can grow to help users get more things done in smarter ways, and how and where the Firefox team competes with the increasingly crowded browser market.
Lifehacker: What's a typical day like as a director of Firefox? How would you chart your time use throughout the day?
Mike Beltzner: It depends, although I don't want to give a "depends" answer. I'd say that 50 percent of my day is communication. As director of Firefox, my job involves coordinating the activities of a cast of thousands contributing to the software we produce. I help people understand the most important thing they could be working on today. We're working on 3.5.2 today for instance, so problems with builds will come up, and I'm coordinating the release team, and engineering team, and a lot depends on clear communication. ... (With) Mozilla's weekly planning calls, I'm helping at moderating them and making sure everyone understands where to expend their efforts to get most value.
Another 25 percent of my day is spent gathering feedback about the product, and from that, figuring out what's important, and figuring where to go. It's asking ourselves, what are the most important things to be (scheduling) out for next version, so maybe I'd say "future planning" is really that 25 percent of my day.
The other 25 percent could be considered management, the traditional kind. The Firefox management team makes sure developers don't have to worry about expenses, and helping those having troubles getting access to certain systems. All that doesn't even count the little extra things I do. I'm a software designer at heart, so I still spend some time working on designs with the user team.
Lifehacker: What tools, software or otherwise, do you use to get things done and keep everything together?
Mike Beltzner: I live my life by Zimbra calendar. I get a lot of meeting requests, and to make sure I'm not late to calls like this one, I have all my appointments on my (shared) calendar, so people know when they can get a hold of me. I'm using Things on OS X for tasks, in large part because I'm using an iPhone, and I try to convince myself the iPhone email client is good enough (laughs).
What I need most is that when I jot down a task, I don't lose track of it. I use a lot of wikis and web-based tools, and even pastebin an awful lot. Wiki.mozilla.org is really perfect for my work because I find that a lot of time, I'll be in a meeting (where) folks will share great ideas, but when I get around to asking them to act on them, they've forgotten what they've talked about. So even if it's just quickly jotted words, I try to bring a scratchpad to every meeting I've ever had, and find (those notes) more useful on a wiki. When I decide I can't take action on something myself, I can just send someone to that wiki with the notes ready for them.
My job, more than most others, is to be available to help make people more able to get work done. So I've got instant messenger and IRC up all the time, and I keep tabs on Twitter ... I get a sense of the zeitgeist in tech, I keep a few saved searches, and I follow everyone I work with. More than most, Mozilla developers tweet a lot about what's going on in the web and software worlds, so that's really helpful.
Lifehacker: Firefox is a kind of rare open source success. There are more people from outside the core contributing code than inside—something like 1,000 coders contributed to Firefox 3.5, while less than 200 work at Mozilla. Does managing the work of all those coders come with a lot of responsibilities and headaches? Every coder, I'm sure, has a worldview of the right, the efficient way to do something ...
Mike Beltzner: I should start by saying, for one thing, I think compared to a lot of other open source software companies, we see ourselves a little differently. Mozilla began as 6-8 people, and there wasn't a ton of interest in working on it at first. People like to say how it was spun out of Netscape, sure, but at the point Mozilla started up, Netscape had lost the browser wars, the people interested in browser development were few and far between, and there was not a lot of money to work on it.
By necessity, then, the people who officially worked for Mozilla chose to consider themselves the same as anyone else who worked on this project, but just had the privilege to spend all their time on it ... When we hire a developer, for example, they don't have check-in rights on the code base. They go through the same process as anybody else. Their code gets reviewed, but it might not be someone inside the company—it might be someone on the outside, who's already contributed. So when we talk about dealing with those egos and headaches, there's a system already in place ...
... In Cory Doctorow's Down and Out In the Magic Kingdom, there's "whuffie," basically the idea of a social currency, like "karma" on Slashdot. People who have a track record of making smart and productive decisions actually earn social capital in the project. What's neat is we allow anyone with good ideas to get into the community and have their work implemented ... People are always working for the greater good of the browser. It's not problematic or very opinionated, other than user interface design.
Lifehacker: How do interface discussions get moderated? It's a topic a lot of people can argue over.
Mike Beltzner: It's a lot easier for people to feel emotional, and passionate, about browser design. I can feel very deeply, for instance, about whether we have a bookmark bar. I use mine an awful lot, so I'd miss it ... (But) Firefox takes up more vertical space than any other browser right now, and it's a problem we need to solve. I think the solution will probably annoy a lot of people, but I think ... Firefox has proven the web is the most important thing to have in a browser, it's inspired the design of other browsers, and it's a good discussion to be having.
The way I use my browser is very different from the way my wife uses my browser. I put nothing in the bookmark menu. Everything I need to get to later, to act on, I put in one drop-down list called "The Pile." I've got another folder with bookmarklets like Readability, a small-ifier using is.gd. My wife has nothing in her bookmark bar, but her bookmarks are like the Dewey Decimal System, so rigorously organised. And there a lot of people with bi-modal usage patterns. We spend so much engineering time and effort on making Firefox customisable for that reason—not just API customisable, but so the end user can take it and do everything they want with it. I don't think you can make the perfect browser for everybody, but you can give people the means to make it perfect.
Lifehacker: How do you ration development time between fixing and improving features your browser already has, innovating in new features, and looking into features from other browsers to implement?
Mike Beltzner: We don't do direct rationing, but at certain times, our energies are governed completely by the phase of development we're in. From March through June of this year, for example, we were basically polishing up 3.5 for release. Bug fixes, polish fixes, and, (for some developers), 200 small, glitchy, one-pixel polish issues. We'll spend a lot more of that time to work on new features when we're not heading up to a big release.
... You'll hear (Mozilla developers) talk about this metric of startup time. We know our startup time is an issue, and ours is not as good as other browsers. We're working on that problem, but we want to be sure our problem fixes are solutions, something innovation-based, which a good bit of time goes into.
Lifehacker: The most common issue/"bug" cited by Lifehacker readers about Firefox is memory use over browsing time. Firefox doesn't pull much memory when starting up, but after using it for a while, opening and closing tabs, users find it using big hunks of memory, sometimes forcing a restart to reclaim RAM. Is that something that's a known issue among developers? Is it hard to pin down the root causes of, user to user?
Mike Beltzner (via email): Feedback about memory usage is definitely something we hear frequently from our users, and without wishing to blamecast, most frequently the issue is actually related to poorly coded plug-ins, add-ons, and web pages. We did a great deal of work for the Firefox 3 release to make our memory allocation more efficient, as well as create technology that cleans up after some of the common problems created by plug-ins, add-ons, and web pages, but the truth of the matter is that a lot of webpages create plug-in-rendered elements that leak memory over time. The longer you hold that page open in a tab, the more memory will leak out.
We run a pretty thorough test in which we:
- open 30 tabs, each with a different page from the Alexa 500 - close one tab and open one tab for 300 more tabs, all from Alexa 500 pages - close all but one tab
The resulting graph shows how Firefox allocates and releases memory over time. While I haven't yet published the results in a blog post for Firefox 3.5, they are basically the same as they were for Firefox 3.0, which shows that Firefox not only holds at a steady state of memory while opening/closing the tabs, but releases almost all of that memory once we close down all of our tabs.
... So, that's a long answer, but yes, it's known, and while we continue to work at it, I think in many ways we've amassed a reputation that might at one time have been accurate, but with the latest versions of Firefox, isn't actually the case anymore.
Lifehacker: In the wiki outline for Firefox 3.6, there's an "area of interest" set up for task-based navigation. What does that mean at this point? Should task management be made to fit into a browser?
Mike Beltzner: I think it's identifying a problem that's becoming apparent. The "web browser" metaphor was created when the web was going to be a Tim Berners-Lee HyperCard (kind of) book. ... People aren't just reading on the web anymore, link after link. People are now interacting, creating on Facebook, consuming media, and organising their lives over the web. I don't think that's going away, so what (task-based navigation) is saying is, if I want to pay bills in Firefox, it should be a little more organised for the task of paying bills. I should be able to say, "I'd like to pay bills now," and it should help me do that.
Taskfox and Ubiquity are definitely part of that ... Something along the lines of keyword searches is what's being looked at. We've seen a bunch of really cool add-ons in this area, actually, some coming out of accessibility needs. Chickenfoot, done at MIT, is heading toward natural language scripting for the web. Banking always requires me to find the bank site, log in, and get to the exact page for what I want to do. Why can't Firefox know that my bank is Scotiabank, then remember the chain of events I go through to pay a certain bill or check a balance? Our intent is to find out what the intent behind those patterns are, and figure out better ways to get there.
Lifehacker: Google Chrome gets a lot of press for every new feature, for its speed, and just in general. How often does Chrome and its features factor into the discussions by developers?
Mike Beltzner: Google is sexy. It's the verb that ate Hollywood. The first time I heard Google as a verb on a show, I thought, "Wow, the world just got a little nerdier, and that's cool."
More people have touched Google, and understand what it does. Far fewer people can put a finger on Firefox and what it is, exactly. That said, it's extraordinarily exciting to have people working on a browser that are extraordinarily well-aligned with what we're doing. We watch their development list, and they watch ours. It's nice to have other people thinking about end user features people will want. But Chrome also benefits from the advantage of, when you're building something from scratch, it's easy to throw everything away and not worry about the consequences.
All of us try to use a bunch of different browsers, and Chrome comes up more in discussions, tools and technology building (than other browsers). It's good for checking our own assumptions about what can or can't be included in a browser. And it's rewarding to see Firefox's emphasis on just presenting a standardised web, and getting out of the way, echoed in another project.
Lifehacker: When Chrome or any new browser release comes out, speed ends up being a big part of the discussion these days. We do speed tests, other sites do them, and each firm rolls out its own favourable tests. How important are speed and benchmarks in a modern browser?
Mike Beltzner: I'm absolutely positive that's the case. SunSpider was built by Apple engineers, and while it's great, and we use it and talk about it, it gives our engines systematic disadvantages. That's fine, in some ways, and we can optimise for that just as well as anybody else.
One of the things giving (Firefox) a perception of being slower than other browsers is our cold start-up time. If you grab Firefox from the (latest build) trunk, start-up time is already better than 3.5. That matters because once you click to start up the browser, if you're used to waiting on it to load, you'll go do something else in the meantime. However long it takes you to come back and get back to that browser, that's your perception of how long it takes.