Looking for a DevOps Expert for your Mobile App Automation? 8 Key Questions to Ask Them

Posted by: Veselin Mijuskovic October 15, 2020

The mobile app development arena is currently among the most saturated global markets. The competition is ever-increasing and is thus prompting companies to streamline their development process as much as possible. Acting quickly in terms of app automation – while maintaining top-tier quality and UX – is the only way to stay ahead of the curve and beat your direct competition. 

But that is easier said than done. 

In order to get your app “right” with the lowest number of iterations and minimal TTM, and to make sure it works properly with no hiccups across various different devices and configurations, your team needs to find a cost-effective way to streamline the entire production so there are no idle periods during the development process. 

This is made possible by using the DevOps approach for mobile app development. 

DevOps involves the assimilation of development and operation teams into a single organism in order to streamline workflow, speed up delivery, and improve the collaboration aspect between the two departments.   

Most typically, a DevOps engineer is a person who works with IT developers in order to streamline the processes of integration and deployment, and therefore achieve and facilitate more effective communication and coordination across:

This type of mobile app automation in terms of development is extremely beneficial and is slowly but surely taking center stage within the software development landscape, with new methodologies, principles, and technologies constantly emerging. This, however, allowed for a myriad of tech companies and businesses to add DevOps to their list of services, even though some of these companies aren’t really up to the task in terms of skill-set and adequate experience. 

This is why we decided to provide you with a list of relevant and actionable questions you might want to go over with your potential DevOps engineer, so you can subsequently make a legit, data-driven decision about hiring the most adequate person for your mobile app development needs. 

Important note: Most of the following questions do not have “correct” or “definite” answers as most software development teams/companies have different resources, working environments, workflows, and infrastructures, which is why researching this topic is prerequisite and integral to your understanding of the potential answers you might be given.  

Having said that, let’s delve into our 8 actionable questions we think can significantly help you in your quest. 

Q1: What do you (or does your company) specialize in aside from DevOps?

Why is this important:

As we mentioned in the introduction above, a great number of companies have fairly recently started including DevOps in their service offer, and you want to make sure the person/people you are hiring isn’t among those who are merely following the trend without having actual knowledge and experience. Learning which other cloud-related fields and niches they specialize in can be of great importance. 

What type of answer to expect:

Of course, not all cloud-focused businesses have identical service offers, but you would generally want to hear at least some of the following:

  1. Cloud management
  2. Cloud enablement 
  3. Cloud migration
  4. IaaS, PaaS and SaaS related services
  5. Sysadmin & IT services
  6. Infrastructure as code (IaC)

Being capable of covering a wide variety of services is typically a sound indicator that the engineer has an all-encompassing set of skills needed for the job. 

Q2: What type of DevOps tasks and problems have you/your company been tackling so far?

Why is this important:

Making sure the DevOps engineer has sufficient experience and enough empirical proof of their prior DevOps-related tasks and processes being successfully tackled should be among the first filters.  

What type of answer to expect:

The DevOps engineer should be able to provide at least one example of how they managed to resolve a DevOps project. We suggest asking for a case study showing their process and overall results. Ideally, a well-written case study should display the following data as clearly as possible:

Example: the team behind SuperAdmins has been implementing and tackling DevOps projects for many years now. Among the biggest ones is the migration and transformation project to the Public Cloud that involved creating CI/CD pipelines. We faced a task of moving legacy infrastructure to the cloud and creating Infrastructure as Code for such an environment. This type of project wouldn’t be possible without careful planning, testing, and making sure that everyone is on board with the changes that need to happen. Only then can all the moving parts of the DevOps project be approached and tackled from the right angle and in a timely manner. 

Q3: What are some of the most common stages/phases in your approach to a DevOps-related app development task? 

Why is this important:

Note: As we feel there’s a slight need for disambiguation here, we would like to emphasize that by “stages” we do not mean the stages of a typical DevOps life cycle, but rather the phases in an engineer’s approach to a specific project. 

A solid answer to this question should indicate that they have enough knowledge and projects in their resume to provide you with the best practice approach scenarios for DevOps projects. 

What type of answer to expect:

Among the first steps should definitely be understanding the actual task and its goals, as well as getting familiar with the dev team and the potential bottlenecks that may occur during the DevOps implementation process. They should be able to come up with an effective strategy for a hypothetical task/issue on the spot, especially in terms of:

Q4: Why is CI/CD among the main components of app testing?

Why is this important:

The fact that CI/CD – or Continuous Integration and Continuous Delivery – is paramount for mobile app automation processes is not exactly breaking news. Being able to explain why it is a paramount element of every mobile app automation and development process is what you should be looking for in a DevOps expert. 

What type of answer to expect:

Continuous Integration: In an app development environment, the DevOps tools are most typically deployed on dedicated servers and are used to detect any new code commits, so whenever there’s a change in the code, the continuous integration tool is able to automatically build, test and integrate the new code. Ideally, the code is being committed regularly, which streamlines the process even further, allowing for seamless code integration. 

Continuous Deployment: Whenever new code is committed, and given that the automated testing has been successfully deployed (more on that later in the article), the new code gets deployed to the production environment and is therefore instantly accessible to the customers. 

If the potential of the CI/CD process is properly leveraged, the development team is able to create a unified work ecosystem that doesn’t have any workflow bottlenecks or issues during development, testing, and production stages. This allows the company to develop, test, and ship the products faster and on a larger scale.

Although the efficiency level of your CI/CD process can be measured via various different metrics, the following ones are often deemed crucial for mobile app development and testing: 

