Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Mobile Application Lifecycle

Luca Milanesio

www.gerritforge.com

@jenkinsconf
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

About GerritForge
Founded in 2009 in London UK

(previously known as LMIT Software Ltd)

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

Technology partner of

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

About the speaker
Luca Milanesio

Director 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

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Agenda
Introduction and concepts
Roots of Android OS development
from Git and Gerrit
Today's Mobile ALM in the Enterprise
without Continuous Delivery
Real life [un]success story
Jenkins as an Integration and Delivery
Engine
Tell us your story !
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

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
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Where is Apple iOS ?

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

Copyright © 2013 –

Android = world's
mobile platform
leader
Android historically
linked to the Open
Source community
Concepts explored
may be applied to
iOS as well
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Why Android on Git ?
Google's internal VC not suitable for
external contributors
OpenSource VC needed
– Scalable and distributed
– Widely used by Linux community
– Strong branch and merge capabilities

Linux kernel was on Git since 2005

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Git, Gerrit and Android workflow
CI Build: OK

CI Build: OK

A1

C2*
Verified: -1
(build failed)

C2*

C2

clone

push

Verified: +1
(build OK)

refs/for/master
Reviewed: +2

push

amend

A1

Android OS
master

C2

Contributor
master

C2*
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

Putting all together with Jenkins

Work

Sprint
Burndown

Days
Copyright © 2013 –

@jenkinsconf
Jenkins User Conference

Palo Alto , Oct 23 2013

Real life [un]success story
The challenge: developing a preembedded Mobile App for a Global
Mobile Operator in 10 European
Countries to over 2,000,000 customers

Copyright © 2013 –

@jenkinsconf
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Scrum sprints timeline
Sprint N
Scope

Sprint
execution

Sprint N+1

Scope

Accept

Pub

Sprint
execution

Sprint N+2

Feedback

Accept

Scope

Sprint
execution

Copyright © 2013 –

Pub

Feedback

Accept

Pub
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Ver 1.0 / 2.0 Sprint lifecycle
Development

Code complete without feedback

Feedback

Without
feedback

Sprint N+1
start

Start

Code
committed

Day#10

Client release
Ver. N+1

Day#13

Publish &
review

Day#15

Copyright © 2013 –

Discovery
Upgrade

Day#18
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Product's feedback
Low Google Play rating

Problems over Wi-Fi
reported too late
for the current Sprint
Impact on
other Operators'
customers
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

ALM on Mobile needs change
Managing
Project
aspiration

Dive into
users'
real world

• Prescriptive, PO and stories

• Adaptive, feedback at 360°

• Time-boxed, 1 month cycle

• Limit WIP, release daily / weekly

• Locked Sprint scope

• Adaptive scope with features
and bug-fixes
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Organise the process with Jenkins
Monitor the SCM changes
Build the software App &
Backend
Run unit-tests + emulator tests
Deploy backend to QA
Real-time notify and update
App to handsets with
JenkinsMobi

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Continuous delivery on Mobile

Client
discovery
and
upgrade
Story picked
up from
backlog

Start

Code
committed

Day-2

Feedback

Client in-App
Discovery
Upgrade

Day-3
Copyright © 2013 –

Publish &
review
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Mobile ALM pipeline

Push

Build
Unit Tests
Failed

Push

Automated

Unit Tests
Failed
Push

Build

Tests

Build

Automated

Beta Users

Unit Tests

Tests

Tests

User's feedback

Copyright © 2013 –

Publish to all Users
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Building blocks

Private Network

1. Get a Mobile
Phone

2. JenkinsMobi
on board

3. Connect to
JenkinsMobi
API
Copyright © 2013 –

4. Plug to
Jenkins and
ALM Tools
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Jenkins plugins for Mobile ALM
Run Android emulator during build

Execute Monkeyrunner
Validate
changes before
Review

Orchestrate with
TeamForge
Issue planning, Build
and Test feedback loop
Fetch code from Git
Trigger build on
changes

