Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Programmazione + Ingegnerizzazione = $ BUSINESS - Gorga
1. ROME 11-12 april 2014ROME 11-12 april 2014
Programmazione + Ingegnerizzazione = $ business
ferdinando_gorga@it.ibm.com
@fergor
Ferdinando Gorga
IBM
2. ROME 11-12 april 2014 - Ferdinando Gorga
Probabilmente siamo qui perché ci piace il software e ci piace farlo.
Motivi che ci spingono a scrivere software:
•Insonnia
•Amore per la tecnologia
•Inclinazione verso l’enigmistica
•Cervello pieno di idee
•Desiderio di innovare
•Desiderio di creare business
3. ROME 11-12 april 2014 - Ferdinando Gorga
Il software è un meccanismo per veicolare guadagni e business
Il software è una componente importante della tecnologia e abilitatore di
nuove tecnologie.
Le nuove tecnologie consentono di creare nuovi modelli di business (ad
esempio il commercio elettronico, il mobile government ...) e quindi nuovi
guadagni, nuove aziende, nuova ricchezza.
Sono anche lo strumento di disruption di modelli e abitudini consolidate.
In poco più di 20 anni la metà delle aziende nel gruppo delle top 500
Fortune è scomparsa.
Erano leader di settore e sicure di prosperare.
4. ROME 11-12 april 2014 - Ferdinando Gorga
Immaginiamo di essere in grado di scrivere del software nella maniera
migliore possibile, poniamoci la seguente domanda:
Saper programmare è un’attitudine sufficiente a creare una macchina
che implementa business e veicola guadagni o sono necessarie altre
competenze e l’uso di altre discipline?
In altri termini: cosa altro dobbiamo saper fare per far si che il software
che scriviamo sia un veicolo di business?
Prima di rispondere a questa domanda consideriamo quali sono i trend e
i contesti che condizionano la produzione e l’utilizzo del software.
5. ROME 11-12 april 2014 - Ferdinando Gorga
Globalizzazione: le competenze
Scrivere un sistema software non semplice implica la collaborazione con un team di
persone che possono essere reperite ad hoc in tutto il mondo.
La tecnologia IBM può connettere queste persone distribuite sul territorio azzerando le
distanze e favorendo l’utilizzo dei migliori skill al prezzo più conveniente.
Le tecnologie: mobile
Il software è sempre più utilizzato tramite dispositivi mobili. Questa tecnologia
crescente porta nuovi problemi e nuove sfide (frammentazione delle architetture,
linguaggi e S.O.) e nuove implicazioni (qualità e criticità delle app) con ulteriori costi.
E’ necessaria una vision e strumenti che consentano la produzione del SW mobile con
un approccio non pionieristico, tipico delle nuove tecnologie.
Il software mobile che noi percepiamo è quasi sempre l’ultimo strato di una architettura
composta da ulteriori sistemi di backend.
E’ il System of Engagements (SoE)
La complessità è in crescita
6. ROME 11-12 april 2014 - Ferdinando Gorga
Il mercato e la competition:
Oggi il software ha una connotazione più ‘umanistica’ che mai, nel senso di essere
profondamente connesso con l’esperienza di vita sociale dell’umanità occidentale.
Oggi il software è soggetto a mode (l’esempio di preferenza di taluni sistemi di email
o social su altri), a doversi misurare con la competition che può arrivare anche da
inaspettate direzioni (un esempio è la quasi totale disruption del mercato degli SMS
da parte di app tipo Whatsapp – che costa meno di 10 sms).
•Le regole del mercato che 10 anni fa erano stabili e ineludibili sono attualmente totalmente
stravolte.
•La separazione dei ruoli di fornitore/consumatore di informazioni in molti casi è totalmente
ribaltata o inesistente
Le applicazioni devono evolvere velocemente per soddisfare le esigenze e le
aspettative degli utilizzatori. La crescita e maturazione delle applicazioni porta con se
nuovo business e nuovi clienti. Avere un canale che veicoli i feedback e le richieste
consente, insieme all’utilizzo della ‘sentiment analysis’, di far crescere le nostre app
nella giusta direzione.
Crescita dell’app in gergo tecnico significa enhancement request, codifica, test,
build, deploy, misurazione dei livelli di qualità. Se devo essere veloce per
soddisfare in un giorno le richieste dei miei clienti tutte queste fasi devono essere
eseguite automaticamente.
7. ROME 11-12 april 2014 - Ferdinando Gorga
Una risposta a questi trend, vincoli e condizioni è l’adozione
dell’opportuna tecnologia per implementare le seguenti practices:
•Continuous delivery e DevOps
•Quality management
•Collaborative application lifecycle management
•Automazione (dei test, delle build, del deploy, della produzione della
documentazione)
•Il riuso del capitale intellettuale maturato in azienda
•La virtualizzazione
•In generale l’utilizzo estensivo della tecnologia
8. ROME 11-12 april 2014 - Ferdinando Gorga
Cosa significa Qualità di un’app
Assenza di bug?
Per avere speranza e continuità di successo l’assenza di bug è solo un traguardo
iniziale.
Le applicazioni devono essere progettate e misurate a 360 gradi attraverso la
percezione dell’utenza: performance, contenuti, estetica, usabilità, user experience
ecc.
Se non abbiamo strumenti per indagare anche la parte ‘umanistica’ di quel software
gli utenti non lo sceglieranno e non lo porteranno in tasca nel loro smartphone.
Le qualità di un’app sono sempre più simili a quelle di un capo di abbigliamento.
Non basta che copra e che sia adeguato alla stagione. Deve anche esibire altre
caratteristiche (come trend, materiali, brand, target di età ecc).
La qualità è un fattore critico differenziante
Il suo ranking può essere in maniera ‘virale’ condiviso attraverso i canali social e
l’immagine della società e della soluzione ne può essere fortemente impattata.
Un approccio omnicomprensivo alla qualità delle applicazioni e dei sistemi che IBM
ha ideato è il seguente.
10. ROME 11-12 april 2014
Continuous delivery for mobile apps
backed by a set of cloud services for each stage of the app lifecycle
Developer
Checks in code
Mobile build service
Manual mobile
testing services
Post-release
mobile services
Daily
Hourly
Release
Weekly
Automated mobile
testing services
Mobile device farm
11. ROME 11-12 april 2014
Automated mobile testing capabilities
Developer
Checks in code
Mobile build service
Automated mobile
testing services
Manual mobile
testing services
Daily
Hourly
Release
Weekly
• In-app user feedback
• Crash data capture & analysis
• App store user sentiment
analysis
• Over-the-air distribution
• In-app bug reporting
• Crash data capture & analysis
• Performance profile capturing
• Problem determination
Mobile device farm
Automated mobile
testing services
Mobile device farm
• Automated function test
• Random generated testing
• Remote test device access
(via device farm)
• Mobile device resource
utilization analysis
• Crash data capture
Post-release
mobile services
12. ROME 11-12 april 2014
IBM Automated Mobile App Function Testing
High quality mobile apps built and tested for a rapidly evolving mobile infrastructure
Mobile Test Automation
Support Worklight and native iOS or
Android mobile apps
Eclipse Client integration
Integration with Rational Quality
Manager and IBM Worklight Studio
End-to-end mobile testing
Capture and replay of multi-touch
events with virtualization of multi-tier
systems
“Being agile, we are developing tests as we write our code, so automating the functional
tests of our mobile apps and using them for regression on multiple platforms makes our
team much more productive!” - Mobile developer
IBM Rational Test Workbench v8.5 and Worklight Studio v6.0
13. ROME 11-12 april 2014
Test Editor
Discover test flow
Screen captures of test elements
Insert test verification points
14. ROME 11-12 april 2014
Test Reports client
Available in workbench or moile client
15. ROME 11-12 april 2014
Virtualize back-end services to maintain agility
Rational Test Workbench
Service Virtualization support for
isolating mobile client tier
For focused automated mobile client tier functional testing, use
Service Virtualization to simulate the mobile middle tier and back
office systems.
Client Tier Devices
UI Testing
Client Value: Mobile development team can meet aggressive schedules and
reduce MIPS usage on enterprise systems
16. ROME 11-12 april 2014
Specific cloud hosted mobile development services for all phases
of mobile app maturity
Developer
Checks in code
Mobile build service
Automated mobile
testing services
Manual mobile
testing services
Daily
Hourly
Release
Weekly
• In-app user feedback
• Crash data capture & analysis
• App store user sentiment
analysis
• Over-the-air distribution
• In-app bug reporting
• Crash data capture & analysis
• Performance profile capturing
• Problem determination
Mobile device farm
Automated mobile
testing services
Mobile device farm
• Automated function test
• Random generated testing
• Remote test device access
(via device farm)
• Mobile device resource
utilization analysis
• Crash data capture
Post-release
mobile services
17. ROME 11-12 april 2014 - Ferdinando Gorga
IBM Mobile Quality Assurance
Ibm.biz/mobilequalitycloud
Una soluzione per la sentiment analysis, per i test manuali per i beta tester è
Una soluzione per l’automazione di test funzionali e prestazionali, per
la virtualizzazione di sottosistemi o di sistemi di backend è
IBM Rational Test Workbench
Una soluzione per l’automazione delle attività di deploy è:
IBM UrbanCode uDeploy
Una soluzione per la scrittura di app enterprise multipiattaforma è:
IBM Worklight
Open beta
Una soluzione per la scrittura di app enterprise multipiattaforma è:
IBM Worklight
Una soluzione per gestire cicli di sviluppo con team distribuiti è:
IBM Collaborative Life-cycle Management (Jazz)
18. ROME 11-12 april 2014
Helping the software team get smarter about their mobile apps
Tester End UsersDeveloperLOB/Digital Marketer
“When someone leaves a negative review in the app store, it scars
your app for life, you can’t respond to it, and you can’t learn more
about the problem in order to fix it quickly.”
- Mobile Orchard
• How effective our mobile
app is at engaging
customers?
• How can I stay on top of
current quality metrics, and
turn them into an
actionable strategy?
• How could I get visibility to
issues that customers
experience in production
so that I can address them
quickly?
• How can I get more
people to test the apps so
that we can cover different
devices, network carriers,
and OS versions?
• How can I get the latest
and greatest build without
wasting my time to track
that down?
• How can I quickly submit
bug reports with
screenshots and device
details right from the
application?
• How can I provide
direct and
constructive
feedback?
19. ROME 11-12 april 2014
Tester End UsersDeveloper
Over the air build distribution1 In app bug reporting2
Crash log reporting
4
In app user feedback3
LOB/Digital Marketer
Sentiment Analysis5
Builds
User Feedback
Crash logs
Bugs
Bugs vs. Crashes
Quality Dashboard
with Sentiment Analysis
Continuously deliver quality mobile applications
IBM Mobile Quality Assurance (beta)
20. ROME 11-12 april 2014
Over the air app distribution
Developer uploads new build
Identifies test devices
IBM MQA notifies testers
Testers download new version
through the app or thru IBM MQA
Enables developers to distribute new builds to test devices
21. ROME 11-12 april 2014
In app bug reporting
When bugs are identified, user simply
shakes their device
1. IBM MQA is activated
2. Bug details are reported in
structured manner to RTC
Bug details include
•Device maker & model
•OS & version
•Carrier & connection speed
•Battery life & resolution
•Repro steps & screenshot
Enables developers to receive bug reports
22. ROME 11-12 april 2014
Crash log reporting
When your app crashes, IBM MQA logs
the event
IBM MQA captures the crash details
•Device maker & model
•OS version
•Carrier & connectivity
•Battery life
•Stack trace
•Logs
IBM MQA aggregates all crashes into an
easy-to-use reporting UI
Enables developers to know when and why crashes occur
23. ROME 11-12 april 2014
Direct user feedback
Developers can customize the feedback
workflow
When user has feedback, they trigger a
feedback widget
IBM Mobile Quality Assurance is
activated
Free-form feedback is shared directly to
IBM MQA
Enables developers to connect with users
24. ROME 11-12 april 2014
Evidence-based prioritization
Collaborate on mobile strategy and end
user experience
IBM MQA delivers
•Tracking of app installations
•Cumulative usage sessions
•Crash report tracking over time
Enables prioritization of action on mobile app development
25. ROME 11-12 april 2014
Sentiment Analysis
Mine app ratings and reviews to extract
actionable feedback
IBM MQA allows users to see
•Review stats on their mobile apps
•Detailed attribute scores
•Cumulative sentiment score and trends
Enables line of business to mine user sentiment
Coming soon – Not yet in Open Beta