Top Banner
January 20, 2015 Hector Zarate Rea (@iOSCowboy) From Plan to Done (iOS Client)
56
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: NSCoder Spotify - From Plan to Done

January 20, 2015

Hector Zarate Rea (@iOSCowboy)

From Plan to Done (iOS Client)

Page 2: NSCoder Spotify - From Plan to Done

Spotify in Numbers

•Over 60 million active users.

•Over 30 million songs.

• 20,000 songs added per day.

•Over 1.5 billion playlists created so far.

• Available in 58 markets

Page 3: NSCoder Spotify - From Plan to Done

Our iOS Client in Numbers

40 Contributors each month

Millions User Base

500,000 Lines of code

Page 4: NSCoder Spotify - From Plan to Done

Repository Contributors in Numbers

0

12,5

25

37,5

50

Page 5: NSCoder Spotify - From Plan to Done

S C A L E

Page 6: NSCoder Spotify - From Plan to Done

P R O B L E M S

Page 7: NSCoder Spotify - From Plan to Done

PROBLEM 1: Feature Branches

Page 8: NSCoder Spotify - From Plan to Done

master

Feature Branches

Page 9: NSCoder Spotify - From Plan to Done

master

Feature Branches

feature_a

Page 10: NSCoder Spotify - From Plan to Done

master

Feature Branches

feature_a

feature_b

Page 11: NSCoder Spotify - From Plan to Done

master

Feature Branches

feature_a

feature_b

feature_c

Page 12: NSCoder Spotify - From Plan to Done

master

Feature Branches

feature_a

feature_b

feature_c

x

x

Page 13: NSCoder Spotify - From Plan to Done

Branches Merged Back Into Master

70%

30%

Page 14: NSCoder Spotify - From Plan to Done

SOLUTION 1: AB Rollout

master

Page 15: NSCoder Spotify - From Plan to Done

SOLUTION 1: AB Rollout

master (feature_a, feature_b, feature-c)

Page 16: NSCoder Spotify - From Plan to Done

SOLUTION 1: AB Rollout

A B

Page 17: NSCoder Spotify - From Plan to Done

SOLUTION 1: AB Rollout

A B

Page 18: NSCoder Spotify - From Plan to Done

Branches Merged Back Into Master10%

90%

Page 19: NSCoder Spotify - From Plan to Done

PROBLEM 2: Merge Conflicts (Lots of ‘em)

Spotify.xcodeproj

Page 20: NSCoder Spotify - From Plan to Done

PROBLEM 2: Merge Conflicts (Lots of ‘em)

Page 21: NSCoder Spotify - From Plan to Done

PROBLEM 2: Merge Conflicts (Lots of ‘em)

+x x

Page 22: NSCoder Spotify - From Plan to Done

PROBLEM 2: Merge Conflicts (Lots of ‘em)

Spotify.xcodeproj

Page 23: NSCoder Spotify - From Plan to Done

PROBLEM 2: Merge Conflicts (Lots of ‘em)

Radio Browse Social

DiscoverMusic Player X

Page 24: NSCoder Spotify - From Plan to Done

GAME STRATEGY

Page 25: NSCoder Spotify - From Plan to Done

1. Agile - Flavored Process

Plan Work Done

Page 26: NSCoder Spotify - From Plan to Done

1. Agile - Flavored Process

Plan Work Done

Page 27: NSCoder Spotify - From Plan to Done
Page 28: NSCoder Spotify - From Plan to Done

◕ ◡ ◕

Page 29: NSCoder Spotify - From Plan to Done

◕ ◡ ◕

2. Version Control

Page 30: NSCoder Spotify - From Plan to Done

◕ ◡ ◕

2. Version Control

Page 31: NSCoder Spotify - From Plan to Done

3. Code Reviews

◕ ◡ ◕

Page 32: NSCoder Spotify - From Plan to Done

3. Code Reviews

ಠ _ ಠ ◕ ◡ ◕

Page 33: NSCoder Spotify - From Plan to Done

3. Code Reviews

ಠ _ ಠ ◕ _ ◕

Page 34: NSCoder Spotify - From Plan to Done

3. Code Reviews

ಠ ◡ ಠ ◕ _ ◕

Page 35: NSCoder Spotify - From Plan to Done

3. Code Reviews

ಠ ◡ ಠ ◕ ◡ ◕

Page 36: NSCoder Spotify - From Plan to Done

3. Code Reviews

• Spread Knowledge.

• Prevent work from being repeated.

• Opportunity to detect errors earlier.

Page 37: NSCoder Spotify - From Plan to Done

feature

Page 38: NSCoder Spotify - From Plan to Done

feature

3. Continuos Integration

Page 39: NSCoder Spotify - From Plan to Done

3. Continuos Integration

• Eases integration issues.

• Gives automatic notification of build and test errors and prints stats like code coverage.

• Gives clues of where and when things went wrong to everybody.

• Executes tests suites

Page 40: NSCoder Spotify - From Plan to Done
Page 41: NSCoder Spotify - From Plan to Done

4. Unit Tests

1 2 3 4

Page 42: NSCoder Spotify - From Plan to Done

4. Unit Tests

1 2 3 4 5

Page 43: NSCoder Spotify - From Plan to Done

4. Unit Tests

1 2 3 4 5 6

Page 44: NSCoder Spotify - From Plan to Done

4. Unit Tests

• Used mainly to test model and model-view layers of the client.

• First channel of feedback to avoid regressions.

• Can be executed on the developer machine as well.

Page 45: NSCoder Spotify - From Plan to Done

5. Automated Tests

Page 46: NSCoder Spotify - From Plan to Done

5. Automated Tests

Page 47: NSCoder Spotify - From Plan to Done
Page 48: NSCoder Spotify - From Plan to Done
Page 49: NSCoder Spotify - From Plan to Done
Page 50: NSCoder Spotify - From Plan to Done
Page 51: NSCoder Spotify - From Plan to Done

5. Automated Tests

• Used mainly to test the view layer and user interfaces of the app.

• Executed on all supported devices.

Page 52: NSCoder Spotify - From Plan to Done

master

Page 53: NSCoder Spotify - From Plan to Done

6. Log Crashes

Page 54: NSCoder Spotify - From Plan to Done

January 20, 2015

Questions!

Page 55: NSCoder Spotify - From Plan to Done

January 20, 2015

Thank you!

Page 56: NSCoder Spotify - From Plan to Done

January 20, 2015

Keep in touch

[email protected]

@iOSCowboy

iOSCowboy.com