Phlogiston/2016-03-15 Android

Discussed how to prepare for Q4:

Bulk Estimation
Goal: come up with an initial level of effort estimate for Q4 goals, prior to starting Q4, that is reasonably close to the final value.

Dmitry: Have one big goal, shipping Feeds. Already broken up into 8 similar.

Tips for Bulk Estimation
Try to uncover things you've forgotten or overlooked. Not recalling something is harder to fix, and more valuable, than mis-matching something as small when it should be big. Easiest way to uncover things is to proceed with the work, but then you find out too late. Instead, try to spend a few minutes visualizing the work along several checklists, to get the same memory recollection effect as actually doing the work but in a few minutes instead of weeks or months.

Process checklist

 * 1) Requirements
 * 2) Design
 * 3) Coding
 * 4) testing
 * 5) Release
 * 6) Documentation, Communication

Quality checklist

 * 1) code bugs
 * 2) integration
 * 3) automation
 * 4) performance
 * 5) i18n
 * 6) accessibility
 * 7) regression
 * 8) tech debt

Dependency checklist
Did quick practice run, identified 1 issue for followup: need to ask iOS about data storage and decide how to implement in Android.
 * 1) community support & participation
 * 2) infrastructure (planned deployments, security lockdowns, ...)
 * 3) lateral (horizontal teams such as DR, Comms; porting from other team, ...)
 * 4) team stability

Forecasting
Joel: best estimation/forecasting comes from finding historical matches and remembering what happened.

Max: comparing to Q3 tasks, can make some rough estimates that we have ~35 points of non-Feeds work to do, plus bugs, plus the 80 points of feeds. Doing 15 points/week, so probably won't finish this scope of work in Q4.

Joel: What decisions can you make now based on that?

Dmitry: Have to ship Feeds. Some of the cards may be less important than others, but need to wait for feedback from iOS side to know which ones.

Joel: What else can you cut?

Dmitry: Sync Saved Pages depends on services that may not be ready, so we could do that later if at all.

Categorization method in Phabricator and Phlogiston
Phlogiston has three ways to identify categories: Project, Projectcolumn, and Parent Task. Android used Parent task in Q3. Max: with change in Phabricator to show tags on cards on boards, Project leapfrogs Parent Task in terms of visibility in Phabricator UI. More visible = easier to maintain, to see un-categorized work.

Dmitry: okay, let's try Project.

Also: there is a discrepency between category task counts in Android Phlogiston and in Phabricator. https://phabricator.wikimedia.org/T130042

What Categories?
Creating category tags:

tentatively: Sync Saved Pages, Feeds. What exact names do we want, meeting all of these criteria: Do you want to differentiate "Bugs", or "Tech Debt", from "Other"? Since lots are bugs, easier to tag everything EXCEPT bugs. Would you make any different decisions if you had a five-way work breakout on Jun 30, vs a three-way? Dmitry: probably not. Max: Okay, leave Bugs and Tech Debt as part of Other, no specific tags for them. Joel: And no tag for Other, Phlogiston does that automatically for uncategorized.
 * 1) each tag makes sense when read in isolation (Feeds vs "Android-Feeds")
 * 2) hypens not spaces
 * 3) works well in autocomplete

Next Steps

 * 1) Max: Plan to check in before the quarter starts to see if the Phlogiston forecast and backlog look as expected (and bug is fixed)
 * 2) Max: Plan to check in weekly during quarter
 * 3) Max: book meeting with Android team to refine the feeds epics using the checklists (Joel to observe)
 * 4) Dmitry: Finalize list of Q3 and Q4 categories to track
 * 5) Max: create Android category tags in Phabricator