SlideShare a Scribd company logo
Patterns to scale mobile teams
Using examples for Android
Priyank Gupta
Sahaj Software Solutions Pvt. Ltd.
Mobile is eating the world
Evolution in last 5 years
Mobile Inclusive Mobile First Mobile Only
Building it for 3.2 billion people
7.1 Billion - World population
7.9 Billion mobile devices
3.2 Billion Internet Users
State of connectivity 2015 - Report
Mobile users are the internet users
Worldwide market-share
Smartphone market share - Report
Android
iOS
Others
83%
14%
03%
Everything in ‘context’
Discovery
DeliveryMedia
Payments
Aggregation
Discovering content, deals, products,
places and information happens
based on location, context and
conversations..
Payments, wallets, money transfers
and currency conversions happens
via mobile apps instantaneously.
News doesn’t come from media
houses. News is crowd sourced,
crowd curated and pushed real-time
to consumers on mobile.
Delivery is done across diverse
products and services; ordered,
scheduled and tracked via mobile
real-time.
Services are aggregated and made
available on mobile across all domains.
Delivery, taxis, food, handy-work etc.
Why mobile is different?
Challenges
Multiple
platforms and
form types
No control on
environment /
device
Work across
version and
device types
Design with
usability at
center. Stay
ahead of
competing
feature set
Forced SDK
update and
different
runtimes
Dalvik, ART,
Arm6, Arm7
Survival for fittest
Ideas
Tons of ideas see
daylight in an healthy
ecosystem
Saturation
Redundant businesses
cause saturation to occur
Consolidation
Consolidation in form of acquisition,
mergers and natural death.
Healthy co-existence
Winning teams are lean,
agile, ahead of competition
and know how to scale.
What affects scalability
Things that matter
Hiring & People
Team organization
Technology selection
Development practices
Scalable design
Testing & Safety nets
Release cycle & practices
Technology selection
In business of delivering experience
HTML5
Native
Custom
Bridges
Cordova
HTML5+
Service workers
React
Native
Xamarin
Selecting mobile implementation strategy
Experience + Reach
Cost
Laser
Cover your bases
Long term strategy should focus on building a native experience. The journey can
be gradual or with a jump start.
No adoption
No magic bullets
Organizing teams for scale
Technology teams vs..
Release 1 - Mix of feature X & Y
Android
iOS
Services
Siloed by
technology
/platform
If feature parity is
important then
lowest
denominator goes
into release
Missed opportunity
to optimize services
based on common
domain across
platform
Easier to draw
boundaries.
Initial velocity
gain due to
technical
know how.
.. Product team
Release 1 - Feature X
Release 1 - Feature Y
Services iOS Android
Initial
velocity
impact
Shared
understanding
of product as a
whole
Feature
parity
maintained in
releases
Can get away
with a leaner
team.
Problems
solved once.
Service design
can have
considerations
for clients
baked in right
from start
Handovers & feedback loops
Development
Design
Testing
Story started
Story done
Quicker feedback loops keeps the cost of change low
and validates the shared understanding constantly.
Services are part of product
Services
App
Own
services as
first class
deliverable
Use patterns
to decouple
legacy
services
Leverage REST
Level-3
characteristics to
make service
adaptive
Use patterns to
optimize services
for target
consumer
platform
Scaleable dev practices
Predictability & Consistency
Where would you find the code to fetch details from database?
Can you predict how someone on team would fetch images in background?
Will everyone know how to find the service call you wrote?
Can everyone on team predict what’s going to be covered in an espresso test?
Do you know where to find the styling for a specific UI element?
Using conventions you can build predictability on team to simplify mental models
needed to understand the codebase
Define the simple machines
Screw Wheel & Axle Pulley Lever
A simple machine can hammer in the basic principle and allow far
more complex machines to be developed with coherence.
Adopting patterns
Persistence /
db
Web ServicesUI / Styles Debugging
Invest time in first of everything. Build a team-wide definition and
reuse the pattern to promote consistency and predictability.
Background
tasks / Services
Device
hardware
Web service patterns
for consistent service calls across features.Retrofit + Singletons + Observers
Callback implementation
for Retrofit API (Singleton)
Retrofit service
interface
Observers
Activities,
fragments or
services
Data retrieved from
service (possibly cached)
External integrations patterns
BFF approach | Adaptive API
Adaptive API
Backend for
frontend
Downstream systems
Adaptive proxy APIs
Consumer centric
abstractions - BFFs
for optimal experience of services on devicesAdaptive APIs BFFsor
for consistent execution of short async tasksAsync task wrapper + Observers Thread (Pools)or
Asynchronous tasks patterns
Obtain instance
Set data
Fire task
Check references
Call observers
Die or loop
Main thread
Spawned/Pooled thread
Scaling commits with patterns
Feature one
Feature two
Master
Feature toggles explained
vs
Requires complex CI setup to constantly identify and
merge branches and test state at any point of time.
Requires building a feature toggle functionality with
dynamic toggles and tests to validate all feasible path.
Master
Feature one
toggled off
Feature two
toggled off
Feature two
toggled on
Feature one
toggled on
Debugging and logging patterns
Force upgrade Debug console Thread local
logging
Crashlytics
Build consistent set of practices to debug issues using Debug console Crashlytics Thread logging
Building reliable safety nets
TDD - Achieving 80-85% coverage
1
2
3
4
5
6
With domain
logic extraction
Dependency
injection with
constructors
Mock objects
using mockito
Powermock +
Mockito for
static classes **
Countdown
latches &
listeners for
threads
Presenter
pattern to
extract view
logic
Building the most comprehensive set of tests at unit level
Behavior tests with page object pattern
pattern comes in handy to modularize behavior tests and mimic flow relationshipsPage Object
Home screen
Product listing
Notifications
Orders
Execution
context
Asserting app behavior
Service
Stubs
Real
Service
APIs
can be used to address the coverage gap left by unit tests in AndroidEspresso
WireMock Mountebank Stubby
Making behavior tests effective
Turn on
‘don't keep
activities in
background’
Among all
others, run the
smallest
supported
emulator with
software
keyboard
Immediate
app
distribution
to alpha.
Hallway
testing
Multiple
emulators in
cloud or via
Docker images
across CI agents
Keep behavior tests lean, quick and focused on happy path
Testing the service contract
Actual
Service/APIs
Contract
Tests
Service
Stubs
Contract tests run typically few times a day. A stub replaces remote service for
behavior tests to keep tests responsive, stable and predictable.
Every commit
Periodically
Testing cross app flows
is a great starting place to orchestrate tests across apps
Uber engineering blog
Octopus by Uber
Consumer app
Warehouse app
Consumer on iOS
Orchestrator
Thanks for pulling through!
priyaaank

