scaling android development - droidcon paris 2014
DESCRIPTION
http://fr.droidcon.com/2014/agenda/detail?title=Scaling+Android+Development+at+Twitter In January 2012, nearly all Twitter for Android code was written by three engineers. As of January 2014, Twitter for Android has several dozens unique contributors from over ten different teams. In this talk, we'll discuss how Twitter moved to develop at scale from a single team-based development model to a project based development model that welcomes contributions from across the company and highlight some of the challenges that we ran into on the way. Speaker: Jan Chong, Twitter Jan Chong holds a BS and MS in Computer Science from Stanford University. She has Ph.D from the Management Science & Engineering Department, also from Stanford. She is currently the Engineering Manager for the Twitter for Android team. Prior to joining Twitter, Jan ran client and server software development at OnLive.TRANSCRIPT
Scaling Android Development Jan Chong @lessachu
2011Tardis c AntToeKnee Lacey
In Android...Honeycomb c Karunakar Rayker
Twitter for Android 2011
twitter.com 2011
20148463 c lozikiki
In Android...Jelly Belly Jelly Beans c Anne
At Twitter...
Twitter for Android 2014
Cultural challenges
Web Brain
#ShipIt
#TestIt
Clients have long lives.
“Can’t we just upgrade all the clients with this bugfix?”
Users decide when to upgrade.
Days Since Release
% Us
ers
10
20
30
40
50
60
70
80
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Immature development environment
Mobile Brain
Android Brain
Experimentation
Unified Principles
Android Education
Buy a lot of phones.
Send developers to class.
#Simplify
+
system library
twitter library
twitter for android application
Encourage participation.
Support Tooling
Experimentation framework
Feature switches
stayathomeista.com
Contributor dashboard
Eat your own dogfood.
Crashlytics
#AutomateIt
Consistent enforcement
Rapid Feedback
uiautomator
How we release
Monthly Releases
Release Trains
Release TrainsThe train(1) c Richard Taylor
Active Development
Active Development
Bug Fixing
Bake
WEEK 1
WEEK 2
WEEK 3
WEEK 4
Active Development Active Development Bug Fixing Bake
Make it cheaper to take the next train.
Streetcar ticket, 1940 c Seattle Municipal Archives
Spread change over time.
Active Development
Critical Bugfixing/Bake
WEEK N WEEK N + 1
Two Week Staged Release
Active Development
Critical Bugfixing/Bake
WEEK N
Active DevelopmentActive Development Active Development
Critical Bugfixing/BakeCritical Bugfixing/Bake Critical Bugfixing/Bake
WEEK N + 1 WEEK N + 2WEEK N - 1
Active Development
Critical Bugfixing/Bake
WEEK N WEEK N + 1
master
week n release branch
Active Development
Critical Bugfixing/Bake
WEEK N
Active DevelopmentActive Development Active Development
Critical Bugfixing/BakeCritical Bugfixing/Bake Critical Bugfixing/Bake
WEEK N + 1 WEEK N + 2WEEK N - 1
week n - 1 release branch week n release branch week n + 1 release branch
master
How do we find bugs faster?
Google Play Alpha Channel
α
ββGoogle Play Beta Channel
Active Development
Critical Bugfixing/Bake
WEEK N
Active DevelopmentActive Development Active Development
Critical Bugfixing/BakeCritical Bugfixing/Bake Critical Bugfixing/Bake
WEEK N + 1 WEEK N + 2WEEK N - 1
week n - 1 release branch week n release branch week n + 1 release branch
master
α α α
β β β
Questions? @lessachu