Firefox OS/Spark/Draft
Overview
Why?
As mobile platforms move closer to a strict "walled garden" ecosystem, Firefox OS strives to stand against this trend by bringing the open web to mobile.
There are several key advantages to the web. It is portable and standards-driven, thus it can run anywhere with the same experience. It is ubiquitous, thus there are many websites that already work on it, and almost every organization has a web presence already. It is open, thus anyone can publish to it.
Enter, Spark
Spark is a set of tools, customizations, and features built on top of the next generation of the Firefox OS platform and is a subset of the Ignite initiative. Spark is intended to empower users to customize their experience, hack whatever they want to, and make their devices truly theirs. The intention is that we will leverage web technologies for real-time hacking, as other platforms rely on native binaries that are difficult to edit once compiled. Sharing web apps and hacks is also easier as they are more portable and standards-driven. We plan to iterate rapidly on the Spark feature set.
Spark v0.1 Retrospective
Development and design of Spark v0.1 was marked by the following core tenets:
- Product design was driven heavily by engineering. This was exacerbated by the lack of a dedicated product manager. It was posited that this was acceptable given that the traits of the target user for Firefox OS going forward, early adopters, theoretically have a lot in common with engineers.
- Breadth in features was favored over depth. The intention here was to try a series of flows and see what stuck with users.
- Spark and Foxfooding were tied together very intimately, which prevented the team from really focusing on Spark as the project got closer to release.
- When development began, there was no roadmap; just some ideas and very high-level goals. As a result, product design happened very rapidly and iteratively without a plan from the beginning.
Spark v0.2 Core Themes
The overall approach for Spark v0.2 will be a significant departure from that of Spark v0.1. We will keep the following tenets in mind:
- Product design will be driven by solving a problem for the end user. We will clearly state that the target user is the early adopter / tech enthusiast. We will take an empathic approach to this design, favoring user feedback over speculation.
- We will start with a user research phase where we interview our target users, propose solutions and gather feedback on them, then build paper prototypes. Only after this phase is complete will we begin engineering work.
- Product design will favor depth over breadth. We will be very focused on a small set of use cases, and solving them very well. Features will be cut ruthlessly if they are shown to be either unfeasible or not beneficial to the user.
- Interaction design will begin when a problem and potential solution have been identified. Engineering will begin only after the interaction design has reached a soft consensus.
- The product will be continuously tested on users, and be iterated on where needed.
- We will not constrain ourselves to past designs and engineering work unless there is a very compelling reason to do so, e.g. it makes sense for the future, it aligns well with what users want, or we determine that the trade-off of engineering work is worth a slightly worse user experience.
Phases
User Research
The focus during this phase will be on gathering and parsing data from