Continuous delivery mobile application development
-
Upload
thoughtworks -
Category
Technology
-
view
957 -
download
1
Transcript of Continuous delivery mobile application development
Continuous Delivery – Mobile Application Development
A couple of years back
About 9 months spent by a team of client developers to get the application live
2 months was spent on fixing the bugs
We had about 30K downloads but usage metrics was about 1K visits per week
Management is worried about the amount of time and money spent
timeline
Analysis & Design
Development LiveDeploymentTest
time
Analysis & Design
1 2
Development
3
Test
2 2
Deployment
1
Live
tip of the iceberg
Why
the last mile
build the right thing
theleanstartup.com/
don’t waste money on the wrong thing
Standish Group: how often features are used
How
fast, automated feedback on the production readiness of your applications every time there is a change
whether code, infrastructure, configuration or database
Jez Humble
software delivery
continuous delivery
software always production readyreleases tied to business needs, not IT constraints
minimize the lead time from idea to liveconcept to cash
time
small feature chunks
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.
step 1 - continuous integration
Unit Tests
UI Tests
Acceptance Tests
Run from terminal
adhere to the test pyramid
Adapted from Mike Cohn (Automated Test Pyramid) and Lisa Crispin & Janet Gregory (Agile Testing)
Testing Tools
iOS • Kiwi• GHUnit• OCUnit• Zucchini
Android• JUnit
Automation Tools• Frank• Calabash
step 2 - full production pipeline
CI SC Tests LiveUAT TestsUsability Tests
Network Tests
Integration Tests
Automated Manual & Parallel
Service contract tests
Decouple your backend from the mobile application
adhere to service contractsbackward compatible services
integration tests
First time in the feedback cycle, app is talking to real services
Test your app against a environmentRun the tests on actual deviceUse analytics metrics
network tests
You don’t know where your customer is accessing
On the moveAny kind of networkUse network link adaptor / other simulators
App distribution - testing
Use OTA app distribution mechanisms
Deal with groupsDistribute with confidenceSimulate the Appstore experienceTestFlight / Hockey App
Usability Tests
User experience *cant be compromised*!Popup in storesTest with Mock upsAutomate it ?Analytics plays a big role
Usability Tests & Logging
heatmaps.io crashlytics.com
step 3 – configuration management
No hardcoded configuration in the application
Remotely enable and disable features
App version support
Push button release
Final manual step is to upload the ipa/apk
Change the description
Get your version numbers correct
What we achieved
reliability & stability
compliance & traceability
releasing at will
Built the right product
Make customers happy with continuous involvement
Q&A