Upload
luis-armandhoo
View
233
Download
1
Tags:
Embed Size (px)
DESCRIPTION
fgdfg
Citation preview
November 26, 2014
Hector Zarate Rea (@iOSCowboy)
From Plan to Done (iOS Client)
Spotify in Numbers
Over 50 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
Our iOS Client in Numbers
40 Contributors each month
Millions User Base
500,000 Lines of code
Repository Contributors in Numbers
0
12.5
25
37.5
50
S C A L E
P R O B L E M S
PROBLEM 1: Feature Branches
master
Feature Branches
master
Feature Branches
feature_a
master
Feature Branches
feature_a
feature_b
master
Feature Branches
feature_a
feature_b
feature_c
master
Feature Branches
feature_a
feature_b
feature_c
x
x
Branches Merged Back Into Master
70%
30%
SOLUTION 1: AB Rollout
master
SOLUTION 1: AB Rollout
master (feature_a, feature_b, feature-c)
SOLUTION 1: AB Rollout
A B
SOLUTION 1: AB Rollout
A B
Branches Merged Back Into Master10%
90%
PROBLEM 2: Merge Conflicts (Lots of em)
Spotify.xcodeproj
PROBLEM 2: Merge Conflicts (Lots of em)
PROBLEM 2: Merge Conflicts (Lots of em)
+x x
PROBLEM 2: Merge Conflicts (Lots of em)
Spotify.xcodeproj
PROBLEM 2: Merge Conflicts (Lots of em)
Radio Browse Social
DiscoverMusic Player X
GAME STRATEGY
1. Agile - Flavored Process
Plan Work Done
1. Agile - Flavored Process
Plan Work Done
2. Version Control
2. Version Control
3. Code Reviews
3. Code Reviews
_
3. Code Reviews
_ _
3. Code Reviews
_
3. Code Reviews
3. Code Reviews
Spread Knowledge.
Prevent work from being repeated.
Opportunity to detect errors earlier.
feature
feature
3. Continuos Integration
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
4. Unit Tests
1 2 3 4
4. Unit Tests
1 2 3 4 5
4. Unit Tests
1 2 3 4 5 6
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.
5. Automated Tests
5. Automated Tests
5. Automated Tests
Used mainly to test the view layer and user interfaces of the app.
Executed on all supported devices.
master
6. Log Crashes
November 26, 2014
Questions!
November 26, 2014
Thank you!
November 26, 2014
Keep in touch
@iOSCowboy
iOSCowboy.com