More Related Content

What's hot

Meetup kickoff slides - Perfecto Mobile, September 2014
Meetup kickoff slides - Perfecto Mobile, September 2014Meetup kickoff slides - Perfecto Mobile, September 2014
Meetup kickoff slides - Perfecto Mobile, September 2014
Perfecto Mobile
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star east
Perfecto Mobile
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
IndicThreads
 
T Bytes Agile & AI Operations
T Bytes Agile & AI OperationsT Bytes Agile & AI Operations
T Bytes Agile & AI Operations
EGBG Services
 
Experitest & Hexaware Co-Webinar
Experitest & Hexaware Co-WebinarExperitest & Hexaware Co-Webinar
Experitest & Hexaware Co-Webinar
Experitest
 
Testing Apps for Wearables
Testing Apps for WearablesTesting Apps for Wearables
Testing Apps for Wearables
Perfecto by Perforce
 
Learnings from Mobile Application Testing
Learnings from Mobile Application TestingLearnings from Mobile Application Testing
Learnings from Mobile Application Testing
Thoughtworks
 
Cloud based Testing Mobile Apps
Cloud based Testing Mobile AppsCloud based Testing Mobile Apps
Cloud based Testing Mobile Apps
IndicThreads
 
Remove Bugs With API Testing Services
Remove Bugs With API Testing ServicesRemove Bugs With API Testing Services
Remove Bugs With API Testing Services
BugRaptors
 
Experitest & Cigniti Co-Webinar -
Experitest & Cigniti Co-Webinar -Experitest & Cigniti Co-Webinar -
Experitest & Cigniti Co-Webinar -
Experitest
 
Software QS Tag White Paper
Software QS Tag White PaperSoftware QS Tag White Paper
Software QS Tag White Paper
Devendra Singh
 
