spotify unam mobile

56
November 26, 2014 Hector Zarate Rea (@iOSCowboy) From Plan to Done (iOS Client)

Upload: luis-armandhoo

Post on 08-Nov-2015

230 views

Category:

Documents


1 download

DESCRIPTION

fgdfg

TRANSCRIPT

  • 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

    [email protected]

    @iOSCowboy

    iOSCowboy.com