SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
© 2017 MOBDESIGN
Don’t lose your users because of
Endless Quality Issues
Olivier Destrebecq
@otusweb

olivier@mobdesignapps.fr

http://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 MAU
Stable at 99.7%, so only

0.3% of users see a crash
60 000
users 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 right
Know 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 testing
Get 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 regularly
Don’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
Time
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.0
Bug 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
REMIND

LATER
ASSIGNED
VERIFIED
Source: Bugzilla: Lifecycle of a bug
@otusweb
Pair programming
A 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 review
A 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 analysis
Finds 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 reporting
What'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 context
The 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 possible
I’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
@otusweb

olivier@mobdesignapps.fr

http://www.mobdesignapps.fr

Mais conteúdo relacionado

Destaque

Andcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexesAndcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexesCERTyou Formation
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
1cours virologie généralités (1)
1cours virologie généralités (1)1cours virologie généralités (1)
1cours virologie généralités (1)imlen gan
 
Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé Alphorm
 
04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)TECOS
 
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Loïc Knuchel
 
Devoxx 2015, ionic chat
Devoxx 2015, ionic chatDevoxx 2015, ionic chat
Devoxx 2015, ionic chatLoïc Knuchel
 
La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...
La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...
La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...Grégoire Arnould
 
02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)TECOS
 
03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)TECOS
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)TECOS
 
Angular 4 - creer composants -- français
Angular 4  - creer composants -- françaisAngular 4  - creer composants -- français
Angular 4 - creer composants -- françaisVERTIKA
 
Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015Loïc Knuchel
 
Algea - 04 - conclusion
Algea - 04 - conclusionAlgea - 04 - conclusion
Algea - 04 - conclusionYann Caron
 
Angular 4 - regles -- Français
Angular 4  - regles -- FrançaisAngular 4  - regles -- Français
Angular 4 - regles -- FrançaisVERTIKA
 
Angular 4 - ngfor -- Français
Angular 4  - ngfor -- FrançaisAngular 4  - ngfor -- Français
Angular 4 - ngfor -- FrançaisVERTIKA
 
Programmation Android - 00 - Présentation
Programmation Android - 00 - PrésentationProgrammation Android - 00 - Présentation
Programmation Android - 00 - PrésentationYann Caron
 

Destaque (20)

Andcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexesAndcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexes
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
1cours virologie généralités (1)
1cours virologie généralités (1)1cours virologie généralités (1)
1cours virologie généralités (1)
 
Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé
 
04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)
 
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
 
Devoxx 2015, ionic chat
Devoxx 2015, ionic chatDevoxx 2015, ionic chat
Devoxx 2015, ionic chat
 
La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...
La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...
La Veille en E-Réputation et Community Management [2/3] : Outils, méthodologi...
 
02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)
 
Les virus
Les virusLes virus
Les virus
 
Montage video
Montage videoMontage video
Montage video
 
Mta
MtaMta
Mta
 
03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
 
Angular 4 - creer composants -- français
Angular 4  - creer composants -- françaisAngular 4  - creer composants -- français
Angular 4 - creer composants -- français
 
Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015
 
Algea - 04 - conclusion
Algea - 04 - conclusionAlgea - 04 - conclusion
Algea - 04 - conclusion
 
Angular 4 - regles -- Français
Angular 4  - regles -- FrançaisAngular 4  - regles -- Français
Angular 4 - regles -- Français
 
Angular 4 - ngfor -- Français
Angular 4  - ngfor -- FrançaisAngular 4  - ngfor -- Français
Angular 4 - ngfor -- Français
 
Programmation Android - 00 - Présentation
Programmation Android - 00 - PrésentationProgrammation Android - 00 - Présentation
Programmation Android - 00 - Présentation
 

Semelhante a Mobilization 2017: Don't lose your users because of endless quality issues

Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaSAGAR BARBHAYA
 
Automation Without Exposure.pptx
Automation Without Exposure.pptxAutomation Without Exposure.pptx
Automation Without Exposure.pptxSiddhartha
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automationopkey
 
TestElf Informational Presentation
TestElf Informational PresentationTestElf Informational Presentation
TestElf Informational PresentationTestElf
 
Patterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updatesPatterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updatesDISHAMESWANIA
 
Justin Ison
Justin IsonJustin Ison
Justin IsonCodeFest
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory TestingJustin Ison
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014
Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014
Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014Ismaël Héry
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Sauce Labs
 
Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Peter Marshall
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)Nitin Bhide
 
Learn fast to build fast @ le Monde - Lean Kanban France 2014
Learn fast to build fast @ le Monde - Lean Kanban France 2014Learn fast to build fast @ le Monde - Lean Kanban France 2014
Learn fast to build fast @ le Monde - Lean Kanban France 2014Ismaël Héry
 
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...Denim Group
 
Simplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test LabSimplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test Labmitchellevan
 
Continuous Delivery (The newest)
Continuous Delivery (The newest)Continuous Delivery (The newest)
Continuous Delivery (The newest)Eduards Sizovs
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...PVS-Studio
 
2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers
2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers
2010-03 Yesterday's Trusted Web Sites are Today's Malicious ServersRaleigh ISSA
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest
 

Semelhante a Mobilization 2017: Don't lose your users because of endless quality issues (20)

Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhaya
 
