Things I learned working on Firefox Focus

Anthony Lam
Firefox User Experience
4 min readMay 3, 2017

We launched Focus as a free content blocker for Safari on iOS back in December 2015. The idea was to bring control back into users’ hands. We wanted to let them dictate how they wanted to spend their browsing data, even if they weren’t using Firefox.

About a year later, we wanted to give the product an update. We wanted to experiment more on Mobile. But how?

What if we could give mobile users an app that only allowed private browsing?

What would “success” or “failure” look like?

How were we going to do any of this?

Eventually, we released the update (and it’s on the App Store!). We learned a few things and now we’re working on Firefox Focus for Android.

Move together and move quickly

Our team was very small. So we needed to set expectations early — who’s responsible for what?

We tried to stay focused (heh) on a small set of well-defined goals. Everyone had a part to play. A clearly defined timeline helped us avoid scope creep too. It set the tone for our discussions and made it a lot easier to prioritize issues.

Slide from our presentation at our All Hands in Kona, HI (Source: Barbara Bermes)

We had weekly check-ins to make sure everyone was on the same page. All of our meetings were clearly directed and to the point. As things came up they would also be filed as GitHub issues so we always had a way to track our discussions.

It’s important to remember that getting 100% consensus is pretty much impossible. But “moving together” doesn’t necessarily mean everyone has to think the same. It’s natural to have doubts. Trust each other and try to move forward as a team. Define what success looks like together. Then go out, and gather some data.

Share early and often

Even if you aren’t finished, design comps/mock ups can really help provide a shared vision. Try to share them more! I’m guilty too sometimes. I know it can be hard. But I’ve always been glad that I did.

Where possible, we made all design changes “on device” using Buddybuild. This helped us arrive at decisions quicker, and with more confidence. It was great for design and engineering issues but it also kept the entire team in sync (especially useful when working across offices and timezones). Basically, it was our way of sharing early and often.

Erase button — “Good enough” initial designs

Then there was Slack . Lots of it. Our team was small, but distributed. Slack made it easy for anyone to give feedback, report/resolve GitHub issues, or even just give an encouraging 👍.

Sharing early might have pitfalls too. But it can get everyone involved and excited about the final product. Visual mock ups create a common language and helps avoid miscommunication later on. Share the vision, spread the workload. Insightful feedback can uncover interesting opportunities, but don’t let criticism stall you either.

Be flexible

Originally, Focus was a slightly different product. I didn’t work on the first version myself (that was mostly Darrin) but Brian (one of our engineers) did.

As designers, we should be opinionated but we also need to be flexible. Whatever decision we arrive at right now might not be ideal, but maybe that’s OK. Who knows, maybe sometimes we don’t have the right answer. Remember, it’s iterative!

Brian and I shared the same timezone but not the same office. So we spent a fair amount of time on Vidyo. Being on a video call over a long period of time can be really tiring. But it helped us hammer out the details quickly. When something didn’t make sense, we didn’t have to wait for the next weekly meeting to chat.

This is probably terrible of me, but I actually didn’t have a “full design spec” until towards the end of the project.

Screen sharing unfinished designs

Unfortunately, there isn’t a one-size-fits-all type of solution here. For us, Vidyo and Slack made the most sense but there were still drawbacks. Everyone’s different. Every team is different. Find a solution that works for you and your team. The key is to be flexible, to adapt.

There are always more opportunities to learn, and to grow. Within our products and ourselves as practitioners too. In the end, I really think it’s a constant process.

Firefox Focus on Android — Buddybuild #1420 on device

If you’re interested in contributing, here are the GitHub repos for Firefox Focus on iOS, and Android. Currently, we’re working towards the initial release of Firefox Focus on Android. Send any feedback, questions and comments you might have!

--

--