SlideShare a Scribd company logo
S E T T I N G U P C O N T I N U O U S
D E L I V E RY C U LT U R E
F O R A L A R G E S C A L E M O B I L E A P P
Naresh Jain
@nashjain
http://nareshjain.com
M O B I L E C D - K E Y C H A L L E N G E S ?
• Code & Config spread across multiple dependent repos -
how to do CI?
• How do you manage access to multiple test phone?
• With lack of quality tests, how do you promote your
artifacts?
• How can we manage different kind of environments, to
support different kinds of test?
• How do we visualise your code quality?
F O R A N E F F E C T I V E C D C U LT U R E
Hypothesis
Validation
Build MVP
Staged Rollout
AB Exp
Monitor
Analyse
Insights
Refine
Measure
Speed
Quality
Commercial Break!
Copyright
© 2012,
Mumbai
Tech Talks!
12
I O S A P P C D C H A L L E N G E S
• Apple takes any where between 3 Days to 1 Week to
push a new update to the app store
• Pretty complicated and cumbersome signing and
packing process (in 2012-13)
• Need to deploy to actual iOS devices to test minor
changes
H O W D I D W E S O LV E T H I S P R O B L E M S ?
• We decided to go down the Hybrid App Route
• Changes/Updates needed to be made at 3 levels:
• Content Changes & Logic Changes => JS/JSON
• Look and Feel Changes + Assets => HTML/CSS/JS
• Infrastructure Changes => Native Code
C L I E N T S I D E A R C H I T E C T U R E
JS
Native
Native iOS, Android and Windows App.
F E AT U R E B R A N C H = > T R U N K B A S E D D E V E L O P M E N T
Build/Release Infra
Code a
Feature
Run Static
Analysis
Run Unit &
Component Tests
Run Functional Tests
for my Feature
Local Dev
Raise a PR
Static Analysis
on Changeset
Run All
Unit Tests
Code
Review
C O N T I N U O U S I N T E G R AT I O N
How do we improve
the quality of the
incoming code?
Automated xUnit Testing
Licensed Under Creative Commons by Naresh Jain
S TAT I C C O D E A N A LY S I S
I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
V I S U A L I S I N G C O D E H E A LT H
Build/Release Infra
Build
Mainline
Run Component &
Sanity Tests on
Instrumented Code
Run Workflow Tests on
Instrumented Code
Code a
Feature
Run Static
Analysis
Run Unit &
Component Tests
Run Functional Tests
for my Feature
Local Dev
Raise a PR
Consumable
Certified
Artifact
Merge
Full
Regression
Full Static
Code Analysis
Benchmark, Perf
Tests & Dynamic
Analysis
Nightly Build
Static Analysis
on Changeset
Run All
Unit Tests
Code
Review
C O N T I N U O U S I N T E G R AT I O N
C I F O R M O B I L E A P P V S . S E R V E R
TESTING STRATEGY
Unit
Tests
Integration
Tests
End-to-End
GUI Tests 80-90%
5-15%
1-5%
Manual Checking
Unit Tests
Component / Service (API) Tests
Integration Tests
Acceptance Tests
Workflow
Tests
GUI
Tests
1%
70%
10%
9%
6%
4%
Performance Tests
Security Tests
Epic Level
Story Level
3rd Party/Device Dependencies
Exploratory Testing
% of Tests
jUnit, XCTest, Mockito, OCMock, RoboElectric
jUnit, XCTest (Instrumented/In-Container) Tests
jUnit, XCTest
Cucumber,Appium
Cucumber,
Appium
Cucumber,
Appium
1%
70%
10%
9%
6%
4%
Workflow Tests
Acceptance Tests
Integration Tests
Exploratory Testing
GUI Tests
Component / Service (API) Tests
Unit Tests
Continuous Integration Build Pipeline
Local
Dev Build
Smoke
Build
Functional
Build
Epic
Build
Theme
Build
Product
Build
Perf
Build
Live
Build
Staging
Build
Dev Box
Team CI Server
Team CI Server
Dev Env
SIT Env
QA Env
UAT Env
Staging Env
Prod Env
~5 Min
~10 Min
~30 Min
~60 Min
~60 Min
~60 Min
~30 Min
~30 Min
~30 Min
Update
Checkin
Checkout
Publish
Artifacts
(jars)
RetrievePublishedArtifacts
Retrieve PublishedArtifacts
Publish/Promote DependentArtifacts
Retrieve
Artifacts
Retrieve
Artifacts
Retrieve Published Artifacts
Retrieve Published Artifacts
Checkout
Checkout
Checkout
Checkout
SCM
Each build will update
Task statues
Each build will broadcast build
stats and other reports to all
relevant stakeholders at each
stage of the build pipeline
Dependency
Management
Project/Task
Management
Tool
Version
Control
S E T T I N G U P O U R O W N M O B I L E T E S T L A B
S E T T I N G U P O U R O W N M O B I L E T E S T L A B
D E C E N T R A L I S I N G T E S T E N V I R O N M E N T S
D O C K E R I Z AT I O N
• All Services had to be containerised
• Registration and Discovery of Services (ZooKeeper)
• Mobile Apps need to externalise the configs
• Docker Image Repository (Artifactory)
Licensed Under Creative Commons by Naresh Jain
Questions?
Naresh Jain
@nashjain
naresh@agilefaqs.com
http://blogs.agilefaqs.com

