mobilization 2017: don't lose your users because of endless quality issues

Post on 29-Jan-2018

174 Views

Category:

Mobile

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© 2017 MOBDESIGN

Don’t lose your users because of Endless Quality Issues

Olivier Destrebecq @otuswebolivier@mobdesignapps.frhttp://www.mobdesignapps.fr

!

"

#

@otusweb

Users are expensive

SUBSCRIPTION APPS COST & CONVERSION FUNNEL

GAMING APPS COST & CONVERSION FUNNEL

SHOPPING APPS COST & CONVERSION FUNNEL

Source: liftoff.io User Acquisition Trends and Benchmarks SUBSCRIPTION APPS REPORT 2017

Install $4.40

Register $30.51

Subscription $161.38

Install $4.07

Register $8.94

Purchase $50.69

Install $4.45

Register $30.51

Purchase $75.86

14.43%Install-to-Register

2.73%Install-to-Subscription

45.5%Install-to-Register

8.0%Install-to-Subscription

14.6%Install-to-Register

5.9%Install-to-Subscription

@otusweb

Crashes are expensive

Imagine an app with

2 Million MAUStable at 99.7%, so only0.3% of users see a crash

60 000users a month will see a crash

Only 16% of user will try a failing app more than twice. If 10% decide they are done because of the bug, that is

6 000 users$24 000 at $4 install

Does not even take into account the cost to convert that user to being a client

Source: TechCrunch citing Compuware study

@otusweb

So how do you avoid this?All slides available on Twitter (with extra links)

@otusweb #mobilization2017

@otusweb

Get started rightKnow which scenarios you want to enable AND STICK TO THOSE!

Take the time to iterate on design: Issues in design are easy and cheap to fix

Set up your team correctly, know where the buck stops

Work with people you enjoy working with

As a team pick your approach to keep quality up

@otusweb

Perform user testingGet users from your target segment and show them your early prototypes

3. Observe and shut up

4. Answer questions with questions

Bad: “Did you easily find the search button?”

Good: “Which information is most important to you?”

1. DON’T LEAD THE WITNESS 2. ASK USER TO GO THROUGH YOUR MAIN SCENARIOS

Bad: Go to shirt section and pick a shirt

Good: You want to buy a new shirt for work. please use this app to find one

@otusweb

Security: a fine line, walk it regularlyDon’t be an Equifax, Target or Yahoo

Use the OWASP Mobile App Security checklist

Prioritise and mitigate

Review it regularly

@otusweb

Version control is your best friend

Pick one, learn to use it and use it Ease collaboration

Understand what happened

Reverse time

Use a branching model Multiple release going on at the same time

Main development does not halt for release

Feature Branches

Develop Release Branches

Hotfixes Master

Tim

e

Tag 0.2

Feature for future

release

From this position on, “next release” means the release

after 1.0

Major feature for next release

Incorporate bugfix in develop

Severe bug fixed for

production: hotfix 0.2

Tag 0.1

Tag 1.0Bug fixes from rel. branch may be continuously

merged back into develop

Only bug fixes!

Start of release

branch for 1.0

Source: Vincent Driessen : A successful branching model

@otusweb

Bug life cycle

Defines bugs states and responsabilities

No bugs falls through the cracks

No bug fix gets released without testing

Developer cannot close a bug

New bug from a user with con confirm or a

product without UNCONFIRMED state

Bug is reopened, was never confirmedBug confirmed of

received enough votes

Developer takes possession

Development is finished with bug

Developer takes possession

Ownership is changed

Development is finished with bug

Developer takes possession

Issue is resolved

Bug is closed

QA not satisfied with solution

QA verifies solution worked

Bug is reopened

Bug is reopened Bug is closed

UNCONFIRMED

NEW

REOPEN

CLOSED

RESOLVED

Possible resolutions:FIXED

DUPLICATE WONTFIX

WORKSFORME INVALID REMINDLATER

ASSIGNED

VERIFIED

Source: Bugzilla: Lifecycle of a bug

@otusweb

Pair programmingA second brain always brings in more value

Catch default very early in the cycle

Great to work on complex software issues

Not so great for simple tasks

Great to mentor other or learn from others

@otusweb

Code reviewA second pair of eyes always brings value

Great to learn new practice from fellow developers

Great to spot flows in code

Don’t hesitate to do them in person or follow up in person

Review every pull request before merging

Not the place for spellcheck, format check etc

@otusweb

Automate your testing

Manual testing is great, slow and painful to repeat

Use Unit, integration and UI test

UI test: a pain to maintain, automate only the most important flow

Unit test are easy to maintain, cover as much as you can

Lots of tools: XCTest, Cucumber, Appium, EarlGrey

@otusweb

Continuous integration

Goal is to release often, if releasing is hard, then release cycle lengthen

Continuous integration (continuous build + automated testing + delivery automation)

Jenkins, BuddyBuild, bitrise.io, fastlane and others

@otusweb

Static code analysisFinds issues with your code flow

Reports on code complexity

Multiple tools available (SwiftLint, OCLint, fauxpas, xCode, Tailor, Danger)

Run it on build and on pull request

Adopt the rules with your team

Enforce a 0 warning merge rule

@otusweb

Use crash AND error reportingWhat's worse than a crash? A crash that you don’t know about.

What’s worse than a crash you don’t know about, an error you don’t know about.

Install a crash reporting, link it to your bug database

Install an error reporting, link it to your bug database

Prioritise issues based on frequency and impact

@otusweb

Test on real devices in contextThe real world throws to many curve balls to only test on the simulator (bad connection, low battery, backgrounding, hardware specificity)

Performance, BLE, wifi devices, camera based app, TouchID can only be tested on real devices

@otusweb

Automate as much as possibleI’m lazy, I’m sure you are great, but probably a little lazy too

Add as many of those tools/process into your build automation

Make those automation gate keepers to prevent bad code into master

@otusweb

Questions?

$Olivier Destrebecq

@otuswebolivier@mobdesignapps.frhttp://www.mobdesignapps.fr

!

"

#

top related