Everything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable Phones
Perfecto by Perforce
 
Mobile Testing in the Cloud
Mobile Testing in the CloudMobile Testing in the Cloud
Mobile Testing in the Cloud
Keynote Mobile Testing
 
7 use cases of real device testing
7 use cases of real device testing7 use cases of real device testing
7 use cases of real device testing
headspin2
 
apidays LIVE New York 2021 - Playing with FHIR without getting burned by Dav...
apidays LIVE New York 2021 - Playing with FHIR without getting burned by  Dav...apidays LIVE New York 2021 - Playing with FHIR without getting burned by  Dav...
apidays LIVE New York 2021 - Playing with FHIR without getting burned by Dav...
apidays
 
Sqgo Ip
Sqgo IpSqgo Ip
Sqgo Ip
brucewarila
 
Telerik Platform
Telerik PlatformTelerik Platform
Telerik Platform
Noam Kfir
 
Continuous Mobile Testing Using Jenkins - A How To Guide
 Continuous Mobile Testing Using Jenkins - A How To Guide Continuous Mobile Testing Using Jenkins - A How To Guide
Continuous Mobile Testing Using Jenkins - A How To Guide
KeynoteSystems
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
Lee Barnes
 
Eldhose_Resume
Eldhose_ResumeEldhose_Resume
Eldhose_Resume
Eldhose M Babu
 

What's hot (20)

Meetup kickoff slides - Perfecto Mobile, September 2014
Meetup kickoff slides - Perfecto Mobile, September 2014Meetup kickoff slides - Perfecto Mobile, September 2014
Meetup kickoff slides - Perfecto Mobile, September 2014
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star east
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
 
T Bytes Agile & AI Operations
T Bytes Agile & AI OperationsT Bytes Agile & AI Operations
T Bytes Agile & AI Operations
 
Experitest & Hexaware Co-Webinar
Experitest & Hexaware Co-WebinarExperitest & Hexaware Co-Webinar
Experitest & Hexaware Co-Webinar
 
Testing Apps for Wearables
Testing Apps for WearablesTesting Apps for Wearables
Testing Apps for Wearables
 
Learnings from Mobile Application Testing
Learnings from Mobile Application TestingLearnings from Mobile Application Testing
Learnings from Mobile Application Testing
 
Cloud based Testing Mobile Apps
Cloud based Testing Mobile AppsCloud based Testing Mobile Apps
Cloud based Testing Mobile Apps
 
Remove Bugs With API Testing Services
Remove Bugs With API Testing ServicesRemove Bugs With API Testing Services
Remove Bugs With API Testing Services
 
Experitest & Cigniti Co-Webinar -
Experitest & Cigniti Co-Webinar -Experitest & Cigniti Co-Webinar -
Experitest & Cigniti Co-Webinar -
 
Software QS Tag White Paper
Software QS Tag White PaperSoftware QS Tag White Paper
Software QS Tag White Paper
 
Everything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable Phones
 
Mobile Testing in the Cloud
Mobile Testing in the CloudMobile Testing in the Cloud
Mobile Testing in the Cloud
 
7 use cases of real device testing
7 use cases of real device testing7 use cases of real device testing
7 use cases of real device testing
 
apidays LIVE New York 2021 - Playing with FHIR without getting burned by Dav...
apidays LIVE New York 2021 - Playing with FHIR without getting burned by  Dav...apidays LIVE New York 2021 - Playing with FHIR without getting burned by  Dav...
apidays LIVE New York 2021 - Playing with FHIR without getting burned by Dav...
 
Sqgo Ip
Sqgo IpSqgo Ip
Sqgo Ip
 
Telerik Platform
Telerik PlatformTelerik Platform
Telerik Platform
 
Continuous Mobile Testing Using Jenkins - A How To Guide
 Continuous Mobile Testing Using Jenkins - A How To Guide Continuous Mobile Testing Using Jenkins - A How To Guide
Continuous Mobile Testing Using Jenkins - A How To Guide
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
Eldhose_Resume
Eldhose_ResumeEldhose_Resume
Eldhose_Resume
 

Viewers also liked

Power llibre (1)
Power llibre (1)Power llibre (1)
Power llibre (1)Passapagina
 
