Can't Handle My Scale

Post on 05-Nov-2014

2.459 views 0 download

Tags:

description

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.

Transcript of Can't Handle My Scale

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 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

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?

0

125

250

375

500

April May June July Untitled 1 Untitled 2 Untitled 3

Time

0

100

200

300

400

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

Have a plan B

Services

Many services charge per user

Make sure you can afford a service

Services also tend to have caps

0

100

200

300

400

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