SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Scaling Mobile Engineering
Deniz Veli
denizmveli@gmail.com
@denizmveli
What do I know?
Worked on small and large apps teams
● Platforms Lead at iflix, Melbourne
● Mobile Engineering Manager at Etsy, NY
● Android Freelancer, Melbourne
● Personal apps
Etsy
iflix (we’re hiring)
Growth.
People. Teams.
Development.
Testing.
Delivery.
Growth.
People. Teams.
Development.
Testing.
Delivery.
Growth
Why do teams grow?
● Build more features faster
● Expand into new markets
● Integrate/partner - Google, Apple, Facebook, Twitter etc
● As a result you need more help with management,
tooling, testing, delivery and general process stuff
● So you hire more...
Growth.
People. Teams.
Development.
Testing.
Delivery.
People
● Hiring - it’s hard
○ try to mix your skill levels
○ junior, mid-level & senior
○ provide mentoring opportunities
○ consider diversity not just in experience
○ gender, race, background, age
○ diverse teams consider more perspectives
○ your users aren’t all the same
● Can’t hire fast enough? Training can complement hiring
Teams
Web iOS Android Backend
Shared feature / project knowledge
Platform Teams
Teams
Feature A Feature B Feature C
Feature Teams / Cross-functional
Feature D
Cross team platform groups
Growth.
People. Teams.
Development.
Testing.
Delivery.
Development
App development platform - which will scale?
● Webviews?
● Hybrid?
● Native?
Development
If you’re growing, aiming for millions of users and great ratings,
go native.
Hybrid
Best of both worlds or best of
neither?
Still not fast enough give a
full native like experience.
Usable in parts but not core
app flow
(want to get featured?)
Webviews
Fast to get started across
platforms, slower for users.
Consistent for the product,
inconsistent with the
platform standards.
Not recommended by
Google / Apple
(want to get featured?)
Native
Slower to build initially but
optimum experience for
users in the end.
Consistent with platform
expectations. Easy hardware
integration
Recommended by
Google / Apple
Development
Invest in your apps architecture
● Front end architecture (MVP, MVVM, VIPER, etc)
● Define your app architecture
● Build for testability
○ dependency injection
○ separation of concerns
● Build components where you foresee re-use
● Code reviews / pairing is essential
Development
How do you speed up development on multiple native platforms?
Make your apps dumb! Offload logic to the server in you API’s.
● Basic
○ data storage
○ business logic
● Advanced
○ server driven layout
○ configuration and feature toggles
Development
More on feature toggles…
● Switching functionality in your app based on a flag - ideally updated remotely
if (featureIsEnabled("show-new-redesign")) {
showNewRedesign();
} else {
showOldDesign();
}
● Enable continuous delivery and A/B testing
● Services - Firebase Remote Config, LaunchDarkly + more
● Cleanup overhead
● Reading - https://martinfowler.com/articles/feature-toggles.html
Growth.
People. Teams.
Development.
Testing.
Delivery.
Testing
● Testing pyramid
● Lots of unit tests
● Some integration tests
● Fewer manual and end-to-end tests
● Private internal staff testing
● Public beta release groups
Growth.
People. Teams
Development.
Testing.
Delivery.
Delivery
Feature based delivery
● More people = more code.
● If you don’t release regularly = big releases
○ mammoth testing cycles and increased risk
○ developers are further from the changes made
○ increased mean time to recovery on incidents
○ users go without fixes and improvements
Delivery
Continuous Delivery - unused code doesn’t teach you a thing
● Release train = “bug fixes and performance improvements”
● Ship to the app store every 1 - 4 weeks
● Feature toggles = big goals, small steps
Delivery
Monitoring
● Crash reporting
● Error logging
● App analytics and tracking
● Performance monitoring
● Respond to customer feedback
Easy enough?
Hard parts
● Losing control & letting go
● Perfectionists vs pragmatists
● Big changes in the code & app take time
● How big is too big? When does more = less?
Where do you start?
You’re growing but don’t know where to start?
● Start thinking server driven and API first
● Deliver your apps regularly to users
● Setup basic feature toggles so you can keep shipping
Questions?
Deniz Veli
denizmveli@gmail.com
@denizmveli

Contenu connexe

Tendances

Hire Dedicated Java Developers
Hire Dedicated Java DevelopersHire Dedicated Java Developers
Hire Dedicated Java Developers
Deepika Chaudhary
 
SalmanDesigner(dot)com
SalmanDesigner(dot)comSalmanDesigner(dot)com
SalmanDesigner(dot)com
Salman Ahmad
 
Enabling CD in Enterprises with Testing - Anand Bagmar
Enabling CD in Enterprises with Testing - Anand BagmarEnabling CD in Enterprises with Testing - Anand Bagmar
Enabling CD in Enterprises with Testing - Anand Bagmar
Thoughtworks
 

Tendances (17)

Developer
DeveloperDeveloper
Developer
 