San mateo tours (1)
San mateo tours (1)San mateo tours (1)
San mateo tours (1)
Alejandro Leon Cerna
 
12. film magazine covers analysis x3
12. film magazine covers analysis x312. film magazine covers analysis x3
12. film magazine covers analysis x3
Shanice1
 
IZVESTAJ - XVII POLIMARK DEČIJI SAJAM
IZVESTAJ - XVII POLIMARK DEČIJI SAJAMIZVESTAJ - XVII POLIMARK DEČIJI SAJAM
IZVESTAJ - XVII POLIMARK DEČIJI SAJAMDeciji Sajam
 
Papai Noel
Papai NoelPapai Noel
Papai Noel
guest55f64184
 
Avance de obra julio 2015
Avance de obra julio 2015Avance de obra julio 2015
Avance de obra julio 2015
Spazios Es Vivir Bien
 
Joseph b-day #2
Joseph b-day #2Joseph b-day #2
Joseph b-day #2
slycath
 
Ppt paper 8
Ppt  paper 8Ppt  paper 8
Ppt paper 8
Bhattizarna10
 
CMI pede ao governo colombiano que proteja defensores de direitos humanos
CMI pede ao governo colombiano que proteja defensores de direitos humanosCMI pede ao governo colombiano que proteja defensores de direitos humanos
CMI pede ao governo colombiano que proteja defensores de direitos humanos
Carolina Maciel
 
Dccsmf oct11-ml
Dccsmf oct11-mlDccsmf oct11-ml
Dccsmf oct11-ml
Carl Haggerty
 
Hackathon_article
Hackathon_articleHackathon_article
Hackathon_article
Natasha Azar
 
What is AdTaily
What is AdTailyWhat is AdTaily
What is AdTaily
Marcin Grodzicki
 
Présentation AFTAA - Paris Grain Day / Kim BENNI
Présentation AFTAA - Paris Grain Day / Kim BENNIPrésentation AFTAA - Paris Grain Day / Kim BENNI
Présentation AFTAA - Paris Grain Day / Kim BENNI
Kim Benni
 
AI chatbots conversational interface: перспективы для развития финтеха и иншу...
AI chatbots conversational interface: перспективы для развития финтеха и иншу...AI chatbots conversational interface: перспективы для развития финтеха и иншу...
AI chatbots conversational interface: перспективы для развития финтеха и иншу...
Dima Arkas
 
Teaching English as a Second Language in India Focus on Objectives by Shivend...
Teaching English as a Second Language in India Focus on Objectives by Shivend...Teaching English as a Second Language in India Focus on Objectives by Shivend...
Teaching English as a Second Language in India Focus on Objectives by Shivend...
Parth Bhatt
 
Презентация "Английский для детей"
Презентация "Английский для детей"Презентация "Английский для детей"
Презентация "Английский для детей"
EnglishDom
 
Christmas traditions
Christmas traditionsChristmas traditions
Christmas traditions
EnglishDom
 

Viewers also liked (17)

Power llibre (1)
Power llibre (1)Power llibre (1)
Power llibre (1)
 
San mateo tours (1)
San mateo tours (1)San mateo tours (1)
San mateo tours (1)
 
12. film magazine covers analysis x3
12. film magazine covers analysis x312. film magazine covers analysis x3
12. film magazine covers analysis x3
 
IZVESTAJ - XVII POLIMARK DEČIJI SAJAM
IZVESTAJ - XVII POLIMARK DEČIJI SAJAMIZVESTAJ - XVII POLIMARK DEČIJI SAJAM
IZVESTAJ - XVII POLIMARK DEČIJI SAJAM
 
Papai Noel
Papai NoelPapai Noel
Papai Noel
 
Avance de obra julio 2015
Avance de obra julio 2015Avance de obra julio 2015
Avance de obra julio 2015
 
Joseph b-day #2
Joseph b-day #2Joseph b-day #2
Joseph b-day #2
 
Ppt paper 8
Ppt  paper 8Ppt  paper 8
Ppt paper 8
 
CMI pede ao governo colombiano que proteja defensores de direitos humanos
CMI pede ao governo colombiano que proteja defensores de direitos humanosCMI pede ao governo colombiano que proteja defensores de direitos humanos
CMI pede ao governo colombiano que proteja defensores de direitos humanos
 