Progress
Continuous
Delivery phase

Build Android
Gradle Projects
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

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)
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Deliver on Mobile

1. Build status

2. Build artifacts

3. Download

Copyright © 2013 –

4. Upgrade
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Inform Beta adopters on what's new

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

Bring teams together

Copyright © 2013 –

@jenkinsconf
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Share kanban with stakeholders

1. Sprint progress

2. Cards status

3. Cards list

Copyright © 2013 –

4. Cards details
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Notify problems in real-time

1. Test progress

2. Test results

3. Defects progress

Copyright © 2013 –

4. Defects list
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Overall deployment
Platform Backend
Pre-embedded
Mobile App

Jenkins CI
Jenkins
Mobi
API

Trello
Plugin
CollabNet
Plugin
HP-QC
PlugIn

JenkinsMob
i v4 Beta

Git
Plugin

Private
Network
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Challenges
Private vs Public network
Jenkins and other ALM hardened in Local Net
Public gateway for JenkinsMobi API

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

Managing feedback loop to tickets
In-App feedback request with JenkinsMobi API

Education for high level stakeholders

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

Q&A – share your experience

Copyright © 2013 –

@jenkinsconf
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Additional resources
Luca Milanesio

mail: luca@gerritforge.com 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

Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

@jenkinsconf

Plus exclusively for the JUC 2013

+

=

Continuous agile on a stick
gerritforge.com/contagile.vm.zip
Copyright © 2013 –
Jenkins User Conference

Palo Alto , Oct 23 2013

Thank You To Our Sponsors
Platinum

Gold

Silver

@jenkinsconf

More Related Content

