Scaling android development - DroidCon Paris 2014

60
Scaling Android Development Jan Chong @lessachu

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 of Scaling android development - DroidCon Paris 2014

Page 1: Scaling android development - DroidCon Paris 2014

Scaling Android Development Jan Chong @lessachu

Page 2: Scaling android development - DroidCon Paris 2014

2011Tardis c AntToeKnee Lacey

Page 3: Scaling android development - DroidCon Paris 2014

In Android...Honeycomb c Karunakar Rayker

Page 4: Scaling android development - DroidCon Paris 2014

Twitter for Android 2011

Page 5: Scaling android development - DroidCon Paris 2014

twitter.com 2011

Page 6: Scaling android development - DroidCon Paris 2014
Page 7: Scaling android development - DroidCon Paris 2014
Page 8: Scaling android development - DroidCon Paris 2014

20148463 c lozikiki

Page 9: Scaling android development - DroidCon Paris 2014

In Android...Jelly Belly Jelly Beans c Anne

Page 10: Scaling android development - DroidCon Paris 2014

At Twitter...

Page 11: Scaling android development - DroidCon Paris 2014

Twitter for Android 2014

Page 12: Scaling android development - DroidCon Paris 2014
Page 13: Scaling android development - DroidCon Paris 2014

Cultural challenges

Page 14: Scaling android development - DroidCon Paris 2014

Web Brain

Page 15: Scaling android development - DroidCon Paris 2014

#ShipIt

Page 16: Scaling android development - DroidCon Paris 2014

#TestIt

Page 17: Scaling android development - DroidCon Paris 2014

Clients have long lives.

Page 18: Scaling android development - DroidCon Paris 2014

“Can’t we just upgrade all the clients with this bugfix?”

Page 19: Scaling android development - DroidCon Paris 2014

Users decide when to upgrade.

Page 20: Scaling android development - DroidCon Paris 2014

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

Page 21: Scaling android development - DroidCon Paris 2014

Immature development environment

Page 22: Scaling android development - DroidCon Paris 2014

Mobile Brain

Page 23: Scaling android development - DroidCon Paris 2014
Page 24: Scaling android development - DroidCon Paris 2014

Android Brain

Page 25: Scaling android development - DroidCon Paris 2014

Experimentation

Page 26: Scaling android development - DroidCon Paris 2014

Unified Principles

Page 27: Scaling android development - DroidCon Paris 2014

Android Education

Page 28: Scaling android development - DroidCon Paris 2014

Buy a lot of phones.

Page 29: Scaling android development - DroidCon Paris 2014

Send developers to class.

Page 30: Scaling android development - DroidCon Paris 2014

#Simplify

Page 31: Scaling android development - DroidCon Paris 2014

+

system library

twitter library

twitter for android application

Page 32: Scaling android development - DroidCon Paris 2014

Encourage participation.

Page 33: Scaling android development - DroidCon Paris 2014

Support Tooling

Page 34: Scaling android development - DroidCon Paris 2014
Page 35: Scaling android development - DroidCon Paris 2014

Experimentation framework

Page 36: Scaling android development - DroidCon Paris 2014

Feature switches

stayathomeista.com

Page 37: Scaling android development - DroidCon Paris 2014

Contributor dashboard

Page 38: Scaling android development - DroidCon Paris 2014

Eat your own dogfood.

Page 39: Scaling android development - DroidCon Paris 2014

Crashlytics

Page 40: Scaling android development - DroidCon Paris 2014

#AutomateIt

Page 41: Scaling android development - DroidCon Paris 2014

Consistent enforcement

Page 42: Scaling android development - DroidCon Paris 2014

Rapid Feedback

Page 43: Scaling android development - DroidCon Paris 2014

uiautomator

Page 44: Scaling android development - DroidCon Paris 2014

How we release

Page 45: Scaling android development - DroidCon Paris 2014

Monthly Releases

Page 46: Scaling android development - DroidCon Paris 2014

Release Trains

Release TrainsThe train(1) c Richard Taylor

Page 47: Scaling android development - DroidCon Paris 2014

Active Development

Active Development

Bug Fixing

Bake

WEEK 1

WEEK 2

WEEK 3

WEEK 4

Page 48: Scaling android development - DroidCon Paris 2014

Active Development Active Development Bug Fixing Bake

Page 49: Scaling android development - DroidCon Paris 2014

Make it cheaper to take the next train.

Streetcar ticket, 1940 c Seattle Municipal Archives

Page 50: Scaling android development - DroidCon Paris 2014

Spread change over time.

Page 51: Scaling android development - DroidCon Paris 2014

Active Development

Critical Bugfixing/Bake

WEEK N WEEK N + 1

Two Week Staged Release

Page 52: Scaling android development - DroidCon Paris 2014

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

Page 53: Scaling android development - DroidCon Paris 2014

Active Development

Critical Bugfixing/Bake

WEEK N WEEK N + 1

master

week n release branch

Page 54: Scaling android development - DroidCon Paris 2014

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

Page 55: Scaling android development - DroidCon Paris 2014

How do we find bugs faster?

Page 56: Scaling android development - DroidCon Paris 2014

Google Play Alpha Channel

α

Page 57: Scaling android development - DroidCon Paris 2014

ββGoogle Play Beta Channel

Page 58: Scaling android development - DroidCon Paris 2014

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

α α α

β β β

Page 59: Scaling android development - DroidCon Paris 2014
Page 60: Scaling android development - DroidCon Paris 2014

Questions? @lessachu