DEVOPSdigest asked experts from across the IT industry for their opinions on the top tools to support DevSecOps. Part 2 covers DevOps and development ...
According to Aryaka's 2017 State of the WAN Report, businesses are running cloud-based apps almost 50 percent of the time. As employers and employees are turning to apps to improve productivity and administrative efficiency, app developers are also resolving to streamline processes to keep apps functional while they release new feature and updates to meet market demand.
2017 saw a number of incidents when apps failed during peak usage times, causing frustration for both consumers and developers alike. The popular college application site Common App crashed 48 hours before the deadline for submissions, leaving thousands of students frustrated and at the mercy of the developers during crunch time. As DevOps teams and developers are looking to make 2018 the year in which technical crises are avoided, continuous testing should be at the top of their resolutions list.
Here are four steps developers and DevOps teams can take to ensure the benefits of continuous testing are effectively implemented throughout the development process:
1. Team Autonomy Accelerates Velocity
With teams facing increased pressures to deliver more functionality into an application, teams are moving to decreasing dependencies across squads. Teams with a lot of dependencies spend more time on waiting on others or managing interactions that slow down releasing new features to production.
Mature, Agile teams are increasing squad autonomy as they are taking on more responsibility to maintain pre and post production service quality. DevOps teams reuse test automation developed during preproduction to continuously validate user experience in production. In the world of Agile and increasingly DevOps, squads are doing more themselves and intentionally minimizing unnecessary dependencies.
2. Shift Operations to Dual-Monitoring of the Front-End and Back-End
Traditionally, developers have monitored performance based on back-end activity with limited focus on the front-end. However, with the rise of native mobile apps and an increasing amount of client-side logic being executed, the front-end has become increasingly important to monitor. This architectural shift changes how operations teams must expand their focus from back-end monitoring to a dual-monitoring pattern to continuously understand how both the front and back end are performing.
Directing attention to the front-end allows DevOps teams to monitor and refine key user experience performance baselines – i.e. app responsiveness and loading lags. These baselines should be refined over time; however, DevOps can establish and test these baselines during pre-production, not post. Shifting this front-end testing to production provides early warning of user experience degradations.
3. Know Your End-User and Test in Non-Ideal Environments
To deliver a successful experience, you must know your end-users. This applies not only to design and user experience (UX), but also to understanding consumers usage patterns and degraded environments. It's important to understand how your platform will perform in all environments, not just the ideal ones.
Continuous testing provides DevOps teams the opportunity to test for different scenarios ahead of launch. Keeping end-user demographics in mind, DevOps teams can run tests for pre-identified metrics earlier in the overall development process, allowing for bugs and defects to be identified and resolved in a timely manner via continuous testing of all KPIs. DevOps teams should not only monitor for these demographics once the app has launched but should test in non-ideal environments during the pre-production stage. Testing for instances such as poor connectivity or low memory/battery scenarios that impact location-based transactions, will improve overall UX and avoids any trouble-shooting headaches for the DevOps team.
4. Incorporate Lessons Learned for Future Builds
Continuous testing not only automates a number of tests that were previously performed manually, it also offers valuable insights around what works and what doesn't. For continued success, DevOps teams must take what they learned from continuous testing and apply it to future builds. An aligned team structure will allow the development team to embed certain deliverables and benchmarks that they weren't able to anticipate in the initial launch, into the current version of the app they are working on. This will strengthen future builds while also allowing DevOps teams to focus their efforts on testing and correcting for new issues that may arise.
If your resolution for 2018 is to have a year with fewer crises, the first and best step is to implement continuous testing practice. Continuous testing is an effective enabler to the app development process that will benefit everyone involved.