by Priyank Gupta (@priyaaank) on Saturday, October 17, 2015

+23
Vote on this proposal
Status: Submitted
Section
Enterprise - Full talk (45 minutes)

Technical level
Intermediate

Objective

  • 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.

Description

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

Technology selection

  • 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
    • Consistency
    • Predictability
    • Satefy
  • 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

Release practices

  • 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.

Requirements

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.

Speaker bio

Priyank is a mobile enthusiast with close to 12 years of experience who has spent last 5 years charting out digital strategy, ideating and delivering mobile applications for a combination of large businesses and start-ups both. Priyank has extensive experience with native Android, iOS, hybrid applications, frameworks like Xamarin and mobile web. He was one of the contributors on hybrid mobile frameworks Calatrava. Apart from that Priyank has worked extensively on server side technologies using Java, Ruby, Javascript and few other languages.
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:

Blogs

https://www.thoughtworks.com/insights/blog/building-better-behavior-tests-mobile-apps https://www.thoughtworks.com/insights/blog/building-adaptive-mobile-apis-legacy-services

Talks

Droidcon 2012 - https://hasgeek.tv/droidconin/2012/340-cross-platform-development-bridging-the-gap

MDS 2013 - http://www.developermarch.com/mds/2013/report/presentations.html

Slides for my talk at Geek night ThoughtWorks - Pune March 2014

Slides for my talk at Geek night ThoughtWorks - Pune December 2014

Blog/Github

http://github.com/priyaaank

http://priyaaank.tumblr.com/