Mobile application development poses a complex set of challenges for developers and testers, requiring that teams change their perspective from the traditional development approaches. Todd DeCapua, vice president of channel operations and services at Shunra, will discuss the challenges and strategies associated with mobile app development in his session titled, “Mobile Apps: Breaking Down the Barriers” at the Better Software West conference...
in Las Vegas. He offers insights into mobile testing, collaboration and DevOps in this pre-conference interview.
SSQ: How can development teams best address the variability of networks, service providers, devices, OS and browsers? What are your thoughts about BYOD testing?
Todd DeCapua: Mobile is very different than traditional testing, given that 70% of the performance budget in mobile is spent on the network. It is therefore necessary to leverage unique capabilities which exist in the market to capture key variables (networks, service providers, devices, OS and browsers) and then recreate these in a lab with techniques like network virtualization that allow for precise analysis and subsequent tuning in order to optimize applications for these varied conditions.
BYOD testing is something that is also required, especially in an enterprise organization. However, this approach is not that different from the need to test the various customer-facing mobile devices.
SSQ: How is the development-test-deploy cycle different for mobile than traditional applications?
DeCapua: Each of the areas -- development, test and deploy-- offer a bit of a different cycle for mobile versus traditional applications.
With mobile development, we have new development platforms (some SDK’s, Accelerators, or Native) and technologies and approaches (Native, Hybrid, HTML 5, etc).
Within test, the variables mentioned before (networks, service providers, devices, OS and browsers) all play a significant role in how an application performs for the end user, so each must be virtualized or taken into consideration by some other means during the testing stage, creating more complexity, but also more accuracy, than traditional testing methods.
For deploy, the approach with mobile apps is a bit dependent upon how deployment will be done and the potential impact to the end user. With native apps, the end user must be prompted to download the update (and you will have to manage the multi-version and additional load/capacity following the download of your update). With hybrid apps, deployment cycles or iterations depend on how often you want a new interface or feature-function change to be pushed to the end user.
SSQ: What methods for cooperation and collaboration amongst team members do you recommend?
DeCapua: There are many tips and tricks that could be recommended, depending on the team environment (distributed vs. co-located vs. hybrid) On the whole, I am an Agile, Scrum and Kanban practitioner and recommend leveraging several of the tools/discipline to support those methods, with the goal of enabling cooperation, collaboration and accountability amongst team members.
SSQ: What is your take on DevOps, particularly in terms of mobile app development?
DeCapua: I am a fan of DevOps, yet many people define or describe it in many different ways. For me, I have seen DevOps created from the increased volume of feature-function being delivered via Agile and the need to bridge the gap from development to operations/production. With this shift over the last 5-8 years, many organizations have tried adopting Agile into their operations/production organizations (with limited success), and have found that assembling a cross-functional team (DevOps) to work collaboratively to deliver new feature-function into production has been successful. Now that organizations have defined the process and organization to support Agile, they are looking for tools and products to automate and optimize this workflow. In terms of mobile app development, many organizations are still holding mobile as that stand-alone team to be specialized, and much is not known across the large enterprise about what these teams are doing. For organizations that are starting to come up the mobile maturity chart, they are now realizing the value of integrating into their overall development cycle given the ability to leverage existing services and infrastructure from within their mobile apps, allowing them to increase their velocity and quality.
SSQ: With both speed and quality being essential to mobile development, what can teams do right now to meet the requirements of both?
DeCapua: I would argue that speed and quality are two important measurements in many things we do, not just mobile development. To enable teams to meet the requirements of both, they need to define ‘doneness criteria’ for the overall team, providing accountability goals they have for speed and quality (and other targets) which they use to base doneness of feature-function as a team. There are methods like Agile that help to support this approach, and several tools that also enable the ability to set quality thresholds for automated testing, providing for quality gates or checkpoints throughout the process. A critical element for the team is how they can start testing earlier in the process, and how testing can be automated and integrated into the continuous integration and continuous development process. This includes results for: functional, performance, security and operations.
SSQ: What do you hope participants will take away from your presentation?
DeCapua: Participants will learn how to empower change in their organization and provide a strategic roadmap for the business to speed mobile application development while improving application quality and the end user experience. This will be accomplished by using real-world examples from organizations that have broken down traditional barriers, and a lively discussion and collaboration within the session, where practical lessons they can apply immediately will be shared.