More Related Content

What's hot

Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
Jon McNestrie
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
Wee Witthawaskul
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Peter Marshall
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) Development
Intland Software GmbH
 
SDET approach for Agile Testing
SDET approach for Agile TestingSDET approach for Agile Testing
SDET approach for Agile Testing
Gopikrishna Kannan
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Buildguestc8adce
 
Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Woogon Shim
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
Knoldus Inc.
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous deliveryOlympicSoftware
 
Kku2011
Kku2011Kku2011
Agile Testing Overview
Agile Testing OverviewAgile Testing Overview
Agile Testing Overview
Elisabeth Hendrickson
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
Robert Burrell Donkin
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
Solano Labs
 
Security As A Code :
Security As A Code : Security As A Code :
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
Vinit Kumar Singh
 

What's hot (20)

Whipp q3 2008_sv
Whipp q3 2008_svWhipp q3 2008_sv
Whipp q3 2008_sv
 
Dayal rtp q2_07
Dayal rtp q2_07Dayal rtp q2_07
Dayal rtp q2_07
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) Development
 
SDET approach for Agile Testing
SDET approach for Agile TestingSDET approach for Agile Testing
SDET approach for Agile Testing
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Build
 
Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Introduction to continuous delivery
Introduction to continuous deliveryIntroduction to continuous delivery
Introduction to continuous delivery
 
Kku2011
Kku2011Kku2011
Kku2011
 
Agile Testing Overview
Agile Testing OverviewAgile Testing Overview
Agile Testing Overview
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Security As A Code :
Security As A Code : Security As A Code :
Security As A Code :
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 

Similar to Setting up Continuous Delivery Culture for a Large Scale Mobile App

Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web Apps
Perfecto by Perforce
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOps
Perfecto by Perforce
 
Test Automation at the Speed of Agile: Making It Work Every Build
Test Automation at the Speed of Agile: Making It Work Every BuildTest Automation at the Speed of Agile: Making It Work Every Build
Test Automation at the Speed of Agile: Making It Work Every Build
TechWell
 
Continuous delivery in Qbon
Continuous delivery  in QbonContinuous delivery  in Qbon
Continuous delivery in Qbon
Jaric Kuo
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
Naresh Jain
 
DevOps Kata Modern Debugging
DevOps Kata Modern DebuggingDevOps Kata Modern Debugging
DevOps Kata Modern DebuggingJames Tramel
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
Jaehoon Oh
 
Continous Delivery Toronto Presentation
Continous Delivery Toronto PresentationContinous Delivery Toronto Presentation
Continous Delivery Toronto Presentation
XebiaLabs
 
Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...
Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...
Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...
Perfecto by Perforce
 
