Scaling android development in Enterprise teams
Submitted by Priyank Gupta (@priyaaank) on Saturday, 17 October 2015
Section: Enterprise - Full talk (45 minutes) Technical level: Intermediate
- Understand the issues that android/mobile teams face as they grow. Issues pertaining to development, testing, release, team structure.
- Look at real world examples and patterns to address some of these challenges.
- Clear understanding of patterns around how to structure code, external integrations, tests, release pipeline, team and technology stack to setup a team for success at scale.
Mobile is at forefront of every business’ digital strategy. World is going mobile first, e-commerce in India is going mobile only and start ups are mobile centric. Faster to market is becoming crucial with an ecosystem that is teeming with alternatives and cut throat competition. To solve those problems organizations aspire to deploy mobile teams that are large, productive and agile.
In this talk I would unroot fundamental issues that plague mobile teams in large enterprises while scaling up for size, speed and agility. This talk focuses on core android development and key patterns to adopt in order to be a successful mobile enterprise team.
Here is an outline of the presentation. My focus is on identifying and presenting both code and organizational patterns to build a team that delivers mobile applications for a business serving millions of users.
*This structure will have some additional bits, but this is the core of the presentation
- Choose a technology platform for your app
- Native vs Hybrid
- How to decide on an approach for your team
- Hybrid frameworks that scale well in large teams
- Reuse with hybrid, cross functional with native
Code structure that scales
- Critical attributes code structure in large teams
- Building the firsts
- Code organization patterns for large teams
- Real world code patterns that worked well
Building safety nets
- The right layers of safety net for units, behavior, service and contracts
- Presenters for unit testing + Page objects for functional testing
- Frameworks and patterns for unit testing
- Functional testing frameworks and patterns
Abstracting services and external integrations
- Decoupling the back-end
- Building adaptive APIs that allow teams to scale
- Contract testing
- Levels of REST for better reuse and design
- Real world examples
- Branching models and support systems
- Feature branches vs feature toggles vs Release branching
- Role of Continuous integration in feature branching
- How to do feature branching with mobile development efficiently
- Doing the Continuous delivery with your apps with examples
Team structure & organization
- Platform teams vs feature teams
- Why Cross functional teams
- Practices to build a successful cross functional team
- How to scale app development with cross functional team
- Examples organization of cross functional teams
If you are faced with any of these challenges in your daily life, please attend this talk as I present some real world examples and patterns to address these challenges at scale.
Portions or talk will be technical and will revolve around a bit of code so some understanding of Android development and agile practices would go a long way in associating with code structure and delivery practices. If you have experience of working in large mobile team you will have a better empathy towards the challenges presented, but is not neccessary to have that experience.
He also had an oppurtunity to present at Droidcon and MDS in past on several topics pertaining to cross platform native development.
Currently he is authoring a book on a subject that revolves around “building & scaling teams for mobile development” and spends any free time that he can get to build skills in field of IoT.
Talks, Slides and prominent blogs from past: