Hi all, Some of us met last week to do a post-mortem on the new about:home development that is going to be released next month in Firefox 26. The idea was to make sure we document what we got right as well as the pitfalls on the development this big new feature in Fennec.
What happened ------------- Just to give a bit of context to how we developed the new about:home UI, here's a brief timeline: - May 21: Created a separate repo called 'fig' where we landed the new UI code. - August 21: Merged fig into m-c during the Firefox 26 development cycle. - September 17: A new UI arrangement was proposed (new-new-about:home) in response to feedback. This is the day Firefox 26 moved to Aurora. Firefox 26 is now in Beta and we're now fixing the last set of bugs on the new UI for the release in December this year. Below you'll find a digested summary of the pros and cons around the approach we took to develop the new about:home UI. Raw notes can be found at: https://mobile.etherpad.mozilla.org/fig-post-mortem What went well -------------- - First and foremost, the result looks great. We were able to pull it together and make a great product, despite the problems. - Developing in a separate repo (with no release pressure) provided a stress-free setting for the team to work on the feature. - The team identified "merge blockers", tagged them, fixed them. The pre-m-c workflow was really clear/visible for other folks like project management. - We were able to keep development going on m-c while a few developers did most of this work in fig. - Although the core work was spearheaded by only a few people, there was always a few smaller bugs for other team members to pick up. - The separate repo and the looser expectations for stability while bootstrapping the new architecture allowed the team to move faster without messing with the mainline product. - Although the tests were only ported to the new UI at a later stage, the team was committed to get them up and running before merging to m-c. Tests were split up well, lots of people worked on them. What didn't go so well ---------------------- - We didn't run performance tests (e.g. Talos) on fig. Because of that, it was relatively hard to track performance regressions after the merge the whole new code to m-c. - We assumed all the tests would be broken while developing in fig i.e. we didn't try to see if we could fix them preemptively while still in a separate repo. - We should have set boundaries for what was okay to break and what was not (with regards to tests and unrelated parts of the product). - It was a bit hard to determine from collected requirements the nice-to-haves vs blockers. We appended all bugs to the meta tracking bug. The use of priority wasn't obvious enough. - We hit the specifications, but ran into some problems with how they matched our higher level goal. We ended up having to do a major last-minute change just after the merge to Aurora i.e. the new-new-about:home. Lessons learned --------------- - Developing new (big) features in a separate repo works pretty well. - We could be more specific about the acceptance criteria for merging new big features. - We should being more visibility to upcoming features that are developed off-Nightly to avoid last-minute changes due to lack of feedback during development. Showcasing/walkthrough earlier in the process might help us there. - Define success criteria for new features and instrument the product to gather data to check results while in Beta and after the feature gets released. The UI telemetry stuff will probably help us in this regard. - Be more disciplined about tests. We need better coverage and, ideally, should keep all of them enabled during development in a separate repo (perf tests might be difficult). - Development in a separate repo works great as long as there is no major overlapping work happening in central. Worked fine for fig but look out for major sources of conflict when deciding to develop new features in a separate repo. That's all for now. Can't wait for the Firefox 26 release :-) Cheers! --lucasr _______________________________________________ mobile-firefox-dev mailing list [email protected] https://mail.mozilla.org/listinfo/mobile-firefox-dev

