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

Reply via email to