jenkins user conference - continuous delivery on mobile

31
Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Mobile Application Lifecycle Luca Milanesio @jenkinsconf www.gerritforge.com

Upload: luca-milanesio

Post on 06-May-2015

1.334 views

Category:

Education


5 download

DESCRIPTION

SmartPhones have revolutionised the way we think and write software: how can you take an additional step and actually have your SmartPhone drive development? With Jenkins, you can drive and integrate every step of your development with your SmartPhone, end-to-end: CI and delivery - Application install - Test execution - Issue tracking. See how to implement mobile plugins for Jenkins on mobile

TRANSCRIPT

Page 1: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Mobile Application Lifecycle

Luca Milanesio

@jenkinsconf

www.gerritforge.com

Page 2: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

About GerritForge

Founded in 2009 in London UK(previously known as LMIT Software Ltd)

Mission: Agile Application Lifecycle for the EnterpriseInnovator with Enterprise Agile products

Technology partner of

Page 3: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

About the speaker

Luca MilanesioDirector and co-founder of GerritForge

Over 20 years of experience in Agile Development Management, SCM and ALM in large Enterprises worldwide Contributor to Jenkins since 2007 (and previously Hudson)

Git SCM mentor for the Enterprise since 2009

Contributors to Gerrit Code Review community since 2011

Page 4: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Agenda

Introduction and conceptsRoots of Android OS development from Git and Gerrit Today's Mobile ALM in the Enterprise without Continuous DeliveryReal life [un]success storyJenkins as an Integration and Delivery EngineTell us your story !

Page 5: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Concepts

The most successful Version Control Tool of the last 5 years.

World's #1 Open Source continuous integration engine

Mobile Application platform for accessing Jenkins continuous integration API from Android or iOS

World's #1 Open Source Mobile Operating System, powering over 900M

of devices world wide

Page 6: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Where is Apple iOS ?

Source: http://www.gartner.com/newsroom/id/2482816

Android = world's mobile platform leaderAndroid historically linked to the Open Source communityConcepts explored may be applied to iOS as well

Page 7: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Why Android on Git ?

Google's internal VC not suitable for external contributorsOpenSource VC needed– Scalable and distributed– Widely used by Linux community– Strong branch and merge capabilities

Linux kernel was on Git since 2005

Page 8: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Git, Gerrit and Android workflow

A1

refs/for/master

Android OSmaster

C2 C2*

A1

clone

C2 ContributormasterC2*

push

Verified: -1(build failed)

push

Verified: +1(build OK)

Reviewed: +2

CI Build: OK

C2*

CI Build: OK

amend

Page 9: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Putting all together with JenkinsW

ork

Days

Sprint Burndown

Page 10: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Real life [un]success story

The challenge: developing a pre-embedded Mobile App for a Global Mobile Operator in 10 European Countries to over 2,000,000 customers

Page 11: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Scrum sprints timeline

ScopeSprint

executionAccep

tPub Feedback

Sprint N

ScopeSprint

executionSprint N+1

ScopeSprint

executionSprint N+2

PubAccep

tFeedback

PubAccep

t

Page 12: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Ver 1.0 / 2.0 Sprint lifecycle

Discovery Upgrade

Code committe

d

Publish & review

Client release Ver. N+1

Start Day#10

Day#13

Day#15

Day#18

FeedbackCode complete without feedback

Sprint N+1 start

Development

Without feedback

Page 13: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Product's feedback

Low Google Play rating

Problems over Wi-Fireported too late

for the current Sprint

Impact onother Operators'customers

Page 14: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

ALM on Mobile needs change

• Prescriptive, PO and stories

• Time-boxed, 1 month cycle

• Locked Sprint scope

• Adaptive, feedback at 360°

• Limit WIP, release daily / weekly

• Adaptive scope with features and bug-fixes

ManagingProject

aspiration

Dive intousers'

real world

Page 15: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Organise the process with Jenkins

Monitor the SCM changesBuild the software App & BackendRun unit-tests + emulator testsDeploy backend to QAReal-time notify and update App to handsets with JenkinsMobi

Page 16: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Continuous delivery on Mobile

Code committed

Story picked up

from backlog

Publish & review

Client in-App

Discovery Upgrade

Start Day-2 Day-3

FeedbackClient

discovery and

upgrade

Page 17: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Mobile ALM pipeline

Push Build

Unit Tests

Push Build

Unit Tests

Automated

Tests

Push

Build

Unit Tests

Automated

Tests

Beta Users

Tests

User's feedback

Publish to all Users

Failed

Failed

Page 18: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Building blocks

Private Network

4. Plug to Jenkins and ALM Tools

1. Get a Mobile Phone

2. JenkinsMobi on board

3. Connect to JenkinsMobi API

Page 19: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Jenkins plugins for Mobile ALMRun Android emulator during

build

Execute Monkeyrunner

Orchestrate with TeamForge

Issue planning, Build and Test feedback loop

Validate changes before

Review

Fetch code from Git

Trigger build on changes

Build Android Gradle Projects

Progress Continuous

Delivery phase

Page 20: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Mobile App build in Jenkins

Build on Jenkins- Git + Gradle plugin- Archive **/*-debug-*.apk

Test with Monkeyrunner - Develop Python test scripts- Run with Android emulator - Monkeyrunner plugin

Acceptance test on real devices (i.e. Test-cloud services on real handsets)

Page 21: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Deliver on Mobile

1. Build status 2. Build artifacts

3. Download 4. Upgrade

Page 22: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Inform Beta adopters on what's new

Page 23: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Bring teams together

Page 24: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Share kanban with stakeholders

1. Sprint progress

2. Cards status

3. Cards list 4. Cards details

Page 25: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Notify problems in real-time

1. Test progress

2. Test results 3. Defects progress

4. Defects list

Page 26: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Jenkins CI

Overall deployment

Jenkins Mobi API

Trello Plugin

CollabNet Plugin

HP-QC PlugIn

GitPlugin

Platform Backend

Pre-embeddedMobile App

JenkinsMobi v4 Beta

Private Network

Page 27: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Challenges

Private vs Public networkJenkins and other ALM hardened in Local NetPublic gateway for JenkinsMobi API

Provisioning to JenkinsMobi clientsApplication upgrade (outside Google Play)In-App notification and steps

Managing feedback loop to ticketsIn-App feedback request with JenkinsMobi API

Education for high level stakeholders

Page 28: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Q&A – share your experience

Page 29: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Additional resourcesLuca Milanesiomail: [email protected] twitter:@gitenterprise

Mobile Application Lifecycle slides:slideshare.net/lucamilanesio

Continuous Agile e-book from A.Singleton:www.continuousagile.com/unblock

JenkinsMobi OpenSource Project:github.com/jenkinsci/jenkinsmobi-plugin

JenkinsMobi v4 Beta:jenkins-ci.mobi/#v4beta

Page 30: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Copyright © 2013 –

Plus exclusively for the JUC 2013

+

=

Continuous agile on a stickgerritforge.com/contagile.vm.zip

Page 31: Jenkins User Conference - Continuous Delivery on Mobile

Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf

Thank You To Our SponsorsPlatinum

Gold

Silver