Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

NSCoder Spotify - From Plan to Done

762 visualizaciones

Publicado el

Presentación de Hector Zarate (@iOSCowboy) sobre las practicas de desarrollo iOS en Spotify

Publicado en: Tecnología
  • Sé el primero en comentar

NSCoder Spotify - From Plan to Done

  1. 1. January 20, 2015 Hector Zarate Rea (@iOSCowboy) From Plan to Done (iOS Client)
  2. 2. 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
  3. 3. Our iOS Client in Numbers 40 Contributors each month Millions User Base 500,000 Lines of code
  4. 4. Repository Contributors in Numbers 0 12,5 25 37,5 50
  5. 5. S C ALE
  6. 6. P R OBL E M S
  7. 7. PROBLEM 1: Feature Branches
  8. 8. master Feature Branches
  9. 9. master Feature Branches feature_a
  10. 10. master Feature Branches feature_a feature_b
  11. 11. master Feature Branches feature_a feature_b feature_c
  12. 12. master Feature Branches feature_a feature_b feature_c x x
  13. 13. Branches Merged Back Into Master 70% 30%
  14. 14. SOLUTION 1: AB Rollout master
  15. 15. SOLUTION 1: AB Rollout master (feature_a, feature_b, feature-c)
  16. 16. SOLUTION 1: AB Rollout A B
  17. 17. SOLUTION 1: AB Rollout A B
  18. 18. Branches Merged Back Into Master 10% 90%
  19. 19. PROBLEM 2: Merge Conflicts (Lots of ‘em) Spotify.xcodeproj
  20. 20. PROBLEM 2: Merge Conflicts (Lots of ‘em)
  21. 21. PROBLEM 2: Merge Conflicts (Lots of ‘em) +x x
  22. 22. PROBLEM 2: Merge Conflicts (Lots of ‘em) Spotify.xcodeproj
  23. 23. PROBLEM 2: Merge Conflicts (Lots of ‘em) Radio Browse Social Discover Music Player X
  24. 24. GAME STRATEGY
  25. 25. 1. Agile - Flavored Process Plan Work Done
  26. 26. 1. Agile - Flavored Process Plan Work Done
  27. 27. ◕ ◡ ◕
  28. 28. ◕ ◡ ◕ 2. Version Control
  29. 29. ◕ ◡ ◕ 2. Version Control
  30. 30. 3. Code Reviews ◕ ◡ ◕
  31. 31. 3. Code Reviews ಠ _ ಠ ◕ ◡ ◕
  32. 32. 3. Code Reviews ಠ _ ಠ ◕ _ ◕
  33. 33. 3. Code Reviews ಠ ◡ ಠ ◕ _ ◕
  34. 34. 3. Code Reviews ಠ ◡ ಠ ◕ ◡ ◕
  35. 35. 3. Code Reviews • Spread Knowledge. • Prevent work from being repeated. • Opportunity to detect errors earlier.
  36. 36. feature
  37. 37. feature 3. Continuos Integration
  38. 38. 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
  39. 39. 4. Unit Tests 1 2 3 4
  40. 40. 4. Unit Tests 1 2 3 4 5
  41. 41. 4. Unit Tests 1 2 3 4 5 6
  42. 42. 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.
  43. 43. 5. Automated Tests
  44. 44. 5. Automated Tests
  45. 45. 5. Automated Tests • Used mainly to test the view layer and user interfaces of the app. • Executed on all supported devices.
  46. 46. master
  47. 47. 6. Log Crashes
  48. 48. January 20, 2015 Questions!
  49. 49. January 20, 2015 Thank you!
  50. 50. January 20, 2015 Keep in touch hector@spotify.com @iOSCowboy iOSCowboy.com

×