Masood
MasoodMasood
Masood
 
Jaimin_Resume
Jaimin_ResumeJaimin_Resume
Jaimin_Resume
 
Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015
 
Resume
ResumeResume
Resume
 
Hire Dedicated Java Developers
Hire Dedicated Java DevelopersHire Dedicated Java Developers
Hire Dedicated Java Developers
 
Codaisseur Open Evening Slides JANUARY 2019!
Codaisseur Open Evening Slides JANUARY 2019!Codaisseur Open Evening Slides JANUARY 2019!
Codaisseur Open Evening Slides JANUARY 2019!
 
php training in chandigarh
php training in chandigarhphp training in chandigarh
php training in chandigarh
 
SalmanDesigner(dot)com
SalmanDesigner(dot)comSalmanDesigner(dot)com
SalmanDesigner(dot)com
 
Training institute
Training instituteTraining institute
Training institute
 
Internship final presentation Mohamed
Internship final presentation MohamedInternship final presentation Mohamed
Internship final presentation Mohamed
 
Memos case study Innerworkings
Memos case study InnerworkingsMemos case study Innerworkings
Memos case study Innerworkings
 
AZ 400 Training
AZ 400 TrainingAZ 400 Training
AZ 400 Training
 
DevOps Toolchain v1.0
DevOps Toolchain v1.0DevOps Toolchain v1.0
DevOps Toolchain v1.0
 
Enabling CD in Enterprises with Testing - Anand Bagmar
Enabling CD in Enterprises with Testing - Anand BagmarEnabling CD in Enterprises with Testing - Anand Bagmar
Enabling CD in Enterprises with Testing - Anand Bagmar
 
[HCM Scrum Breakfast] How to improve product quality in Scrum Team
[HCM Scrum Breakfast] How to improve product quality in Scrum Team[HCM Scrum Breakfast] How to improve product quality in Scrum Team
[HCM Scrum Breakfast] How to improve product quality in Scrum Team
 
ISTQB Agile Tester Foundations -Professional Training
ISTQB Agile Tester Foundations -Professional TrainingISTQB Agile Tester Foundations -Professional Training
ISTQB Agile Tester Foundations -Professional Training
 

Similaire à Scaling Mobile Engineering

Suneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNET
Suneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNETSuneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNET
Suneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNET
Suneel Kumar Verma
 
Resume_Vineet_Gupta
Resume_Vineet_GuptaResume_Vineet_Gupta
Resume_Vineet_Gupta
vineet gupta
 
Nirdesh_Developer_2.0_Years_6_months_Exp
Nirdesh_Developer_2.0_Years_6_months_ExpNirdesh_Developer_2.0_Years_6_months_Exp
Nirdesh_Developer_2.0_Years_6_months_Exp
Nirdesh Kulshreshtha
 
How Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering TeamHow Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering Team
Salesforce Developers
 
Resume_Mallesh
Resume_MalleshResume_Mallesh
Resume_Mallesh
mallesh m
 
Resume Deepthi Reddy
Resume Deepthi ReddyResume Deepthi Reddy
Resume Deepthi Reddy
Deepthi Reddy
 
AnweshaDas_Java_6Yrs.pdf
AnweshaDas_Java_6Yrs.pdfAnweshaDas_Java_6Yrs.pdf
AnweshaDas_Java_6Yrs.pdf
Anwesha Das
 

Similaire à Scaling Mobile Engineering (20)

Suneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNET
Suneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNETSuneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNET
Suneel Kumar Verma-MCA-3.3 Yrs. Exp on DOTNET
 
Resume_Vineet_Gupta
Resume_Vineet_GuptaResume_Vineet_Gupta
Resume_Vineet_Gupta
 
Mohsin khan
Mohsin khanMohsin khan
Mohsin khan
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product Development
 
Nirdesh_Developer_2.0_Years_6_months_Exp
Nirdesh_Developer_2.0_Years_6_months_ExpNirdesh_Developer_2.0_Years_6_months_Exp
Nirdesh_Developer_2.0_Years_6_months_Exp
 
Super Charge your Product Development via the Use of DevOps
Super Charge your Product Development via the Use of DevOpsSuper Charge your Product Development via the Use of DevOps
Super Charge your Product Development via the Use of DevOps
 
CV
CVCV
CV
 
Parinaz Doomasia_CV
Parinaz Doomasia_CVParinaz Doomasia_CV
Parinaz Doomasia_CV
 
How Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering TeamHow Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering Team
 
Resume_Mallesh
Resume_MalleshResume_Mallesh
Resume_Mallesh
 
JavaDeveloper-ChandrasekharThammanaCV
JavaDeveloper-ChandrasekharThammanaCVJavaDeveloper-ChandrasekharThammanaCV
JavaDeveloper-ChandrasekharThammanaCV
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful delivery
 
GunjanDixitCV
GunjanDixitCVGunjanDixitCV
GunjanDixitCV
 