Easy Automated UI Testing with Canopy
Easy Automated UI Testing with CanopyEasy Automated UI Testing with Canopy
Easy Automated UI Testing with Canopy
Eric Potter
 
Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...
Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...
Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...
QA or the Highway
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
Perfecto by Perforce
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
Perfecto by Perforce
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
Mike Brittain
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
Gergely Orosz
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
Tomas Riha
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
Abhijeet Vaikar
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
Dhaval Patel
 
Quality in dev ops east 2017
Quality in dev ops east 2017Quality in dev ops east 2017
Quality in dev ops east 2017
Amir Rozenberg
 
App sec and quality london - may 2016 - v0.5
App sec and quality   london -  may 2016 - v0.5App sec and quality   london -  may 2016 - v0.5
App sec and quality london - may 2016 - v0.5
Dinis Cruz
 

Similar to Setting up Continuous Delivery Culture for a Large Scale Mobile App (20)

Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web Apps
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOps
 
Test Automation at the Speed of Agile: Making It Work Every Build
Test Automation at the Speed of Agile: Making It Work Every BuildTest Automation at the Speed of Agile: Making It Work Every Build
Test Automation at the Speed of Agile: Making It Work Every Build
 
Continuous delivery in Qbon
Continuous delivery  in QbonContinuous delivery  in Qbon
Continuous delivery in Qbon
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
DevOps Kata Modern Debugging
DevOps Kata Modern DebuggingDevOps Kata Modern Debugging
DevOps Kata Modern Debugging
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
 
Continous Delivery Toronto Presentation
Continous Delivery Toronto PresentationContinous Delivery Toronto Presentation
Continous Delivery Toronto Presentation
 
Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...
Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...
Enhancing Your Test Automation Scenario Coverage with Selenium - QA or the Hi...
 
Easy Automated UI Testing with Canopy
Easy Automated UI Testing with CanopyEasy Automated UI Testing with Canopy
Easy Automated UI Testing with Canopy
 
Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...
Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...
Enhancing your Test automation Scenario Coverage Using Selenium by Eran Kinsb...
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Quality in dev ops east 2017
Quality in dev ops east 2017Quality in dev ops east 2017
Quality in dev ops east 2017
 
App sec and quality london - may 2016 - v0.5
App sec and quality   london -  may 2016 - v0.5App sec and quality   london -  may 2016 - v0.5
App sec and quality london - may 2016 - v0.5
 

More from Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
Naresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
Naresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
Naresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
Naresh Jain
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
Naresh Jain
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
Naresh Jain
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
Naresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
Naresh Jain
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
Naresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
Naresh Jain
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
Naresh Jain
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Naresh Jain
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
Naresh Jain
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
Naresh Jain
 

More from Naresh Jain (20)

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
 

Recently uploaded

Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 

