Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Can’t Handle My Scale 
@MicheleTitolo
Apps
CODE
Dozens of sub projects?
You have a 
dependency problem
this doesn’t mean everything 
has to be shared
Create internal libraries with 
care
version, version, version
version
3rd party code
Be picky
Any code you add, 
you will need to maintain
Styleguide
Establish your conventions
Enforce your conventions
… 
Profit!
User Experience
Users expect apps from the 
same companies to be similar
Developers
Our tools aren’t the best
Falling back to patching base and 3-way merge... 
Auto-merging MyApp.xcodeproj/project.pbxproj 
CONFLICT (content): Merge ...
via textfromxcode.com
Communication
Identify collision points
Architecture discussions
Compartmentalize
Be aware of 
(unknown) dependencies
Management
Help or hinderance?
Our work needs to be 
structured
Managers should help
If they won’t help, they will 
hinder
Users
Going viral is great
…but can you handle it?
500 
375 
250 
125 
0 
April May June July Untitled 1 Untitled 2 Untitled 3 
Time
400 
300 
200 
100 
0 
April May June July Untitled 1 Untitled 2 Untitled 3 
Time
Crashes
The larger your userbase, the 
more crashes will happen
Software isn’t perfect
Goal: limit crashes
Goal: recover from non-fatal 
errors
Goal: TRACK!
Servers
If your servers crash…
…how is that different than 
offline mode?
If possible, be ready for heavy 
traffic
Be ready for traffic at different 
times
via Flurry
Have a plan B
Services
Many services charge per user
Make sure you can afford a 
service
Services also tend to have caps
400 
300 
200 
100 
0 
April May June July Untitled 1 Untitled 2 Untitled 3 
Time
Make sure they won’t 
disappear (or start lying)
Customer Support
Expect ~10% of your users to 
contact you
More, if you have in-app 
feedback
Users like knowing they are 
heard
Someone needs to verify their 
reported bugs
The more obvious the bug, the 
more you will hear about it
Scale isn’t all bad
Scale means you’re 
succeeding
Scale means you’re 
having an impact
These are ultimately 
good problems to have
Thanks 
@MicheleTitolo
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Can't Handle My Scale
Upcoming SlideShare
Loading in …5
×

Can't Handle My Scale

9,523 views

Published on

Scaling an app means many things. They can be human things, like "how do I stop someone from overwriting my changes to the project.pbxproj, storyboard, or xib?" Or development things, like "how do I manage dependencies?” and “why do I always have to do a 3-way merge?” Or even peripheral things like “what happens to our servers if we get featured?” and “what happens to the app when the servers go down?” This session will cover common scaling problems, and solutions to overcome them.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Can't Handle My Scale

  1. Can’t Handle My Scale @MicheleTitolo
  2. Apps
  3. CODE
  4. Dozens of sub projects?
  5. You have a dependency problem
  6. this doesn’t mean everything has to be shared
  7. Create internal libraries with care
  8. version, version, version
  9. version
  10. 3rd party code
  11. Be picky
  12. Any code you add, you will need to maintain
  13. Styleguide
  14. Establish your conventions
  15. Enforce your conventions
  16. … Profit!
  17. User Experience
  18. Users expect apps from the same companies to be similar
  19. Developers
  20. Our tools aren’t the best
  21. Falling back to patching base and 3-way merge... Auto-merging MyApp.xcodeproj/project.pbxproj CONFLICT (content): Merge conflict in MyApp.xcodeproj/project.pbxproj Failed to merge in the changes. Patch failed at 0037 Launch screen images update The copy of the patch that failed is found in: /tmp/git/.git/rebase-apply/patch
  22. via textfromxcode.com
  23. Communication
  24. Identify collision points
  25. Architecture discussions
  26. Compartmentalize
  27. Be aware of (unknown) dependencies
  28. Management
  29. Help or hinderance?
  30. Our work needs to be structured
  31. Managers should help
  32. If they won’t help, they will hinder
  33. Users
  34. Going viral is great
  35. …but can you handle it?
  36. 500 375 250 125 0 April May June July Untitled 1 Untitled 2 Untitled 3 Time
  37. 400 300 200 100 0 April May June July Untitled 1 Untitled 2 Untitled 3 Time
  38. Crashes
  39. The larger your userbase, the more crashes will happen
  40. Software isn’t perfect
  41. Goal: limit crashes
  42. Goal: recover from non-fatal errors
  43. Goal: TRACK!
  44. Servers
  45. If your servers crash…
  46. …how is that different than offline mode?
  47. If possible, be ready for heavy traffic
  48. Be ready for traffic at different times
  49. via Flurry
  50. Have a plan B
  51. Services
  52. Many services charge per user
  53. Make sure you can afford a service
  54. Services also tend to have caps
  55. 400 300 200 100 0 April May June July Untitled 1 Untitled 2 Untitled 3 Time
  56. Make sure they won’t disappear (or start lying)
  57. Customer Support
  58. Expect ~10% of your users to contact you
  59. More, if you have in-app feedback
  60. Users like knowing they are heard
  61. Someone needs to verify their reported bugs
  62. The more obvious the bug, the more you will hear about it
  63. Scale isn’t all bad
  64. Scale means you’re succeeding
  65. Scale means you’re having an impact
  66. These are ultimately good problems to have
  67. Thanks @MicheleTitolo

×