Addo dev ops is journey - choose your own adventure v2
Addo   dev ops is journey - choose your own adventure v2Addo   dev ops is journey - choose your own adventure v2
Addo dev ops is journey - choose your own adventure v2
 
Resume Deepthi Reddy
Resume Deepthi ReddyResume Deepthi Reddy
Resume Deepthi Reddy
 
Scaling up your R&D group
Scaling up your R&D groupScaling up your R&D group
Scaling up your R&D group
 
Ravindra Prasad
Ravindra PrasadRavindra Prasad
Ravindra Prasad
 
Srividya. B resume
Srividya. B resumeSrividya. B resume
Srividya. B resume
 
AnweshaDas_Java_6Yrs.pdf
AnweshaDas_Java_6Yrs.pdfAnweshaDas_Java_6Yrs.pdf
AnweshaDas_Java_6Yrs.pdf
 
Info Session : University Institute of engineering and technology , Kurukshet...
Info Session : University Institute of engineering and technology , Kurukshet...Info Session : University Institute of engineering and technology , Kurukshet...
Info Session : University Institute of engineering and technology , Kurukshet...
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Scaling Mobile Engineering

  • 1. Scaling Mobile Engineering Deniz Veli denizmveli@gmail.com @denizmveli
  • 2. What do I know? Worked on small and large apps teams ● Platforms Lead at iflix, Melbourne ● Mobile Engineering Manager at Etsy, NY ● Android Freelancer, Melbourne ● Personal apps
  • 7. Growth Why do teams grow? ● Build more features faster ● Expand into new markets ● Integrate/partner - Google, Apple, Facebook, Twitter etc ● As a result you need more help with management, tooling, testing, delivery and general process stuff ● So you hire more...
  • 9. People ● Hiring - it’s hard ○ try to mix your skill levels ○ junior, mid-level & senior ○ provide mentoring opportunities ○ consider diversity not just in experience ○ gender, race, background, age ○ diverse teams consider more perspectives ○ your users aren’t all the same ● Can’t hire fast enough? Training can complement hiring
  • 10. Teams Web iOS Android Backend Shared feature / project knowledge Platform Teams
  • 11. Teams Feature A Feature B Feature C Feature Teams / Cross-functional Feature D Cross team platform groups
  • 13. Development App development platform - which will scale? ● Webviews? ● Hybrid? ● Native?
  • 14. Development If you’re growing, aiming for millions of users and great ratings, go native. Hybrid Best of both worlds or best of neither? Still not fast enough give a full native like experience. Usable in parts but not core app flow (want to get featured?) Webviews Fast to get started across platforms, slower for users. Consistent for the product, inconsistent with the platform standards. Not recommended by Google / Apple (want to get featured?) Native Slower to build initially but optimum experience for users in the end. Consistent with platform expectations. Easy hardware integration Recommended by Google / Apple
  • 15. Development Invest in your apps architecture ● Front end architecture (MVP, MVVM, VIPER, etc) ● Define your app architecture ● Build for testability ○ dependency injection ○ separation of concerns ● Build components where you foresee re-use ● Code reviews / pairing is essential
  • 16. Development How do you speed up development on multiple native platforms? Make your apps dumb! Offload logic to the server in you API’s. ● Basic ○ data storage ○ business logic ● Advanced ○ server driven layout ○ configuration and feature toggles
  • 17.
  • 18. Development More on feature toggles… ● Switching functionality in your app based on a flag - ideally updated remotely if (featureIsEnabled("show-new-redesign")) { showNewRedesign(); } else { showOldDesign(); } ● Enable continuous delivery and A/B testing ● Services - Firebase Remote Config, LaunchDarkly + more ● Cleanup overhead ● Reading - https://martinfowler.com/articles/feature-toggles.html
  • 20. Testing ● Testing pyramid ● Lots of unit tests ● Some integration tests ● Fewer manual and end-to-end tests ● Private internal staff testing ● Public beta release groups
  • 22. Delivery Feature based delivery ● More people = more code. ● If you don’t release regularly = big releases ○ mammoth testing cycles and increased risk ○ developers are further from the changes made ○ increased mean time to recovery on incidents ○ users go without fixes and improvements
  • 23. Delivery Continuous Delivery - unused code doesn’t teach you a thing ● Release train = “bug fixes and performance improvements” ● Ship to the app store every 1 - 4 weeks ● Feature toggles = big goals, small steps
  • 24. Delivery Monitoring ● Crash reporting ● Error logging ● App analytics and tracking ● Performance monitoring ● Respond to customer feedback
  • 26. Hard parts ● Losing control & letting go ● Perfectionists vs pragmatists ● Big changes in the code & app take time ● How big is too big? When does more = less?
  • 27. Where do you start? You’re growing but don’t know where to start? ● Start thinking server driven and API first ● Deliver your apps regularly to users ● Setup basic feature toggles so you can keep shipping