Successfully reported this slideshow.

Can't Handle My Scale

7

Share

Loading in …3
×
1 of 87
1 of 87

Can't Handle My Scale

7

Share

Download to read offline

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.

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.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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

×