Devops in Mobile App Development - a QA perspective
Updated: Aug 10, 2019
DevOps is a constantly evolving division in a company, new tools are getting adopted, newer processes are being set leveraging the power of these new tools. This is happening abruptly in mobile application development. As the mobile adoption grew rapidly, the focus on bringing agility to mobile app development and deployment at scale has become a priority to most companies. Devops had to tweak common practices to align with development for mobile because the production environment has become more out of control.
Unlike in web application where a developer has complete control over every event that occurs within their server, mobile developers have a hard time identifying or recording the bugs that occur in a mobile device. This brings in a significant difference in tools and practices required to solve the challenges of bug fixing and performance improvement.
Web application gives a developer freedom to fix issues or improve the performance of the application on the go much before the issues get into the face of your loyal users. While the only way to get this done in a mobile app is to roll out an update with bug fixes and performance improvement. But the pain point isn't about rolling out an update, it is about not being able to record or identify bugs happening in a device away from the control of a developer. The tough release mechanism coupled with the inability to identify and record issues has made the devops in mobile app development different how companies approach devops in general.
Devops is always data driven and the devops tools act as a feeder to data-driven decision making and to prioritize activities in devops. The goal of devops is to
Make product delivery seamless and efficient
Evolve product/ user experience and the delivery mechanism through data-driven decisions.
Manage team to scale delivery.
To bring efficiency to quality assurance and optimization processes with logging infrastructure.
The devops activities are seen as the backbone to agility in update releases. Devops align every development process in the company to manage releases at scale. Collecting post app release stats has become an important task in many companies and it has become the responsibility of the devops to set up infrastructure to perform the same. The data is usually sourced to the QA to further process them, find issues and bring it to the developer's attention.
Here is the difference. collecting data from mobile device requires app level infrastructure. Deploying such an infrastructure is a resource-intensive task, doing that ends up making the app performance heavy and consumes device resources.
The kind of effort the development team has to invest to get this done is a huge burn of human resource and time. Using tools/SDKs which does the same is always the sensible option because they would have already invested a lot of time into R&D to build a solution that is low on footprints.
Such tools and activities in devops should not burden the QA with extra efforts to pass on the data to the developers. Without such an infrastructure, QA is responsible to collect logs and other critical data regarding the bugs and then structure them manually into a bug report. This report has to be then raised as a ticket with severity tags etc manually into a bug tracking tools. The best way to solve this problem is to have the SDK raise the issue directly into the bug tracking tool with proper structure and tag.
Another aspect devops must consider is not to force developers to put extra efforts in learning or burdening them with a different tool for every activity. The ideal mechanism is to have integrations to a common tool or an already familiar devops tools like Jira etc. Thus QA/Testers can save time and focus more on test cases. In Fact, they would feel like they have gained more control over the app at the production level.
Unlike web apps or other projects, the release of a mobile app happens in controlled stages to segmented user bases. Being able to capture critical bugs early on before the app reaches the majority user base is the best thing that can happen to the company. Nothing is worse than a 1-star rating for your mobile app. Unsatisfied customers can publically harm your brand through the medium of the App Store or Play Store. This is another scenario where implementing a production level monitoring system can be of help.
It is very common that the app performs well in the test environment but fails in the live environment.
There can be various factors associated with failure such as network conditions, memory, power etc. So it becomes important for the developers to ensure continuous performance monitoring by adding third-party SDKs to the app such as log, crash report, memory issues, network issues etc to find the root cause of the failure.
Considering all of the above-mentioned problems and solutions, a third party SDK that has a very low footprint collects maximum data and provide them in a structured format with intelligence for developers to improve app quality is must devops infrastructure.
We at Finotes work with an underlying thought of providing developers with data and intelligence to improve app quality, and we believe that enabling QA and Devops towards this is the right approach. Finotes is built to solve QA related devops challenges in the most efficient manner. Learn more.