Line of developers

Outsourcing mobile dev? Here are 3 ways to maintain quality

With mobile applications proliferating at an ever faster pace, ensuring a brilliant user experience for your app is vital if you expect to attract and retain users. But how do you achieve that—and meet your DevOps objectives—if you’ve outsourced development?

Outsourcing app development is an increasingly common practice, and for good reason: By leveraging external resources, you get access to world-class expertise, an expanded knowledge domain, and greater ability to innovate.

The challenge lies in ensuring that outsourcing development of mobile apps won't hurt quality. So how do you avoid common mistakes when outsourcing mobile software development? Here are three critical aspects of the problem that every mobile development team should consider. 

Testing in the Agile Era: Top Tools and Processes

Establish quality as a common goal 

Make sure that your outsourcing partner embraces the same meaning of quality that you do. There are many ways to accomplish this, but a good place to start is by conducting a careful assessment before signing a contract with an external service provider. Explain your quality expectations, and then ask candidates how their development best practices and methodologies for development and testing will meet those expectations. Are they ready to support your DevOps processes? Are their processes aligned to the latest standards?

Also ask them to talk about their successes with clients and how they can help you gain a competitive advantage and innovate.

Collaborate like they're part of the org

Many organizations are shifting from traditional outsourcing, based on a buyer/seller model, where the primary project goal is reducing costs, to global collaboration, where the primary goal is generating revenue. In order to be on the same page and share common DevOps objectives, organizations should adopt as many strategies as possible to improve collaboration with their outsourcers. So how do you execute global collaboration projects successfully, and which processes should you change? With regard to development processes, here are a few best practices to implement when outsourcing software development:

  • Extend development methodologies to include collaboration. This means using tools to share artifacts. You must also communicate effectively, even if your providers are located on different continents. Increase the number of design reviews, especially at the initial stages, and add more structure to your review meetings. For example, define explicit inputs and results to make meeting roles and responsibilities clearer.
  • Agree on a development methodology. Whether you ask your providers to align to your own methodology or let them choose one, you should carefully design the integration processes and synchronization checkpoints, which should happen regularly.
  • Adopt a continuous improvement mindset and emphasize continuous learning and knowledge sharing across different projects by conducting regular, dedicated lessons-learned meetings.
  • Make the outsourced team part of your organization. Integrate the external development teams with your in-house teams. Doing so will enhance willingness to collaborate and communicate.

Shift testing left

To speed up the time to market for your mobile apps without compromising quality, adopt more test automation to validate functions, performance, and security. Often, companies struggle at the initial stages of adoption, especially if the QA team is in-house and the development team is outsourced—a common scenario in mid-sized organizations.

  • The most frequent complaints I hear include “Creating test automation scripts takes us too much time because we don’t know how this app has been developed,” “We stop at every difficulty we encounter,” and “We should ask our provider to make our application testable with automation tools.”
  • Automated testing of mobile applications is much more complex than web or standard applications, and having the right skills on a QA team is a challenge. To speed up test automation adoption, you need close collaboration with the development team. Shifting testing left is a practical way to accomplish this.
  • Your development team, outsourced or not, should start developing test automation assets as early as possible in the development process, using practices such as behavior-driven development. The QA team should enhance and extend those assets to reach the depth of test automation required. To accomplish this, decide on a common test automation technology that lets your developers create scripts directly in their preferred IDE and that allows your QA team to get and reuse those assets without barriers.
  • Testing should be a shared responsibility between your development and testing teams. But in order for developers to understand how to effectively use the assets they receive, you need to inject some coding skills into your QA teams.

Finally, to make everyone’s job easier and to keep pace with the fast release cadence of mobile applications, make sure that your outsourced development partner writes your mobile app with testability in mind.

Set expectations, collaborate, succeed

If you can ensure that your outsourcers satisfy your quality expectations, and if your internal and external teams can find ways to collaborate in every stage of the development cycle with a shift-left testing mindset, you'll be well-positioned to achieve your DevOps goals and maintain quality while getting the most out of outsourcing.

How have you sustained quality while outsourcing mobile app development? Share your experiences below!

Testing in the Agile Era: Top Tools and Processes
Topics: Dev & Test