Consigli su come sviluppare e rilasciare App di Qualità:
1 portare utenti finali nel progetto di sviluppo, 2 elementi da considerare in fase di testing, 3 progettare un'interaction design di successo, 4 dall'idea all'app di successo, 5 azzerare il tasso di abbandono.
4. 1. Team Interdisciplinari
2. Tecniche Agile
3. Tecniche di interazione con utenti reali
Soluzioni crowd: Testing in crowd, A/B testing, …
Analitycs (non solo Google…)
Cosa non deve mancare per coinvolgere gli utenti reali nella
progettazione e nello sviluppo:
5. Discover • Business
requirements
Design •Technical
design
Develop
•Coding &
testing
Test
•Client
OK &
Launch
Waterfall Method Agile Method
Discover
Design
Develop
Test
Discover
Design
Develop
Test
Discover
Design
Develop
Test
Sprint #1
Sprint #2
Sprint #3
6. Discover
• Business
requirement
s
Design •Technical
design
Develop
•Coding &
testing
Test
•Client
OK &
Launch
Waterfall Method Agile Method
Discover
Design
Develop
Test
Discover
Design
Develop
Test
Discover
Design
Develop
Test
Sprint #1
Sprint #2
Sprint #3
I passaggi chiave (Concept, Design
Sviluppo e Testing) devono essere
incastonati nei processi di sviluppo
software siano essi a cascata o
tramite metodologie Agile.
Le metodologie agile permettono di
iterare I concetti chiave più volte
durante il tempo e quindi, in sintesi,
abbattono I tempi e I costi di sviluppo
tendendo a generare risultati ad un
livello di qualità più elevato.
7. I VALORI
Gli individui e le interazioni più che i processi e gli strumenti
Il software funzionante più che la documentazione esaustiva
La collaborazione col cliente più che la negoziazione dei contratti
Rispondere al cambiamento più che seguire un piano
«Agile» è un termine che descrive diverse metodologie per gestire progetti e team IT e
sviluppo software. Molto utilizzato nello sviluppo software mobile. La parola «Agile» è
definita dall’Agile Manifesto (http://agilemanifesto.org).
8. PLAN
SPRINT
MEETING
DEVELOP.
DEPLOY
TEST CICLE N
INSPECT
AND FIX
Development Team
Issues and improvement
Il testing assume un ruolo chiave soprattutto nei processi di sviluppo agile perché permette di guidare lo sviluppo
allineandolo velocemente ai requisiti di business.
SPRINT 2 SPRINT N
Time
PLAN
SPRINT
MEETING
DEVELOP.
DEPLOY
TEST CICLE 2
INSPECT
AND FIX
Development Team
Issues and improvement
9. Crowd Testing Services
• servizi di ottimizzazione delle app e dei siti web basate su
tecniche crowd (community di tester)
Principali benefici:
• Miglioramento della qualità dei servizi digitali (app e website)
• Convalida di mockup e prototipi
• Identificazione dei bug e dei problemi prima di andare «live»
• Testing eseguito da persone reali (test User Experience)
• Affrontare efficacemente la frammentazione dei device mobili
• Diminuzione dei costi e dei tempi di sviluppo (time to market)
10. Il crowd testing affianca le classiche tecniche di testing (più da system
integrator). E’ quindi possibile:
• Effettuare test funzionali e di user experience inserendo persone reali nel ciclo di
sviluppo software (anche gli utenti finali)
• Gestire il test in diversi momenti del ciclo di sviluppo software (eg: test di prototipo)
con test ben definiti a rilasci continui (Fast Prototype Validation, Mockup validation,
Card sorting, Tree Testing)
• Effettuare test «off lab», nel mondo reale, e non in laboratorio a condizioni perfette
• Coprire molti terminali velocemente e a costi contenuti (problema della
frammentazione) (50/100 terminali in poche ore)
• Evitare l’effetto «vacuum» dovuto al rivedere in continuazione la stessa App i
problemi importanti non vengono identificati dal crowd e il team di sviluppo si può
concentrare sulla loro risoluzione, non sulla loro identificazione
11. Team interno Crowd Testing
Copre 2 device per persona >> 6-8 device coperti per un
ciclo di test mediamente
50 o più device coperti allo stesso costo
Sottoposto a pressioni sulle consegne e necessità di
lavorare in sovrapposizione ad altri task
Coperture necessarie deliverate in poco tempo >> e
solo quando il test è richiesto (estrema flessibilità)
2 settimane o più per raggiungere le coperture corrette
Alta qualità e copertura deliverata in 2 giorni (anche in
poche ore con i nuovi modelli + 99% bug identificati)
Vacuum approach: rivedendo ripetutamente la stessa
app >> le issue importanti non vengono identificate
“Fresh eyes”, modello commission driven, on the wild
approach >> 99% bug identificati
Focalizzazione degli sviluppatori sul creare le
competenze correte per sviluppare le key features e non
«sprecare» prezioso (e costoso) tempo di sviluppo
Team esterno che assicura l’app «bug free» e che
costruisce le competenze di testing
VS
Un team interno può avere spazio nei processi di sviluppo software ma
spesso non è sufficente.
12. Condivisione app/website nella
community
(crowd.app-quality.com)
Set-up tests e crowd engagement
Viene configurata la campagna di test da un
nostro PM oppure direttamente dal cliente finale
21
3
I tester cominceranno a testare sui propri
terminali e eseguiranno tutti i passaggi del
manuale di test
Problemi, feedback, dati sull’utilizzo, suggerimenti,
bug, … vengono caricati e resi automaticamente
disponibili nella dashboard del cliente
Sono previsti anche tool che permettono di connettersi con i sistemi
di sviluppo software del cliente (come i sistemi di bugtracking)
4
13.
14. Source: Open Signal - http://opensignal.com/reports/2015/08/android-fragmentation/
Frammentazione dei device Android
La frammentazione dei device è un
aspetto critico ed è fondamentale
governarlo durante le fasi di test,
sopratutto per quanto riguarda i
device Android
15. 21
3 4
FRAGMENTATION GEO LOCALIZATION
INTERACTION RESOURSE LACKING
La frammentazione non è
l’unico aspetto da monitarare,
il mobile ha delle peculiarità
che devono essere guidate e
controllate.
16. Ecco altri elementi critici da affrontare nella fase di sviluppo e test mobile :
Differenti piattaforme e device supportati (Frammentazione)
• Dimensioni dello schermo in continua evoluzione (eg. Responsiveness)
• Diverse versioni dei sistemi operativi
• …
Complessità UI (User Interaction)
• Ogni piattaforma ha i propri pattern di utilizzo
• …
Differenti tipi di Applicazione – HTML5, Native or Hybrid
Necessità di testare in ambiente reali
• Non su emulatori e simulatori
• Sessioni e interruzioni costanti >> complessità esogena all’ambiente di sviluppo
Problemi di sicurezza e privacy >> molta attenzione sulla gestione dei dati
Risorse scarse: batteria, connessine dati, rete, GPS
Test di performance: La velocità di erogazione dei contenuti è chiave nel mondo mobile
19. Un ultimo punto: defect cost
9 €
25 €
100 €
792 €
0 € 100 € 200 € 300 € 400 € 500 € 600 € 700 € 800 € 900 €
Analisi dei requisiti
Design & Coding
Testing
Produzione
Qual è il costo di rilevamento e di risoluzione dei bug?
Il costo di risoluzione del bug cambia drasticamente a seconda di quando viene rilevato.
Nel caso in cui il difetto viene rilevato nella fase di analisi dei requisiti il suo costo è di 9 €, ma nel caso
di rivelazione in fase di testing il costo è di circa 100 €. Nella normale fase di manutenzione e
produzione, la gestione completa della risoluzione costa in media 792 €.
Source: 2008 GBS Industry Standard Study
20.
21. Definizione di Usability
L’usabilità è un attributo di qualità che valuta la facilità di utilizzo delle interfacce utente. La parola "usabilità" si
riferisce anche ai metodi di miglioramento della facilità d‘utilizzo durante il processo di design.
L’usabilità è definita da 5 componenti di qualità:
• Learnability: Quanto è facile per gli utenti eseguire le operazioni di base la prima volta
incontrano l’interfaccia?
• Efficiency: Una volta che gli utenti hanno imparato ad usare l’interfaccia, quanto
velocemente sono in grado di eseguire i task?
• Memorability: Quando gli utenti tornano ad utilizzare l’interfaccia dopo un lungo periodo
di inattività, quanto facilmente riescono a ripristinare la loro confidenza?
• Errors: Quanti errori commettono gli utenti? Quanto sono gravi questi errori? Quanto
facilmente riescono a rimediare agli sbagli?
• Satisfaction: Quanto è piacevole l’utilizzo dell’interfaccia?
Dr. Don Norman – Nilsen/Norman Group
22. Definizione di UX:
L'esperienza utente comprende tutti gli aspetti dell'interazione del cliente
con una società, i suoi servizi e i suoi prodotti.
L’origine del termine viene dal dr. Don Norman:
Ho inventato il termine perché pensavo che Human Interface e
Usability fossero definizioni che andassero troppo strette con
quello che avevo in mente: volevo coprire tutti gli aspetti
dell’esperienza di una persona con un sistema, sia questo
il processo di design industriale, grafico, l’interfaccia o
l’interazione fisica e manuale.
Da quel momento, il termine ha iniziato a diffondersi
così velocemente che ha iniziato a perdersi di significato.
25. Best practices
Convalida dei mockup con utenti reali (Card sorting, Tree Test, …)
Verifica dei prototipi con utenti reali o utenti in customer base
Sviluppo agile coinvolgendo gli utenti finali ad ogni sprint
Tecniche di Guerilla Usability
Tecniche di Usability Video (Thinking Aloud Usability Testing - Nielsen Norman Group)
Apps Benchmarking
Competitor analisys
A/B testing
27. Homepage - Mobile
Suggerimenti
Anche nella versione mobile il menu
presente prima del footer risulta essere
molto efficace ma poco chiaro.
In questo infatti la gerarchia legata alla
navigazione sembra perdersi quasi
completamente una volta entrati nella
categoria appartenente ad uno dei canali.
Un tipo di navigazione simile a quello del
main menu potrebbe facilitare la
navigazione di questa sezione.
Attualmente, una volta aperto il sotto
menu di una categoria, non risulta chiara
l’azione che l’utente deve compiere per
poter richiudere questo sotto menu.
In un thinking aloud test, si chiede ai partecipanti di utilizzare il sistema pensando ad alta voce,
verbalizzando i loro pensieri mentre si muovono attraverso l'interfaccia utente.
28. Esempi navigazione
Nella prima schermata è stato riportato
un esempio di navigazione simile a quello
presente nel menu della piattaforma ***
Video. In questo caso però la gerarchia
risulta chiara ed efficace.
Nella seconda schermata invece è
riportato un esempio in cui una
navigazione molto complessa è
rappresentata sotto forma di veri e propri
“layer”. Questo esempio potrebbe
diventare uno spunto utile a migliorare
anche la navigazione di questo
componente anche da Desktop.
https://goo.gl/UY0uVt https://goo.gl/sDr4qA
29. Test Type
App
PM
PMContact
Test Period
Android
iOS
292
Bug Split Critical High Medium Low TOT
Crash 8 4 1 0 13
Functional 3 8 13 2 26
Malfunction 1 8 3 2 14
Performance 0 2 2 3 7
Security 0 0 1 0 1
Typo 0 0 0 1 1
Usability/Graphic 0 2 12 13 27
Other 0 0 2 1 3
TOT 12 24 34 22 92
Test cases bug finding
My Beta
Edoardo Vannutelli Depoli
edoardo.vannutelli@gmail.com
From 23/11/2016 to 27/11/2016
# Testers # Active Testers BUGS submitted BUGS accepted
25 21 92 78
13 10 34 31
12 11 58 47
Total Media
Video Screenshots
31 261
9 5
BUGS refused BUGS need review
2 1
7 4
0
2
4
6
8
10
12
14
Critical High
BUGS refused
10%
BUGS need
review
5%
BUGS accepted
85%
I test di bug finding consentono di individuare tutte quelle
problematiche che inficiano l’experience dell’utente. Trovarli prima
di andare live, sfruttando il crowd testing, vuol dire ottenere
valutazioni migliori negli store e migliorare il livello di usability.
30.
31. Invece di passare mesi a progettare l’app o la feature che pensate
essere quella perfetta per poi scoprire non essere efficaci, si
possono usare tecniche crowd, testando il prototipo con le persone
finali ancora prima di partire con lo sviluppo. Questo velocizza molto
i tempi e permette di andare nella direzione corretta sin da subito.
Tutto ciò è possibile perché i crowd testing possono essere eseguiti
anche un ambiente controllato.
32. Obbiettivi
• Ridurre il time to Market
• Rispondere efficacemente all’esigenza dell’utente reale
• Reagire rapidamente alle variazione del contesto e dell’utente
• Confermare le ipotesi di progetto prima di avviare lo sviluppo
Strumenti
• Approccio lean
• Sviluppo Agile
• Verifica prototipi
• Crowd in contesti protetti (Ambiente di Test o Staging)
33. Far rispondere gli utenti ripetutamente ad una stessa domanda postagli più volte
al giorno aiuta ad identificare i loto bisogni ed i loro problemi.
Osserva, ascolta, fai attenzione ai dettagli e raccogli i comportamenti degli utenti. Ciò
ti aiuterà a validare o meno le tue ipotesi e a scoprire le reali intenzioni dei clienti.
Esplora i bisogni del mercato, conoscendo la domanda per il tuo
prodotto ancora prima di svilupparlo.
https://www.youtube.com/watch?v=9TJTbRw4ri8&t=1817s
34.
35. Testing multidispositivo e multipiattaforma
Login e registrazione semplificati
• Devono essere chiari i benefici prima di effettuare il login
• Il processo deve essere più smooth possibile
• 68% dei mobile user è scoraggiato da un processo di login e registrazione troppo complesso
Attenzione alla Privacy
• L’utente raramente legge policy troppo complesse
• Ogni permission richiesta dal dispositivo dell’utente deve corrispondere ad una precisa operazione ed
una motivazione efficace
User experience, anzi interaction design
• L’interazione tra la app e l’utente deve essere approcciata nel sui insieme indentificando i flussi di
utilizzo
Non sottovalutare (e non sopravvalutare) le notifiche
• Possono aumentare l’engagement anche dell’88% ma il 50% degli utenti le trovano fastidiose: devono
essere progettate con estrema attenzione
36. 1. Identificare gli stati critici chiari ed il comportamento dell’utente
in quegli stati (per esempio l’App viene chiusa in fase di acquisto)
2. Definire una gestione operativa per ciascun stato critico
3. Identificare con chiarezza l’Audience ( Dati demografici, App
Engagement, App Activity)
4. Identificare e misurare con chiarezza il percorso dell’utente
dall’onboarding all’utilizzo normale
5. Definire in modo chiaro degli obbiettivi di engagement e delle
metriche quantificabili per verificarli
37. » Crowd Testing testa il prodotto in ambienti reali
» Analytics tracciare il comportamento degli utenti
» Analytics Intelligence fare inferenza dai dati misurati per
tradurre in scelte operative
» A/B Testing verificare le ipotesi effettuate a valle delle
inferenze
» Agile Devel portare all’utente il prima possibile gli sviluppi
per avere una feedback reale
» Continuous Test verifica e monitoraggio costante dei
percorsi core
38. Esempio di bug finding
Nei test di bug finding i tester riportano in modo rigoroso la descrizione del problema riscontrato,
dando anche un’idea di quello che è il comportamento che si attenderebbero.
Approved Refused
Need review Pending
0 1 2 3 4 5
T144
T64
T1349
T659
Tester activity
Select
tester
39. É possibile automatizzare l’upload delle segnalazioni dei tester sui vostri sistemi di bug tracking
Jira, Redmine e Bitbucket sono solo alcuni esempi. Il nostro Sistema supporta l’integrazione con
BugZilla, Github, Asana, Trello, Pivotal e moltri altri bug tracker.
Questo permette ai team di sviluppo di intervenire in real time per risolvere le problematiche
riscontrate, abbattendo considerevolmente i tempi di rilascio dei nuovi prodotti digitali.
40. Esempio di A/B testing
L’ “A/B Testing”, è un
processo di test attraverso
cui si vanno a confrontare
simultaneamente due, o
più, possibili soluzioni.
41. Fabrics permette di studiare il livello di coinvolgimento degli utenti e di aumentarne quindi il
retantion rate.