continuous delivery mobile application development

Post on 06-May-2015

955 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related