Dccsmf oct11-ml
Dccsmf oct11-mlDccsmf oct11-ml
Dccsmf oct11-ml
 
Hackathon_article
Hackathon_articleHackathon_article
Hackathon_article
 
What is AdTaily
What is AdTailyWhat is AdTaily
What is AdTaily
 
Présentation AFTAA - Paris Grain Day / Kim BENNI
Présentation AFTAA - Paris Grain Day / Kim BENNIPrésentation AFTAA - Paris Grain Day / Kim BENNI
Présentation AFTAA - Paris Grain Day / Kim BENNI
 
AI chatbots conversational interface: перспективы для развития финтеха и иншу...
AI chatbots conversational interface: перспективы для развития финтеха и иншу...AI chatbots conversational interface: перспективы для развития финтеха и иншу...
AI chatbots conversational interface: перспективы для развития финтеха и иншу...
 
Teaching English as a Second Language in India Focus on Objectives by Shivend...
Teaching English as a Second Language in India Focus on Objectives by Shivend...Teaching English as a Second Language in India Focus on Objectives by Shivend...
Teaching English as a Second Language in India Focus on Objectives by Shivend...
 
Презентация "Английский для детей"
Презентация "Английский для детей"Презентация "Английский для детей"
Презентация "Английский для детей"
 
Christmas traditions
Christmas traditionsChristmas traditions
Christmas traditions
 

Similar to Scaling mobile dev teams

Aditya_kapur_(Resume).PDF
Aditya_kapur_(Resume).PDFAditya_kapur_(Resume).PDF
Aditya_kapur_(Resume).PDF
Aditya Kapur
 
IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps
Sanjeev Sharma
 
S cube's mobile application development
S cube's mobile application developmentS cube's mobile application development
S cube's mobile application development
arti yadav
 
Scube's mobile application development
Scube's mobile application developmentScube's mobile application development
Scube's mobile application development
arti yadav
 
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
VMware Tanzu Korea
 
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
VMware Tanzu Korea
 
Create engaging mobile experiences with Visual Studio, Microsoft Azure and Xa...
Create engaging mobile experienceswith Visual Studio, Microsoft Azure and Xa...Create engaging mobile experienceswith Visual Studio, Microsoft Azure and Xa...
Create engaging mobile experiences with Visual Studio, Microsoft Azure and Xa...
Mukteswar Patnaik
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
José Javier Vélez Colón
 
Mobile DevTest Dictionary
Mobile DevTest DictionaryMobile DevTest Dictionary
Mobile DevTest Dictionary
Perfecto by Perforce
 
IRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile ApplicationIRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET Journal
 
Resumeupdated
ResumeupdatedResumeupdated
Resumeupdated
ResumeupdatedResumeupdated
App Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdfApp Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdf
iDataScientists
 
Mobility Solutions - Development of Hybrid Mobile Applications with HTML
Mobility Solutions - Development of Hybrid Mobile Applications with HTMLMobility Solutions - Development of Hybrid Mobile Applications with HTML
Mobility Solutions - Development of Hybrid Mobile Applications with HTML
Mindteck (India) Limited
 
Enabling Continuous Quality in Mobile App Development
Enabling Continuous Quality in Mobile App DevelopmentEnabling Continuous Quality in Mobile App Development
Enabling Continuous Quality in Mobile App Development
Matthew Young
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
naresh chirra
 
2011 Artezio Mobile
2011 Artezio Mobile2011 Artezio Mobile
2011 Artezio Mobile
polatsidis
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
Sreeni Pamidala
 
Experitest & Tech Mahindra Co-Webinar
 Experitest & Tech Mahindra Co-Webinar Experitest & Tech Mahindra Co-Webinar
Experitest & Tech Mahindra Co-Webinar
Experitest
 
Top 8 Trends in Performance Engineering
Top 8 Trends in Performance EngineeringTop 8 Trends in Performance Engineering
Top 8 Trends in Performance Engineering
Convetit
 

Similar to Scaling mobile dev teams (20)

Aditya_kapur_(Resume).PDF
Aditya_kapur_(Resume).PDFAditya_kapur_(Resume).PDF
Aditya_kapur_(Resume).PDF
 
IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps IBM Innovate DevOps for Mobile Apps
IBM Innovate DevOps for Mobile Apps
 
