continuous delivery mobile application development

27
Continuous Delivery – Mobile Application Development

Upload: thoughtworks

Post on 06-May-2015

955 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Continuous delivery mobile application development

Continuous Delivery – Mobile Application Development

Page 2: 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

Page 3: Continuous delivery mobile application development

timeline

Analysis & Design

Development LiveDeploymentTest

time

Analysis & Design

1 2

Development

3

Test

2 2

Deployment

1

Live

Page 4: Continuous delivery mobile application development

tip of the iceberg

Page 5: Continuous delivery mobile application development

Why

Page 6: Continuous delivery mobile application development

the last mile

Page 7: Continuous delivery mobile application development

build the right thing

theleanstartup.com/

Page 8: Continuous delivery mobile application development

don’t waste money on the wrong thing

Standish Group: how often features are used

Page 9: Continuous delivery mobile application development

How

Page 10: Continuous delivery mobile application development

fast, automated feedback on the production readiness of your applications every time there is a change

whether code, infrastructure, configuration or database

Jez Humble

Page 11: Continuous delivery mobile application development

software delivery

Page 12: Continuous delivery mobile application development

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

Page 13: Continuous delivery mobile application development

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.

Page 14: Continuous delivery mobile application development

step 1 - continuous integration

Unit Tests

UI Tests

Acceptance Tests

Run from terminal

Page 15: Continuous delivery mobile application development

adhere to the test pyramid

Adapted from Mike Cohn (Automated Test Pyramid) and Lisa Crispin & Janet Gregory (Agile Testing)

Page 16: Continuous delivery mobile application development

Testing Tools

iOS • Kiwi• GHUnit• OCUnit• Zucchini

Android• JUnit

Automation Tools• Frank• Calabash

Page 17: Continuous delivery mobile application development

step 2 - full production pipeline

CI SC Tests LiveUAT TestsUsability Tests

Network Tests

Integration Tests

Automated Manual & Parallel

Page 18: Continuous delivery mobile application development

Service contract tests

Decouple your backend from the mobile application

adhere to service contractsbackward compatible services

Page 19: Continuous delivery mobile application development

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

Page 20: Continuous delivery mobile application development

network tests

You don’t know where your customer is accessing

On the moveAny kind of networkUse network link adaptor / other simulators

Page 21: Continuous delivery mobile application development

App distribution - testing

Use OTA app distribution mechanisms

Deal with groupsDistribute with confidenceSimulate the Appstore experienceTestFlight / Hockey App

Page 22: Continuous delivery mobile application development

Usability Tests

User experience *cant be compromised*!Popup in storesTest with Mock upsAutomate it ?Analytics plays a big role

Page 23: Continuous delivery mobile application development

Usability Tests & Logging

heatmaps.io crashlytics.com

Page 24: Continuous delivery mobile application development

step 3 – configuration management

No hardcoded configuration in the application

Remotely enable and disable features

App version support

Page 25: Continuous delivery mobile application development

Push button release

Final manual step is to upload the ipa/apk

Change the description

Get your version numbers correct

Page 26: Continuous delivery mobile application development

What we achieved

reliability & stability

compliance & traceability

releasing at will

Built the right product

Make customers happy with continuous involvement

Page 27: Continuous delivery mobile application development

Q&A