How Yahoo Finance Android scales (AnDevCon 2017, DC)
I spoke about the various techniques we employ around understanding our users, planning, CI/CD, experimentation, coding, culture and performance to deliver high quality software to our users at AnDevCon 2017 Washington DC.
out • Knows nothing about football. Probably cares even less. • Drafts Roberto Aguayo in the 2nd round because Tom told him he’s good (screw Tom) • 12% of fantasy football players. Over 60% are in their first season
where the goal post is • Vanity metrics – DAUs/Downloads etc. won’t tell you how your feature is doing • Clarity metrics – engagement of the feature – how your feature is doing • http://firstround.com/review/im-sorry-but-those-are-vanity-metrics/
feature that adds user value • A feature is a collection of stories Ex: add stock to watchlist by tapping on star • User story: Value is perceivable to the user • Engineering story: Value not directly perceivable to the user
able to add a stock to their watchlist by tapping on the star on a quote page Acceptance criterion • If a stock is not in the watchlist, tapping should add it • If a stock is in the watchlist, tapping should remove it • Add the following analytics event for star tap • Add the necessary Material-design compliant animations
Stories have acceptance criterion • Planning poker to point • More stories, the better • Timebox at 1 hour Anti-patterns • Rushing to story point • Writing stories in the meeting • “I know we don’t have all details, but let’s point it anyways”
Have a goal for the sprint • Plan to release at end of sprint • Discuss so product/design/UX can get out of the room first Anti-patterns • Team struggles to identify tasks • Tasks > 1 day • Discussions around what a story means
explicit – what’s done, what’s coming up, blockers • Parking lot for long discussions • Agree on defn. of ‘Done’ • Focus of accomplishing everything Anti-patterns • Debate product functionalities • Doing involved demos • Providing a lot of detail • Trying to resolve issues/blockers • Standups > 10 min • “This story is done, except for code review and testing”
explicit – what’s done, what’s coming up, blockers • Parking lot for long discussions • Agree on defn. of ‘Done’ • Focus of accomplishing everything Anti-patterns • The big boss needs some clarifications
what should change • Demo only fully complete stories; no partial credit • Prepare upfront – projector, emulators, building your code Anti-patterns • The “What didn’t go well” list repeats i.e. no follow through • The team obsesses over the negatives • “This is not complete, but let me show what I’ve done”
what should change • Demo only fully complete stories; no partial credit • Prepare upfront – projector, emulators, building your code Anti-patterns • Wasting time setting up for the demo
Publish artifacts from either every commit/nightly builds • Bitnami has an AWS image for Artifactory • Automate your playstore updates • fastlane/fastlane provides excellent tools to automate screenshot capture and APK publishing
showing more ads by 3% • Key results • Identify slots for ad placement • Devise ad unit to place at each ad slot • Implement the top ad placements to achieve expected revenue increase • Deploy experience to beta users and compute run rate over 1 month Target 70%
= code • Writing, changing and reading code is expensive • Some components stabilize, some don’t • Building on bad code goes into a death spiral Stabilize or kill!
months httpd ~ 5.4 years git ~ 6 years linux ~ 6.6 years Rapidly evolving components Stable components https://erikbern.com/2016/12/05/the-half-life-of-code.html
and preload • Try to avoid data joins for your initial layout • Optimize code • Lots of knowledge on the Internet • Optimize your UX • Optimize your UX to enable faster startup • Consider using nimbledroid
Capture what you want to change in goals • Any change you want needs mindset shift, so get people buy-in • These are guidelines – don’t aim for 100% If you want to help Yahoo Finance get there, come talk to me!