These KPIs will give you valid insight into your app development performance for every regression of the app. Ideally, each time the app’s source code gets modified and/or a new build is deployed, testing should follow.

Q5: Why is Continuous Testing & Continuous Monitoring crucial in mobile app development?

App-Automation

Why is this important:

In order for a CI/CD implementation to be successful, aside from continuous integration and deployment/delivery – your team needs to go full circle in terms of automation and incorporate continuous testing and monitoring as well. Any experienced DevOps expert should be able to explain why this is the case and provide the benefits of continuous testing. 

What type of answer to expect:

In a DevOps environment, your mobile app goes through a lot of changes, especially through the development and deployment stages. Only through continuous testing can your team track issues and potential risks almost in real-time, and therefore be able to address and tackle them in a timely manner. Automated testing is also an important part of the software delivery lifeline as it provides immediate feedback on potential business risks. 

Some of the main benefits of Continuous Testing include:

Accelerated Release Cycles: The companies that properly utilize continuous testing in their app development are able to test code (existing and new) more rigorously, respond better to market changes, deliver updates more quickly, and release more frequently. 

Early Feedback to Stakeholders: The development team gets timely, actionable feedback on coding issues and is able to prevent potential problems to existing app features. This early insight speeds up the app release time and brings the number of defects to a minimum. 

Improved Test Coverage: As CT is activated at the very beginning of new code implementation and development, any critical errors are identified and addressed early (before integration) by the testers and developers. 

Reduced Cost of Defects: Whenever code undergoes changes, CT makes sure all outputs are error-free outputs and allows for shorter turnaround time. This reduces the overall cost of resolving defects. If the errors are detected early in the development cycle, the costs inevitably go down. 

Quick and Easy Implementation: With an avid, able, and experienced DevOps expert, the integration of Continuous Testing into an existing CI/CD pipeline (even without requiring any new tools) is not a complicated process.

Q6: What tech stacks and technologies do you prefer using in mobile app automation and why? 

Why is this important:

This is perhaps the question that can make or break your decision. As there are various DevOps tools currently available on the market, we suggest you perform prior research on the topic and get an idea of which DevOps tools are best utilized in which stages of your mobile app development project and why. If the answer is consistent with the data you’ve collected, this type of information should provide you with enough evidence of their knowledge and experience.  

What type of answer to expect:

Here are some of the must-have DevOps tools that should be mentioned in their answer: Ansible, Puppet, Chef, SaltStack, Terraform, Packer, Jenkins, Travis.CI, Vagrant, Docker, Git, BuildFire, Cordova, Corona Labs, Unity, etc. 

Of course, they should also provide a vivid context in terms of utilization for each tool they mention. For example, each DevOps team utilizes the tools they specialized for and which are optimal for their set of tasks. If, however, the client insists on deploying the tool the DevOps team is not familiar with, it is likely to prolong the onboarding period.  

Q7: What are some of the most common problems that occur within DevOps projects?

Why is this important:

Much like you want to hear solid answers in terms of best-practice solutions for DevOps mobile app development projects, you also want to make sure the tech/company you are hiring is familiar with some of the most common issues that can occur in specific contexts and specific stages in the app development life cycle. This way you will know they have an all-round DevOps knowledge and experience. 

What type of answer to expect:

We suggest you ask them to provide you an example (maybe they have a case study) of the common issue they encounter during the process and to explain how they solved it. Try to get as detailed an example as possible. 

If the person is not able to provide a case study, suggest fabricating a hypothetical one describing some of the most frequent DevOps issues. If they have adequate experience, they should be able to do so. 

Note: In our experience, among the biggest and most frequent issues is the communication between teams. As each project is somewhat unique and has its own set of challenges, there is no rule-of-thumb approach to solving the communication issue, which is why the teams and engineers must work together and have as granular approach as possible to the projects so the potential bottlenecks are obviated and prevented before they happen. 

Q8: What are the benefits of outsourcing DevOps?

Why is this important:

This is again something that you would want to look into prior to the meeting with your potential DevOps engineer. We suggest performing quick research on the benefits of outsourcing DevOps services for your particular industry, so you know what type of “correct” answer to look forward to and be able to comprehend even the more detailed answers. 

What type of answer to expect:

Some of the most common benefits include: 

Summing Up

Generally, the typical DevOps team consists of cross-functional members coming from the app development end combined with the team members from the operational stage. By working together, they are able to boost functionality and efficiency, reach new innovation levels, automate deployment/testing/integration stages, have early feedback and insight for the stakeholders, and reduce projects’ overall TTM, etc. 

However, as there are a lot of moving parts in deploying the DevOps mindset and strategies across various projects, and since each environment is to a certain degree unique and requires a tailored, well-thought-out approach, we recommend thorough consultation and research prior to making any long-term decisions. 

Automate your delivery pipeline

Book a free consultation with our DevOps experts!

Start

Keep reading

A developer’s handbook for security best practices

20.11.2020

One thing that you notice once you embark on the arcane ways of offensive InfoSec (a.k.a penetration testing/red team engagement) is that your success is the direct consequence of someone else’s error.

read more

The Benefits & Implementation of the DevSecOps (SecDevOps) Approach to SDLC

10.11.2020

The DevSecOps (SecDevOps) approach to software development is based on incorporating security in each and every stage of the cycle.

read more

SaaS: Cloud-native versus On-prem

05.11.2020

Over the last decade, we witness that so many start-up businesses are SaaS-based solutions, mainly because the payment model moves from license-based to the subscription-based.

read more