Automation Without Exposure.pptx
Automation Without Exposure.pptxAutomation Without Exposure.pptx
Automation Without Exposure.pptx
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automation
 
TestElf Informational Presentation
TestElf Informational PresentationTestElf Informational Presentation
TestElf Informational Presentation
 
Patterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updatesPatterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updates
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory Testing
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014
Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014
Learn Fast to Build Fast @ le Monde - Lean Kanban France 2014
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 
Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
Bug first Zero Defect
Bug first   Zero DefectBug first   Zero Defect
Bug first Zero Defect
 
Learn fast to build fast @ le Monde - Lean Kanban France 2014
Learn fast to build fast @ le Monde - Lean Kanban France 2014Learn fast to build fast @ le Monde - Lean Kanban France 2014
Learn fast to build fast @ le Monde - Lean Kanban France 2014
 
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
 
Simplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test LabSimplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test Lab
 
Continuous Delivery (The newest)
Continuous Delivery (The newest)Continuous Delivery (The newest)
Continuous Delivery (The newest)
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...
 
2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers
2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers
2010-03 Yesterday's Trusted Web Sites are Today's Malicious Servers
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
 

Mais de Olivier Destrebecq

N'en restons pas au REST, l'heure est au GraphQL
N'en restons pas au REST, l'heure est au GraphQLN'en restons pas au REST, l'heure est au GraphQL
N'en restons pas au REST, l'heure est au GraphQLOlivier Destrebecq
 
Le RGPD dans le contexte mobile
Le RGPD dans le contexte mobileLe RGPD dans le contexte mobile
Le RGPD dans le contexte mobileOlivier Destrebecq
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...Olivier Destrebecq
 
DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018Olivier Destrebecq
 
DMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifDMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifOlivier Destrebecq
 
DevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobilesDevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobilesOlivier Destrebecq
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...Olivier Destrebecq
 
Designing a json/rest api for your mobile app
Designing a json/rest api for your mobile appDesigning a json/rest api for your mobile app
Designing a json/rest api for your mobile appOlivier Destrebecq
 
DevMobCA: Continuous integration
DevMobCA: Continuous integrationDevMobCA: Continuous integration
DevMobCA: Continuous integrationOlivier Destrebecq
 

Mais de Olivier Destrebecq (13)

N'en restons pas au REST, l'heure est au GraphQL
N'en restons pas au REST, l'heure est au GraphQLN'en restons pas au REST, l'heure est au GraphQL
N'en restons pas au REST, l'heure est au GraphQL
 
React xp
React xpReact xp
React xp
 
Le RGPD dans le contexte mobile
Le RGPD dans le contexte mobileLe RGPD dans le contexte mobile
Le RGPD dans le contexte mobile
 
AWS chez Attestis
AWS chez AttestisAWS chez Attestis
AWS chez Attestis
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
 
DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018DMCA #23: Patrick kedziora - boilingice - art is theft 2018
DMCA #23: Patrick kedziora - boilingice - art is theft 2018
 
DMCA#21: reactive-programming
DMCA#21: reactive-programmingDMCA#21: reactive-programming
DMCA#21: reactive-programming
 
DMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifDMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natif
 
DevMobCA #18: beacons
DevMobCA #18: beaconsDevMobCA #18: beacons
DevMobCA #18: beacons
 
DevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobilesDevMobCA #18: L'industrialisation des application mobiles
DevMobCA #18: L'industrialisation des application mobiles
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
 
Designing a json/rest api for your mobile app
Designing a json/rest api for your mobile appDesigning a json/rest api for your mobile app
Designing a json/rest api for your mobile app
 
DevMobCA: Continuous integration
DevMobCA: Continuous integrationDevMobCA: Continuous integration
DevMobCA: Continuous integration
 

Último

BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Servicenishacall1
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfLeading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfCWS Technology
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 

Último (6)

BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
 
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfLeading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdf
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 

Mobilization 2017: Don't lose your users because of endless quality issues

  • 1. © 2017 MOBDESIGN Don’t lose your users because of Endless Quality Issues Olivier Destrebecq @otusweb olivier@mobdesignapps.fr http://www.mobdesignapps.fr
  • 2. @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
  • 3. @otusweb Crashes are expensive Imagine an app with 2 Million MAU Stable at 99.7%, so only 0.3% of users see a crash 60 000 users 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
  • 4. @otusweb So how do you avoid this? All slides available on Twitter (with extra links) @otusweb #mobilization2017
  • 5. @otusweb Get started right Know 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
  • 6. @otusweb Perform user testing Get 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
  • 7. @otusweb Security: a fine line, walk it regularly Don’t be an Equifax, Target or Yahoo Use the OWASP Mobile App Security checklist Prioritise and mitigate Review it regularly
  • 8. @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 Time 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.0 Bug 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
  • 9. @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 REMIND
 LATER ASSIGNED VERIFIED Source: Bugzilla: Lifecycle of a bug
  • 10. @otusweb Pair programming A 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
  • 11. @otusweb Code review A 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
  • 12. @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
  • 13. @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
  • 14. @otusweb Static code analysis Finds 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
  • 15. @otusweb Use crash AND error reporting What'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
  • 16. @otusweb Test on real devices in context The 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
  • 17. @otusweb Automate as much as possible I’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