S cube's mobile application development
S cube's mobile application developmentS cube's mobile application development
S cube's mobile application development
 
Scube's mobile application development
Scube's mobile application developmentScube's mobile application development
Scube's mobile application development
 
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
 
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
 
Create engaging mobile experiences with Visual Studio, Microsoft Azure and Xa...
Create engaging mobile experienceswith Visual Studio, Microsoft Azure and Xa...Create engaging mobile experienceswith Visual Studio, Microsoft Azure and Xa...
Create engaging mobile experiences with Visual Studio, Microsoft Azure and Xa...
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Mobile DevTest Dictionary
Mobile DevTest DictionaryMobile DevTest Dictionary
Mobile DevTest Dictionary
 
IRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile ApplicationIRJET- Cross-Platform Supported E-Learning Mobile Application
IRJET- Cross-Platform Supported E-Learning Mobile Application
 
Resumeupdated
ResumeupdatedResumeupdated
Resumeupdated
 
Resumeupdated
ResumeupdatedResumeupdated
Resumeupdated
 
App Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdfApp Architecture for Efficient Mobile App Development.pdf
App Architecture for Efficient Mobile App Development.pdf
 
Mobility Solutions - Development of Hybrid Mobile Applications with HTML
Mobility Solutions - Development of Hybrid Mobile Applications with HTMLMobility Solutions - Development of Hybrid Mobile Applications with HTML
Mobility Solutions - Development of Hybrid Mobile Applications with HTML
 
Enabling Continuous Quality in Mobile App Development
Enabling Continuous Quality in Mobile App DevelopmentEnabling Continuous Quality in Mobile App Development
Enabling Continuous Quality in Mobile App Development
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
 
2011 Artezio Mobile
2011 Artezio Mobile2011 Artezio Mobile
2011 Artezio Mobile
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
 
Experitest & Tech Mahindra Co-Webinar
 Experitest & Tech Mahindra Co-Webinar Experitest & Tech Mahindra Co-Webinar
Experitest & Tech Mahindra Co-Webinar
 
Top 8 Trends in Performance Engineering
Top 8 Trends in Performance EngineeringTop 8 Trends in Performance Engineering
Top 8 Trends in Performance Engineering
 

Recently uploaded

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 

Recently uploaded (20)

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 