Setting up Continuous Delivery Culture for a Large Scale Mobile App

  • 1. S E T T I N G U P C O N T I N U O U S D E L I V E RY C U LT U R E F O R A L A R G E S C A L E M O B I L E A P P Naresh Jain @nashjain http://nareshjain.com
  • 2. M O B I L E C D - K E Y C H A L L E N G E S ? • Code & Config spread across multiple dependent repos - how to do CI? • How do you manage access to multiple test phone? • With lack of quality tests, how do you promote your artifacts? • How can we manage different kind of environments, to support different kinds of test? • How do we visualise your code quality?
  • 3. F O R A N E F F E C T I V E C D C U LT U R E Hypothesis Validation Build MVP Staged Rollout AB Exp Monitor Analyse Insights Refine Measure Speed Quality
  • 7.
  • 8.
  • 9.
  • 11.
  • 12. 12
  • 13. I O S A P P C D C H A L L E N G E S • Apple takes any where between 3 Days to 1 Week to push a new update to the app store • Pretty complicated and cumbersome signing and packing process (in 2012-13) • Need to deploy to actual iOS devices to test minor changes
  • 14. H O W D I D W E S O LV E T H I S P R O B L E M S ? • We decided to go down the Hybrid App Route • Changes/Updates needed to be made at 3 levels: • Content Changes & Logic Changes => JS/JSON • Look and Feel Changes + Assets => HTML/CSS/JS • Infrastructure Changes => Native Code
  • 15. C L I E N T S I D E A R C H I T E C T U R E JS Native
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Native iOS, Android and Windows App.
  • 21. F E AT U R E B R A N C H = > T R U N K B A S E D D E V E L O P M E N T
  • 22. Build/Release Infra Code a Feature Run Static Analysis Run Unit & Component Tests Run Functional Tests for my Feature Local Dev Raise a PR Static Analysis on Changeset Run All Unit Tests Code Review C O N T I N U O U S I N T E G R AT I O N
  • 23. How do we improve the quality of the incoming code?
  • 25. Licensed Under Creative Commons by Naresh Jain S TAT I C C O D E A N A LY S I S
  • 26. I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
  • 27. I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
  • 28. I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
  • 29. I M P R O V I N G Q U A L I T Y O F C O D E R E V I E W S
  • 30. V I S U A L I S I N G C O D E H E A LT H
  • 31. Build/Release Infra Build Mainline Run Component & Sanity Tests on Instrumented Code Run Workflow Tests on Instrumented Code Code a Feature Run Static Analysis Run Unit & Component Tests Run Functional Tests for my Feature Local Dev Raise a PR Consumable Certified Artifact Merge Full Regression Full Static Code Analysis Benchmark, Perf Tests & Dynamic Analysis Nightly Build Static Analysis on Changeset Run All Unit Tests Code Review C O N T I N U O U S I N T E G R AT I O N
  • 32. C I F O R M O B I L E A P P V S . S E R V E R
  • 34. Unit Tests Component / Service (API) Tests Integration Tests Acceptance Tests Workflow Tests GUI Tests 1% 70% 10% 9% 6% 4% Performance Tests Security Tests Epic Level Story Level 3rd Party/Device Dependencies Exploratory Testing % of Tests
  • 35. jUnit, XCTest, Mockito, OCMock, RoboElectric jUnit, XCTest (Instrumented/In-Container) Tests jUnit, XCTest Cucumber,Appium Cucumber, Appium Cucumber, Appium 1% 70% 10% 9% 6% 4% Workflow Tests Acceptance Tests Integration Tests Exploratory Testing GUI Tests Component / Service (API) Tests Unit Tests
  • 36. Continuous Integration Build Pipeline Local Dev Build Smoke Build Functional Build Epic Build Theme Build Product Build Perf Build Live Build Staging Build Dev Box Team CI Server Team CI Server Dev Env SIT Env QA Env UAT Env Staging Env Prod Env ~5 Min ~10 Min ~30 Min ~60 Min ~60 Min ~60 Min ~30 Min ~30 Min ~30 Min Update Checkin Checkout Publish Artifacts (jars) RetrievePublishedArtifacts Retrieve PublishedArtifacts Publish/Promote DependentArtifacts Retrieve Artifacts Retrieve Artifacts Retrieve Published Artifacts Retrieve Published Artifacts Checkout Checkout Checkout Checkout SCM Each build will update Task statues Each build will broadcast build stats and other reports to all relevant stakeholders at each stage of the build pipeline Dependency Management Project/Task Management Tool Version Control
  • 37. S E T T I N G U P O U R O W N M O B I L E T E S T L A B
  • 38. S E T T I N G U P O U R O W N M O B I L E T E S T L A B
  • 39. D E C E N T R A L I S I N G T E S T E N V I R O N M E N T S
  • 40. D O C K E R I Z AT I O N • All Services had to be containerised • Registration and Discovery of Services (ZooKeeper) • Mobile Apps need to externalise the configs • Docker Image Repository (Artifactory)
  • 41. Licensed Under Creative Commons by Naresh Jain Questions? Naresh Jain @nashjain naresh@agilefaqs.com http://blogs.agilefaqs.com