Human Centered Agile

Setting Agile up for success

You may call it customer centered design, user experience design or use some other term. For the purposes of this article, we'll used the term Human Centered Design (HCD). Our focus here is to examine the key difficulty and several key success factors in implementing a user centered design process.

The look & feel conundrum

Agile is a development methodology, not a design methodology. So in a world where Agile (in one form or another) has become the standard for software development, how do we get thoughtful UX design into the equation? It's very easy, when Agile has so much of the focus, to relegate design to an afterthought, a "nice to have" or somehow secondary to the core product development process.

Creating pretty products is desirable but it's not foundational. It's entirely possible to create visually attractive software that fails miserably in terms of user engagement, usability and accessibility. The purpose of HCD is to focus the software development process in such a way that the products we deliver meet real user needs, are easy to use and make our users (customers, employees, etc.) want to come back for more. In other words, we use HCD to keep the entire development process focused on the humans we serve with our software.

How does HCD work?

The more experience one has with UX design the more one realizes that it is primarily about making effective decisions on a product's intent with a clear eye on the audience for whom it is intended. UX design, therefore, is a process. It's a process with defined steps that require the involvement of uniquely skilled practitioners.
— Gartner, CIOs Must Push Vendors to Get Serious About UX Design

In the enterprise, HCD is a sub-process of the larger software development lifecycle (SDLC). It can and should be the steering system of the SDLC. When you drive a car, you don't just use the steering wheel to point the car in the direction of your destination and say you're done with steering. You steer at the beginning; you steer at the end; you steer throughout the entire process.

So the question, then, is how do we steer? How do we implement an HCD process to guide and focus an application development engagement? While there are many possible permutations, what I'll share in this article are the key behaviors that make the HCD process real. They're the imperatives.

The high-level view

Before we begin a detailed discussion, it will be useful to consider the process in broad strokes.

High-level flow for a human-centered design process

What are the imperatives?

Although this diagram is a simplified two-dimensional view, it illustrates the key considerations for integrating a human centered approach with Agile development patterns. We start with some preliminary user research and design activities to set the trajectory; we do detailed feature design as part of the iterative agile process; and we do usability studies (with actual users) prior to moving features into production.

In summary, then, the imperatives for keeping the enterprise software development process human-centered are as follows:

  • Engage users from the beginning — The needs and objectives of the user are as important as (and should help define) the business objectives
  • Create a design trajectory — Involve all relevant stakeholders and work together to define the high-level design direction
  • Design the details as you go — Design the details iteratively to feed the agile development process
  • Conduct usability studies as you go — Do the work to ensure the product meets user needs, not just the QA specs