Scaling mobile dev teams

  • 1. Patterns to scale mobile teams Using examples for Android Priyank Gupta Sahaj Software Solutions Pvt. Ltd.
  • 2. Mobile is eating the world
  • 3. Evolution in last 5 years Mobile Inclusive Mobile First Mobile Only
  • 4. Building it for 3.2 billion people 7.1 Billion - World population 7.9 Billion mobile devices 3.2 Billion Internet Users State of connectivity 2015 - Report Mobile users are the internet users
  • 5. Worldwide market-share Smartphone market share - Report Android iOS Others 83% 14% 03%
  • 6. Everything in ‘context’ Discovery DeliveryMedia Payments Aggregation Discovering content, deals, products, places and information happens based on location, context and conversations.. Payments, wallets, money transfers and currency conversions happens via mobile apps instantaneously. News doesn’t come from media houses. News is crowd sourced, crowd curated and pushed real-time to consumers on mobile. Delivery is done across diverse products and services; ordered, scheduled and tracked via mobile real-time. Services are aggregated and made available on mobile across all domains. Delivery, taxis, food, handy-work etc.
  • 7. Why mobile is different?
  • 8. Challenges Multiple platforms and form types No control on environment / device Work across version and device types Design with usability at center. Stay ahead of competing feature set Forced SDK update and different runtimes Dalvik, ART, Arm6, Arm7
  • 9. Survival for fittest Ideas Tons of ideas see daylight in an healthy ecosystem Saturation Redundant businesses cause saturation to occur Consolidation Consolidation in form of acquisition, mergers and natural death. Healthy co-existence Winning teams are lean, agile, ahead of competition and know how to scale.
  • 11. Things that matter Hiring & People Team organization Technology selection Development practices Scalable design Testing & Safety nets Release cycle & practices
  • 13. In business of delivering experience HTML5 Native Custom Bridges Cordova HTML5+ Service workers React Native Xamarin Selecting mobile implementation strategy Experience + Reach Cost Laser Cover your bases Long term strategy should focus on building a native experience. The journey can be gradual or with a jump start. No adoption No magic bullets
  • 15. Technology teams vs.. Release 1 - Mix of feature X & Y Android iOS Services Siloed by technology /platform If feature parity is important then lowest denominator goes into release Missed opportunity to optimize services based on common domain across platform Easier to draw boundaries. Initial velocity gain due to technical know how.
  • 16. .. Product team Release 1 - Feature X Release 1 - Feature Y Services iOS Android Initial velocity impact Shared understanding of product as a whole Feature parity maintained in releases Can get away with a leaner team. Problems solved once. Service design can have considerations for clients baked in right from start
  • 17. Handovers & feedback loops Development Design Testing Story started Story done Quicker feedback loops keeps the cost of change low and validates the shared understanding constantly.
  • 18. Services are part of product Services App Own services as first class deliverable Use patterns to decouple legacy services Leverage REST Level-3 characteristics to make service adaptive Use patterns to optimize services for target consumer platform
  • 20. Predictability & Consistency Where would you find the code to fetch details from database? Can you predict how someone on team would fetch images in background? Will everyone know how to find the service call you wrote? Can everyone on team predict what’s going to be covered in an espresso test? Do you know where to find the styling for a specific UI element? Using conventions you can build predictability on team to simplify mental models needed to understand the codebase
  • 21. Define the simple machines Screw Wheel & Axle Pulley Lever A simple machine can hammer in the basic principle and allow far more complex machines to be developed with coherence.
  • 22. Adopting patterns Persistence / db Web ServicesUI / Styles Debugging Invest time in first of everything. Build a team-wide definition and reuse the pattern to promote consistency and predictability. Background tasks / Services Device hardware
  • 23. Web service patterns for consistent service calls across features.Retrofit + Singletons + Observers Callback implementation for Retrofit API (Singleton) Retrofit service interface Observers Activities, fragments or services Data retrieved from service (possibly cached)
  • 24. External integrations patterns BFF approach | Adaptive API Adaptive API Backend for frontend Downstream systems Adaptive proxy APIs Consumer centric abstractions - BFFs for optimal experience of services on devicesAdaptive APIs BFFsor
  • 25. for consistent execution of short async tasksAsync task wrapper + Observers Thread (Pools)or Asynchronous tasks patterns Obtain instance Set data Fire task Check references Call observers Die or loop Main thread Spawned/Pooled thread
  • 26. Scaling commits with patterns Feature one Feature two Master Feature toggles explained vs Requires complex CI setup to constantly identify and merge branches and test state at any point of time. Requires building a feature toggle functionality with dynamic toggles and tests to validate all feasible path. Master Feature one toggled off Feature two toggled off Feature two toggled on Feature one toggled on
  • 27. Debugging and logging patterns Force upgrade Debug console Thread local logging Crashlytics Build consistent set of practices to debug issues using Debug console Crashlytics Thread logging
  • 29. TDD - Achieving 80-85% coverage 1 2 3 4 5 6 With domain logic extraction Dependency injection with constructors Mock objects using mockito Powermock + Mockito for static classes ** Countdown latches & listeners for threads Presenter pattern to extract view logic Building the most comprehensive set of tests at unit level
  • 30. Behavior tests with page object pattern pattern comes in handy to modularize behavior tests and mimic flow relationshipsPage Object Home screen Product listing Notifications Orders Execution context
  • 31. Asserting app behavior Service Stubs Real Service APIs can be used to address the coverage gap left by unit tests in AndroidEspresso WireMock Mountebank Stubby
  • 32. Making behavior tests effective Turn on ‘don't keep activities in background’ Among all others, run the smallest supported emulator with software keyboard Immediate app distribution to alpha. Hallway testing Multiple emulators in cloud or via Docker images across CI agents Keep behavior tests lean, quick and focused on happy path
  • 33. Testing the service contract Actual Service/APIs Contract Tests Service Stubs Contract tests run typically few times a day. A stub replaces remote service for behavior tests to keep tests responsive, stable and predictable. Every commit Periodically
  • 34. Testing cross app flows is a great starting place to orchestrate tests across apps Uber engineering blog Octopus by Uber Consumer app Warehouse app Consumer on iOS Orchestrator
  • 35. Thanks for pulling through! priyaaank