Growing multiplatform skills in your mobile app team will benefit both your developers and your company.
If you’ve put together a mobile app development team, it’s likely you’ve ended up with a group of platform specialists, each solely focused on either Android or iOS.
Maybe you started out working with Android and when the time came to add iOS, it made sense to bring in specialist iOS developers. Or maybe you started with one dev working across both platforms but as the team grew, it naturally split and the work became siloed.
Until recently, this has been a reasonable approach as the platforms have traditionally required separate skill sets and there is a level of efficiency in specialization. But over time, language similarities and improvements in code-sharing tools have made it easier than ever to start diversifying skills across your team.
Growing multiplatform skills in your team will be hugely beneficial to both your developers and your company. Here I’m going to walk you through those benefits and share my advice for diversifying skills in your mobile app team.
Building multiplatform skills benefits developers
Becoming mobile developers, as opposed to Android or iOS developers, is an opportunity for your devs to expand their skills and become more valuable to the team. While skilling up on the other platform, they will be introduced to new architectures and ideas. Understanding the different approaches to similar problems and how to work with platform limitations will benefit their work on both platforms. It will help them think about the code from a higher level and build better abstractions around the platforms.
They will also be introduced to a whole new community. There are countless Android or iOS developer slack groups, meetups, conferences, and forums. Tapping in to the knowledge of both communities is very valuable as a developer. Sure, nothing’s stopping them from joining these groups as a platform specialist, but having context from both platforms will help them to absorb the information.
As you help them to grow their skills across platforms, they will be more qualified to take on opportunities in your team. They’ll be able to pick up a wider variety of projects and provide support for other devs. Having additional understanding of both platforms is also valuable for a developer looking to move into a lead dev or management role. Those roles often cover the entire mobile team and require the ability to communicate with everyone.
Finally, a developer benefits from learning these skills when it’s time to look for their next job. Job descriptions often specify experience with a particular platform. Being able to target either platform means a lot more opportunities for the dev. Tapping into the larger community discussed above is also invaluable in a job search.
Building multiplatform skills benefits the company
The company also benefits from encouraging mobile developer growth. You’ll have more flexibility in who works on projects and consequently when they can be accomplished. This can be at a large scale when you are putting together a squad for larger projects, or at a smaller scale when planning tasks for the week. Either way, having a well-rounded team allows you to make choices based on availability and other factors, rather than solely platform experience. You’ll also have more opportunities to rotate developers in and out of projects more easily because no one person is critical for a platform to move forward.
Your team will also benefit from improved collaboration. When more developers have context around platform concerns, they can participate more effectively in discussions and decisions. Code review becomes more valuable and there is more opportunity for developers to participate in cross-project and team reviews.
How to grow multiplatform skills in your team
So what can we do as dev leads and managers to promote skill growth and knowledge sharing across platforms? First, we can provide opportunities, giving eager learners a chance to pick up other platforms. Second, we can shift culture and expectations to avoid siloing. Finally, we can leverage multiplatform tools and frameworks to ease the transition.
1. Provide opportunities
Give developers opportunities to participate in work across platforms, both in the regular course of business and in extracurriculars. Code review is a great opportunity for a developer to start exploring another platform, as is pair programming. Pair code review, where the author of a change meets with a reviewer and goes through the code live is also great for this. A good, curious developer leveraging the ‘rubber duck method’ should provide adequate feedback, even if the reviewer isn’t as familiar with the platform. You can also identify tasks that can be worked on by devs with less platform experience and spread them around the team.
There are also opportunities for knowledge sharing outside of project work. Hack days allow developers to work with people they wouldn’t normally interact with and allow for low-risk exploration of other platforms. At a smaller scale, try encouraging knowledge-sharing exercises such as ‘Lunch and Learns’.
2. Create the right culture and set expectations
There are steps you can take as a team and company to encourage multiplatform growth, starting with hiring. Look closely at your job descriptions and interview processes; do they focus too heavily on specific Android or iOS experience? It’s understandable to have specific platform requirements as you are often hiring for an immediate need, but try to avoid evaluating solely on platform skills. Look for a solid understanding of concepts that are relevant to mobile development as a whole, such as connectivity, architecture, usability.
Avoid platform-specific titles such as Android Developer or Senior iOS Engineer in favor of more general titles such as Mobile Developer’, or simply Software Developer. Everyone has their specialties, but they shouldn’t feel limited by them. It may seem like a trivial difference, but it helps set the multiplatform mindset across the team.
In planning, consolidate tasks into a single ticket that covers both platforms when possible, allowing one developer to oversee the entire thing. Avoid pigeonholing developers into specific roles based on their experience
3. Leverage multiplatform tools
Cross-platform languages and frameworks have been promising to solve platform siloing for a long time. Unfortunately, previous hybrid solutions have suffered from usability issues; they never quite felt native to users. They also required learning a third language and ecosystem and required a significant financial commitment upfront. There are now solutions, such as Kotlin Multiplatform Mobile, that don’t introduce a third language or require a large upfront cost. Using the same language across both platforms means developers have less to learn and makes it easier for one developer to work on a feature for both platforms.
Reflections
Adopting some of these strategies for upskilling your developers and promoting mutliplatform growth will help you build a more well-rounded and flexible team. Developers will benefit from learning a new system, and your team will benefit from improved collaboration and project flexibility.