To gather insights for DZone's Native Mobile App Development Research Guide, scheduled for release in February, 2016, we spoke to 18 executives who are developing mobile applications in their own company or helping clients do so.
Here's who we spoke to:
Dan Bricklin, CTO, Alpha Software | Adam Fingerman, Co-Founder and Chief Experience Officer, ArcTouch | Nishant Patel, CTO and Kurt Collins, Director of Technology Evangelism, Built.io | Tyson Whitten, API Management Product Marketing, CA Technologies | Rajiv Taori, VP Product Management Mobile Platforms Group, Citrix | Zach Slayton, VP Digital Technology Solutions, Collaborative Consulting | Brad Bush, COO, Dialexa | Craig Lurey, CTO and Co-Founder, Keeper Security | Jessica Rusin, Senior Director of Development, MobileDay | Steven Jovanelly, Senior Director, Innovation Lab, PGi | Brandon Satrom, GM Developer Platforms and Tools, Progress Software | Eddie de Guia, Co-Founder and Managing Director, PubNative | Hans Ashlock, Technical Marketing Manager, Qualisystems | Mark Kirstein, Senior Director of Enterprise Software, RhoMobile | Justin Bougher, Vice President of Product, SiteSpect | Carla Borsoi, Software Product Manager and Marketing Lead, 6SensorLabs | Lubos Parobek, VP of Products, Sauce Labs
We asked these executives, "What are the skills that make someone good at developing native mobile apps?"
Here's what they said:
- Focus on one platform and keep up with the changes. Don’t cross-over. They’re making releases so fast you cannot keep up with multiple platforms. You’re better off focusing on one platform and getting it right. You cannot write an iOS app to look like an Android app. You will irritate the platform as well as the users.
- Ability to use basic tools. Flexibility to understand the backend, the frontend and how they dovetail with each other. Understand how data is ingested and imported into the database. Password-less login. Database skills and stack - Java. Knowledge of the front-end and the ability to take the design and figure out the controls to write. Multi-faceted ability to work with engineers. We use Node JS as well as some Java. Know how plug-ins and APIs work.
- Deep understanding of platforms. An app designed for iOS won’t work well on Android or Windows. Understand usability and provide a good user experience (UX). Have technical expertise on the platform. Use your creativity and imagination to create the app. A few devs have the ability to work across platforms while most are focused on a single platform because they have a very deep knowledge of that platform. If you know multiple platforms, you’ll be more valuable. However, it's easier said than done.
- Focus on the UX. Start with design and capture the aesthetics. Think about the ways people are going to use the app. Design based on what the customer wants to do. This isn’t easy. There are a lot of restrictions with screen size, real estate, platforms - the app must be designed well. Instead of “mobile first,” we need to be thinking “mobile-only.” Architect in the mobile only format and think about the different end points like PCs.
- Different platforms require a different mentality. Understand the need to get things out quickly. Developers are rewarded when they see people using their product and then get ongoing feedback about what's working and what isn't. Apply learning back into the development process. Agility - the ability to iterate and move on. Build quick and tear down quickly. Keep iterating - meet or exceed the customer expectations. Provide a great experience with a great user interface.
- Ultimately it’s dedication and perseverance. There are many resources online to help you build apps, but in the end it’s up to you to offer a great app to your users.
- Know the right tool to use at the right time. Understand and be aware of different systems.
- A good lead architect/designer for a mobile app must have strong UX and systems or embedded computing background, as well as understanding of human psychology, linguistics, and physiology.
- Cross-discipline thinking between development, design and engineering on the backend. Where does the data reside, how do you access it, what does it look like for the user? Approach the problem in a different way on mobile in order to solve it. That’s what we did with vin.li - several apps solving simple problems in a new way.
- People who can have empathy for the user. Be flexible enough to work in multiple industries. Be experienced designing and developing, not necessarily on a particular platform. Experienced building and shipping software products.
- Some experience with native app development. Be mindful of security. Building on the desktop helps people learn native mobile app development in a limited environment. Some work on both platforms which is a benefit because you’re writing duplicate code and seeing things on both platforms can lead to improvements on the other.
- Know the underlying language - Swift for iOS or be a very good Java programmer. Know a lot about mobile, SDKs, analytics, authentication, data on the line - the little intricacies of mobile development. Learn what works and what doesn’t by developing apps.
- Have a head for design. Mobile and iOS have raised the bar on the end-user experience. It’s more about form and function. Be savvy about the patterns of successful apps.
- Aesthetics are important due to the limited real estate. Need a good background in UI. Need to produce an app that’s intuitive and looks great. Focus on quality. Follow the best practices in continuous development. All test are run as the code is written. Be willing to write your own tests following the CD/CI discipline.
- Know what customers use most and what they want to do. Be in tune with the customer use case and get their feedback. You have limited real estate so you must understand customer priorities. We want developers to know both devices, how they feel, how they flow, and the experiences customers expect from them.
- It’s a team effort. Every person has a different skillset and a unique perspective - UX, responsive code, off and on-line network capabilities, and QA testing.
What skills do you think make someone good at developing native mobile apps?