Micro Focus is now part of OpenText. Learn more >

You are here

You are here

How to infuse customer feedback into your DevOps

Ofir Nachmani CEO, IamOnDemand

DevOps and the cloud, the dominant topics in enterprise management discussions, are increasingly forcing R&D and operations leaders to rethink software delivery. Legacy methods just don't cut it anymore. They're too cumbersome, expensive, and disconnected from customers. So what do you do?

Companies such as Amazon, Etsy, and Facebook use a DevOps approach with people, process, and technology as a way to drive software delivery speed and, ultimately, business results. But do modern software delivery methods such as continuous delivery actually succeed everywhere legacy methods have failed? Can DevOps truly bring IT organizations closer to their users?

The ultimate goal of DevOps is to increase the speed and quality of software services, something every IT organization needs. But how can the parties involved in DevOps accelerate delivery if they don't understand what they deliver or know the people to whom they deliver? Despite great advancements in delivery, quality service still begins with understanding the needs of users, including not just product owners and all stakeholders, but also developers, test engineers and operations.

The feedback loop

Feedback loops are a key enabler for modern delivery. In order to link customers to DevOps, you need to focus on user delivery needs by amplifying and shortening your feedback loops. Almost every implemented DevOps process should aim for accelerated response times and continuous release based on user requests and usage behavior. In his article "Feedback loops: The confluence of DevOps and big data," Dana Gardner sums up the link between feedback loops and user behavior data analysis this way:

"Feedback loops galore will fuel our data-driven decisions and offer entirely new levels of precision and rapid adjustment to more types of events, variables, and needs. The bold and curious will lead the creation of value around such new feedback-loop empowered analytics."

Traditionally, hand-offs waste a lot of time. If you want to accelerate your feedback loops, eliminate as many hand-offs as possible to help development flow throughout your system. You can achieve this by removing the boundaries that exist between different parties, including your customers.

Here are the roles for each of the parties involved in software delivery, and how each can influence the way that DevOps links to customers.

Developers: Take full ownership

In traditional linear models, R&D writes and tests the code, then hands it off to operations to deploy and run in a production environment. This can lead to a lack of ownership for project as a whole, ("It worked on my local box!") as well as a slower pace of development. But in DevOps, the dev and test team members work closely with operations, often as a unified, multi-skilled team set on carrying out common, customer-related goals. By being exposed to end-user requests, developers that are more aware of what's going on in production can take full ownership of their code, even when it's in production. Conversely, the operations team can enable developers with frameworks and tools that can help R&D engineers test, fix, and ship code faster.

In addition to knowing their users, developers can build products on top of a loosely coupled architecture, making sure to reduce complexity and enhance delivery flexibility. Along with making it easier to understand customers' needs, flexibility can help the team deliver the smallest amount of functionality that produces value in the most efficient manner. With their new position in the delivery process, developers have an enhanced responsibility to users and depend on user feedback to constantly deliver value.

Testers: Get involved with actual users

Product and software testers must have a firm grasp on the technical aspects of a feature in terms of how it can interact with the rest of the product and how it may affect overall performance and security. This knowledge is required for both manual testing and preparation of infrastructure for automated tests.

Test engineers, as the first end users of new features, should be able to see the whole picture. Similar to product owners, testers should directly interact with users, which allows them to qualitatively assess a feature's value and readiness. Knowing users in person helps testers work with product owners in order to build user focus groups, which can help run a controlled UAT. By teaming up with product owners and users, test engineers can take a proactive approach by leveraging their deep technical understanding of how a product works to help perfect its quality and capabilities.

Ops: Take the operations as a service approach

DevOps increased the significance of the nonfunctional requirements operations teams run by making them just as vital to managing and stabilizing software or a product as product owners' functional requirements.

Delivering an online as-a-service solution means taking ownership of all of the IT management aspects of the running software, including performance, availability, and security. Your operations team must understand user behavior and business needs. Simply knowing that the system should be up and running 24x7 is not enough. Operations should know, understand, and take part in building service-level agreements with users. By doing so, they can plan, implement, build, and maintain their environment according to user expectations.

In addition to implementing and integrating DevOps tools to support streamlined delivery, the operations group's first priority should be to make sure that all nonfunctional requirements are fulfilled. Understanding user requirements allows operations teams to prioritize requirements in line with organizational business goals.

Product owners: Share with the team

In most discussions about the core values of a service and its features, product owners might be better proxies than actual users. However, direct communication between R&D, operations, and customers should not be considered stepping on anyone's toes. IT organizations should understand that and capitalize on certain cases. When it comes to more technical issues, such as the ability to deliver email, product owners should encourage and facilitate direct communication between the parties that are involved and take part in quick remediation and delivery. Because fast, quality delivery is the product owners' responsibility, they must continuously share their discoveries, including user requests and market trends, with R&D as well as operations.

Continuous feedback is key

Continuously capturing and responding to feedback is key to rapidly and repeatedly turning innovative ideas into highly relevant and desirable products and services. This requires the full engagement of the development and operations teams, as well as all individuals within the IT organization. As opposed to unidirectional, legacy models, DevOps is bidirectional. It is based on delivery as well as customer feedback in order to make improvements.

Your organization needs to understand who's consuming your software and why they're part of the chain. Unfortunately, it's all too easy, especially in large organizations, for teams to focus solely on their specific areas of discipline. But your ultimate goal is to deliver quality software to end users. Only when you understand how customers use your software and how they benefit from it can you can focus your development and delivery efforts appropriately.

Keep learning

Read more articles about: App Dev & TestingDevOps