Driven by COVID-19, everything from digital transformation initiatives to customer expectations have accelerated. As consumers reflect on how much they have come to rely on websites and apps over the last 18 months, they have deep firsthand experience with how technology can make their lives simpler and easier. It’s now up to companies to effectively deliver on these expectations, and the foundation for that is to empower their developers, engineers, and security operators with the tools and infrastructure required to foster a quality developer experience.
Development Today: Voice of the Customer
Before we get to the tools and infrastructure characteristics that best enable development teams, it’s important to recognize the significance of understanding what end users actually want and need. Otherwise, how will your teams know what to build, where, and when? Today, it is incumbent on every business to understand customer expectations, and to be able to fulfill them with a seamless and effective experience. This is table stakes for modern businesses.
In many companies, account managers, customer support representatives, and executives have the most direct engagement with a customer. However, delivering on expectations that come out of those meetings falls to the developers who are writing the code for the websites, software and applications end users rely on.
An effective method I’ve seen is ensuring that developers and engineers hear directly from customers. Some companies split customer support responsibilities between engineers and customer support staff so the engineers can interact with the teams who are using the solutions day-in and day-out.
Other companies simply bring developers into customer meetings regularly so they can hear first hand about customer challenges and internal expectations. This sort of empowerment — putting the builders who typically work behind the scenes in direct connection with an end user — allows developers to better identify the core problem a customer is trying to solve. While it may take some shifting and restructuring of process and workflow to unlock this sort of access to the customer in an organization, face-to-face engagement is a vital first step in setting your developers (and your business) up for success.
Infrastructure and Tools: Key Characteristics
Equally as important as knowing customers’ needs and wants, developers need a consistent and stable infrastructure that enables them to develop and deploy secure, high-quality code quickly — with continuous integration and continuous delivery. Speed continues to be paramount, but not at the cost of security. These are a few characteristics of infrastructure and tooling that allow developers to build the online experiences end users expect today:
- Flexibility — More prominent than ever, the ability to adapt to changes in the operating environment, as well as integrate with a variety of frameworks and applications, is mission-critical.
- Resilience — Minimizing disruptions, eliminating downtime, and providing disaster recovery with fast mean-time-to-resolution (MTTR) are all top-of-mind capabilities for developers as they navigate an unprecedented amount of complexity in the way that systems are built today.
- Scalability — Handling the exponential growth of data, data sources, and processing speeds — while expanding internationally and attracting more global users than ever before — requires modern tools and infrastructure that can grow with you without overburdening budgets or resources.
- Ease-of-use — Just like for everyday consumers, if a product or service isn’t easy to use, people either won’t use it, or they’ll use it incorrectly. Developers want tools that are straightforward and intuitive in managing the diverse frameworks and applications they are leveraging today for modern infrastructures.
- Speed — The requirement for speed permeates all of this. Build systems need to test and compile highly complex software rapidly. Deployment systems need to safely and quickly get new code out in front of customers. And, of course, the services that developers are building need to provide fast responses to users regardless of device, location, or connection quality.
- Security — Last but certainly not least, developers need to control information access and data availability proactively to protect against malicious bots, breaches and DDoS attacks, to name a few. This maintains minimum viable levels of consumer trust. Tools that allow developers to build securely alongside security operators from the get-go are redefining the outlook for secure DevOps.
Every developer has a set of tools that they’ve become familiar and comfortable with. They should be performant, resilient, scalable, and they integrate into existing workflows. Consider this as you evaluate new tools to improve performance and developer experience.
Developer Experience
Developers want to solve interesting problems and create useful and novel things. Enabling a good developer experience facilitates this and makes it easier to hire and retain developers who will create amazing products that provide great end-user experiences.
Developer experience has a direct correlation to the quality of code developers produce. We must enable developers to work the way they want, with speed, security, control, and programmability at their fingertips.
With the right tools and infrastructure, developers can create great solutions to meet and surpass evolving customer experience expectations, without breaking their own internal processes and governance.