Organizations need to develop the ability to release valuable software whenever they want. Yet, despite their continuous delivery and agile endeavors, many organizations still cannot release working software on demand. Instead, it often takes multiple sprints lengths to put working software into production. Future-ready organizations develop the ability to bring high-quality software to production instantly.
Why? Because too many activities are delayed until after the sprint although organizations experience an ever increasing need to deliver value to production. This article takes you through the most important pain points IT organizations experience when putting quality software into production. Next, we suggest a series of next steps to start addressing these pain points. This will help organizations to get a very important trend at their fingertips: organizations bringing high-quality software to production instantly.
On-demand software delivery without proper execution of development and testing activities is prone to failure. The goal of software testing as a discipline is to verify whether we built the thing right and to validate whether we built the right thing.
Building the thing right relies on continuously challenging of functionality using a conscious and critical mindset. Automated tests serve as a safety net, but these checks merely show you that software development is not done yet for a current sprint. The real question is, are we building the right functionality that helps us increase market share, outperform the competition, or, ideally, both? A strong role of the product owner and organized continuous stakeholder feedback in combination with techniques such as impact mapping, example mapping, and specification by example are necessary ingredients to understand your organization is building the right thing.
Building the right thing that sound and unambiguous specifications exist for the functionality and are used to continuously check whether the software conforms. Organizations should rely as much as possible on automation to speed up the feedback while developing the software. In other words, there is not much use in putting broken software into production. So, organizations need to combine a balanced spread of automated tests across the various levels of your source code (units, components, integration, end-to-end) with clear insight into test coverage to gain confidence that they are building the thing right.
A combination of both is the way to go. Organizations that do not adhere to an automation mindset will spend their effort in verification and find they do not have, err, allow themselves the room to focus on validation and genuine product improvement. Only then can organizations and agile deliver quality software instantly.
Organizations that apply continuous delivery and agile principles can still suffer from a heavy-weight testing process. They typically suffer from the following:
Inefficient organization. Often, the testing process occurs entirely separated from the delivery process. Typical symptoms include:
Lack of tool support. Without proper use, it takes days or weeks to set up the environments, install the correct versions of software and services, load appropriate test data, and run the tests. The more effort it takes to set things up, the more likely it is for test results to be flaky and unreliable because of the manual actions performed. Tools can rectify all these effort-prone activities.
No acceptance-first approach. Partly due to the positive mindset and optimism bias, teams are lacking sharpness and focus. An acceptance-first approach describes the desired features in terms of acceptance criteria - features not described as such will simply not be delivered. Using modern yet widely available tools, teams have a laser focus on ‘done’ and in this way can prevent overestimation of their and underestimation of the risks and costs.
Feedback is the real cornerstone of every delivery team. Only with the appropriate feedback can agile teams deliver high-quality software instantly. Setting up an immediate quality feedback process encompasses a series of actions:
Although the desired end-result may be clear, it is often cumbersome to start improving. Organizations experience existing ways of working, structure, and internal boundaries that are around for years. How to flip this script? Start small, but be thorough.
Take a vertical slice of a business process, address the complete value chain, and improve by doing the following:
This article is part of the Urgent Future IT Forecast 2017.