Late last year I wrote a post about the four agile software development values. Since then I've been writing separate posts for each of the values. Here's a link to the first post ("Individuals and interactions over processes and tools") and a link to the second post ("Working software over comprehensive documentation"). This week I'm going to write about the third value of "Customer collaboration over contract negotiation."

Not only am I going to continue from my previous posts about the agile values but also from my last week's question of what makes some software agencies more "successful" than others.

When I was looking for an answer to this question, I came across Frances X. Frei's Harvard Business Review article "The Four Things a Service Business Must Get Right" from 2008.

Frei's fourth thing that a service business must get right is the customer management system which underlines the importance of your customer's role for your service business:

In a service environment, employees aren’t the only people affecting the cost and quality of service delivered. The customers themselves can be involved in operational processes, sometimes to a very large extent, and their input influences their experiences (and often other customers’ too). For example, an architectural firm’s client may explain the purpose of a new facility well or poorly, and that will affect the efficiency of the design process and the quality of the end product.

When it comes to software projects, the customer is usually highly involved in the development process. Just like with Frei's example of the architectural firm, the efficiency of the development process and end product quality is not only influenced by the development team but also by the customer.

Customers are often also the most important source of knowledge. They are the people who understand the company, industry, stakeholders, and the end users of the software system under development.

However, none of this implies or dictates that the customer has any experience in software development. In fact, this might be their first software project. Unlike you, the customer hasn't yet experienced real-life scope creep or the perils of waterfall model software development.

This is why you not only need to collaborate with your customer but also manage them. There is a role you want them to take. There are certain software development concepts and philosophies that you want the customer to understand. There are behaviours you want them to partake in.

Some of the roles and behaviours won't come naturally to the customer. This is why there are moments when you need to manage the customer. You need to nudge them in the right direction. You can't expect them to figure everything out by themselves.

Initially the idea of customer management sounded a little strange to me. I work for the customer. The customer is the one who is paying me. The customer is my employer, not my employee.

In reality, there is no employer-employee relationship between me and my customers. The relationship resembles much more of a teacher-student relationship where we constantly switch roles. We both need to teach and we both need to learn. We need to listen and we need to show.

Here are some questions to help you start managing your customers:

  • What roles do I need the customer to take?
  • What do I need the customer to understand or learn?
  • How am I helping the customers to achieve these goals?