Jenkins User Conference - Continuous Delivery on Mobile

  • 1. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Mobile Application Lifecycle Luca Milanesio www.gerritforge.com @jenkinsconf
  • 2. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf About GerritForge Founded in 2009 in London UK (previously known as LMIT Software Ltd) Mission: Agile Application Lifecycle for the Enterprise Innovator with Enterprise Agile products Technology partner of Copyright © 2013 –
  • 3. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf About the speaker Luca Milanesio Director 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 Copyright © 2013 –
  • 4. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Agenda Introduction and concepts Roots of Android OS development from Git and Gerrit Today's Mobile ALM in the Enterprise without Continuous Delivery Real life [un]success story Jenkins as an Integration and Delivery Engine Tell us your story ! Copyright © 2013 –
  • 5. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 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 Copyright © 2013 –
  • 6. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Where is Apple iOS ? Source: http://www.gartner.com/newsroom/id/2482816 Copyright © 2013 – Android = world's mobile platform leader Android historically linked to the Open Source community Concepts explored may be applied to iOS as well
  • 7. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Why Android on Git ? Google's internal VC not suitable for external contributors OpenSource VC needed – Scalable and distributed – Widely used by Linux community – Strong branch and merge capabilities Linux kernel was on Git since 2005 Copyright © 2013 –
  • 8. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Git, Gerrit and Android workflow CI Build: OK CI Build: OK A1 C2* Verified: -1 (build failed) C2* C2 clone push Verified: +1 (build OK) refs/for/master Reviewed: +2 push amend A1 Android OS master C2 Contributor master C2* Copyright © 2013 –
  • 9. Jenkins User Conference Palo Alto , Oct 23 2013 Putting all together with Jenkins Work Sprint Burndown Days Copyright © 2013 – @jenkinsconf
  • 10. Jenkins User Conference Palo Alto , Oct 23 2013 Real life [un]success story The challenge: developing a preembedded Mobile App for a Global Mobile Operator in 10 European Countries to over 2,000,000 customers Copyright © 2013 – @jenkinsconf
  • 11. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Scrum sprints timeline Sprint N Scope Sprint execution Sprint N+1 Scope Accept Pub Sprint execution Sprint N+2 Feedback Accept Scope Sprint execution Copyright © 2013 – Pub Feedback Accept Pub
  • 12. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Ver 1.0 / 2.0 Sprint lifecycle Development Code complete without feedback Feedback Without feedback Sprint N+1 start Start Code committed Day#10 Client release Ver. N+1 Day#13 Publish & review Day#15 Copyright © 2013 – Discovery Upgrade Day#18
  • 13. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Product's feedback Low Google Play rating Problems over Wi-Fi reported too late for the current Sprint Impact on other Operators' customers Copyright © 2013 –
  • 14. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf ALM on Mobile needs change Managing Project aspiration Dive into users' real world • Prescriptive, PO and stories • Adaptive, feedback at 360° • Time-boxed, 1 month cycle • Limit WIP, release daily / weekly • Locked Sprint scope • Adaptive scope with features and bug-fixes Copyright © 2013 –
  • 15. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Organise the process with Jenkins Monitor the SCM changes Build the software App & Backend Run unit-tests + emulator tests Deploy backend to QA Real-time notify and update App to handsets with JenkinsMobi Copyright © 2013 –
  • 16. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Continuous delivery on Mobile Client discovery and upgrade Story picked up from backlog Start Code committed Day-2 Feedback Client in-App Discovery Upgrade Day-3 Copyright © 2013 – Publish & review
  • 17. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Mobile ALM pipeline Push Build Unit Tests Failed Push Automated Unit Tests Failed Push Build Tests Build Automated Beta Users Unit Tests Tests Tests User's feedback Copyright © 2013 – Publish to all Users
  • 18. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Building blocks Private Network 1. Get a Mobile Phone 2. JenkinsMobi on board 3. Connect to JenkinsMobi API Copyright © 2013 – 4. Plug to Jenkins and ALM Tools
  • 19. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Jenkins plugins for Mobile ALM Run Android emulator during build Execute Monkeyrunner Validate changes before Review Orchestrate with TeamForge Issue planning, Build and Test feedback loop Fetch code from Git Trigger build on changes Progress Continuous Delivery phase Build Android Gradle Projects Copyright © 2013 –
  • 20. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 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) Copyright © 2013 –
  • 21. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Deliver on Mobile 1. Build status 2. Build artifacts 3. Download Copyright © 2013 – 4. Upgrade
  • 22. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Inform Beta adopters on what's new Copyright © 2013 –
  • 23. Jenkins User Conference Palo Alto , Oct 23 2013 Bring teams together Copyright © 2013 – @jenkinsconf
  • 24. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Share kanban with stakeholders 1. Sprint progress 2. Cards status 3. Cards list Copyright © 2013 – 4. Cards details
  • 25. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Notify problems in real-time 1. Test progress 2. Test results 3. Defects progress Copyright © 2013 – 4. Defects list
  • 26. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Overall deployment Platform Backend Pre-embedded Mobile App Jenkins CI Jenkins Mobi API Trello Plugin CollabNet Plugin HP-QC PlugIn JenkinsMob i v4 Beta Git Plugin Private Network Copyright © 2013 –
  • 27. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Challenges Private vs Public network Jenkins and other ALM hardened in Local Net Public gateway for JenkinsMobi API Provisioning to JenkinsMobi clients Application upgrade (outside Google Play) In-App notification and steps Managing feedback loop to tickets In-App feedback request with JenkinsMobi API Education for high level stakeholders Copyright © 2013 –
  • 28. Jenkins User Conference Palo Alto , Oct 23 2013 Q&A – share your experience Copyright © 2013 – @jenkinsconf
  • 29. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Additional resources Luca Milanesio mail: luca@gerritforge.com 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 Copyright © 2013 –
  • 30. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Plus exclusively for the JUC 2013 + = Continuous agile on a stick gerritforge.com/contagile.vm.zip Copyright © 2013 –
  • 31. Jenkins User Conference Palo Alto , Oct 23 2013 Thank You To Our Sponsors Platinum Gold Silver @jenkinsconf