2. A couple of years back
About 9 months spent by a
team of client developers
to get the application live
Management is
worried about the
amount of time and
money spent
2 months was spent on
fixing the bugs
We had about 30K
downloads but usage
metrics was about 1K
visits per week
10. fast, automated feedback on the
production readiness of your
applications every time there is a
change
whether code, infrastructure, configuration or database
Jez Humble
12. continuous delivery
small feature chunks
time
software always production ready
releases tied to business needs, not IT constraints
minimize the lead time from idea to live
concept to cash
13. continuous delivery
Your software is releasable throughout its lifecycle;
Your team prioritizes keeping the software
releasable over working on new features;
Anybody can get fast, automated feedback on the
production readiness of your systems any time
somebody makes a change to them;
You can perform push-button releases of any
version of the software on demand.
14. step 1 - continuous integration
Unit Tests
UI Tests
Acceptance Tests
Run from terminal
15. adhere to the test pyramid
Adapted from Mike Cohn (Automated Test Pyramid)
and Lisa Crispin & Janet Gregory (Agile Testing)
17. step 2 - full production pipeline
CI
SC Tests
Integration
Tests
Automated
Network
Tests
Usability
Tests
UAT Tests
Live
Manual & Parallel
18. Service contract tests
Decouple your backend from the mobile application
adhere to service contracts
backward compatible services
19. integration tests
First time in the feedback cycle, app is talking to real
services
Test your app against a environment
Run the tests on actual device
Use analytics metrics
20. network tests
You don’t know where your customer is accessing
On the move
Any kind of network
Use network link adaptor / other simulators
21. App distribution - testing
Use OTA app distribution mechanisms
Deal with groups
Distribute with confidence
Simulate the Appstore experience
TestFlight / Hockey App
22. Usability Tests
User experience *cant be compromised*!
Popup in stores
Test with Mock ups
Automate it ?
Analytics plays a big role
24. step 3 – configuration management
No hardcoded configuration in the application
Remotely enable and disable features
App version support
25. Push button release
Final manual step is to upload the ipa/apk
Change the description
Get your version numbers correct
26. What we achieved
reliability & stability
compliance & traceability
releasing at will
Built the right product
Make customers happy with continuous involvement
A telecom giant, who wanted to fix the cost of maintaining an IVR and the cost of call center9 long months to take the app to liveNo actual usage of the
A lot of time spent in analysis & design of the product without ant validation
Mobile App Development: In enterprise world / or any world for that matter, no mobile application is stand alone Every application interacts with a backend system in one form or another to make
Application delivery: 3 months was spent in deploying the build to production
Customer is always correct! If idea is wrong till it is accepted by customersAccepatnce can be measured looking at the correct data points
move away from a model where releases go out monthly or quarterly or whatever. To a model where you are constantly delivering value to production from the beginning of the project.2 beneficial effects of fast, automated feedback - your software is always production ready. you should be able to press a button and release your software to production at any time - and crucially, when you press that button, it should be a decision of the business, we shouldn’t be constrained by thinking you have to wait for the next release window in a month. it should be possible for the business to say they want a feature, it gets built in a week or two and then they can push it into production. and this is a big change, a strategic benefit for the business. if you are the business and you see a market opportunity and can react and get something out in a couple weeks, then you have incredible strategic advantage over your competitors. requires big changes in an organization. so how do we approach this?So what is the first step?