Jobs To Be Done

by Nick de Voil 5. January 2017 18:12

I've been reading Alan Klement's book "When Coffee and Kale Compete" about Jobs To Be Done (JTBD).  You can download it for free at .

In my opinion, JTBD is a really helpful theory and it goes some way towards relieving some of the problems I feel are inherent both in standard UX-style and also traditional BA-style analysis of people's needs and motivations. I think it will help us to come up with a better synthesis of the two. There's a lot of wisdom in there.  For example, Klement points out what's wrong with longitudinal studies (but also clarifies when he thinks they're appropriate) and and also (one of my pet hates) the Five Whys. And this on personas was music to my ears:

Personas include data such as race, age, and gender; however, these data represent only the natural, common variation among the people who use the product. But common variation doesn't help you understand... For example, a persona may describe a customer who likes to use the product on weekends. Now, is that important to the design, or is it a distraction? Is it real, or was it fabricated to "bring the user to life"? How many customers said they use it on weekends? One? Ten? One hundred? When invalid data are co mingled with valid data, how can you tell the difference? Personas do not distinguish variation due to either common or special causes. The layman who does not understand statistics will believe any variation within a system is due to special cause.

Have a read and tell me what you think.

Objectively Correct Requirements

by Nick de Voil 23. May 2012 15:23

I've been reading a piece by Tal Bloom on the excellent UXmatters site about triangulation of requirements to ensure that "objectively true" requirements are defined. It's a nice article but I do object to some of the ideas implicit in the terminology.

Without people necessarily realising it, the chimera of "objectively true" or “correct” requirements has bedevilled development projects for decades and there's a widespread but largely unspoken belief in the validity of the concept.  I don't believe it's helpful. A requirement is not a neutral fact and the idea of objective truth is simply not applicable when speaking of requirements.

A requirement is in reality a complex speech act [1] within a complex context. I would formalise this as follows.

Part 1 (Context): Person or group of people A asks and/or pays another person or group B to design, construct and/or deliver a product or service C, which will be used for functions D1..Dn by a person or group E in context F.*

Part 2: (Speech act): A says to B, “you will have fulfilled our contract if and when the situation G, i.e. the use of C by E in F, is characterized by attributes H1..Hn when perceived by person or group I.” **

Now, if we're talking about the engineering of a physical deliverable such as a building, a bridge or an aircraft, then D1..Dn and F are stable and don't vary depending on the identity of E, and we can define H1..Hn in ways that are relatively uncontroversial and don't vary depending on the identity of I. In this context, D1..Dn support simple and universal physical human activities such as locomotion and shelter. F is bounded by well-known laws of physics, physiology, meteorology, geology, mechanics and so on.

However, if the system under consideration is a human activity system, or an information system that is to support a human activity system, then D1..Dn and F are subject to unpredictable change and H1..Hn are hard to define in a reliable and uncontroversial way. In this context, D1..Dn support activities, tasks and objectives which can often only be defined in terms whose meaning is individually or socially constructed. The same applies to F.

So Part 1 presents some difficulties of its own where "objective truth" is concerned, although the requirements engineering and business analysis fraternities have gone a long way towards developing solutions. But the real problem is Part 2. A speech act of this type isn't amenable to evaluation in terms of truth. It's a performative [2] utterance rather than a constative one - in other words, it doesn't purport to be a statement of fact. Rather, it constitutes the taking of a position by an actor. To complicate matters further, a truly holistic view would recognise that in practice there are often multiple contracts negotiated between different pairs of stakeholders.

It's curious that the way we often talk about requirements seems to owe a lot to the ancient Greek philosophers. To speak of "impurities" in requirements suggests that a requirement is a substance like iron or gold with an inherent essence, as Aristotle might have said. In view of the complex web of meanings implied by the above, this is clearly wrong. Likewise, language such as “vision”, “lift individuals beyond their own personal, limited perspective into a place of true collaboration” and “objectively true project requirements” implies a belief in a Platonic ideal which the deliverable should approximate or tend towards. I think we need to look at things a different way and recognise that no such ideal ever exists except for very "hard" systems engineering problems.

All that said, I agree with the central point of the article, which I would put this way: the most reliable way of reaching an outcome which is satisfactory to all parties is to ensure that A1..n, B1..n, E1..n, I1..n all have the opportunity to reach a shared understanding of what constitutes G and H1..n. I would add that, for a complex product, this is a cyclical process informed by experience and dialogue, like all human meaning-making (hence the value of prototyping and perpetual beta). It might be tempting to suggest that something must be objectively true if a large number of people agree on it, but that consensus will often only be a fleeting one.


*Note on Part 1: This definition can be broken down further as follows:

 Part 1.1 (Contracting context) ): Person or group of people A asks and/or pays another person or group B to design, construct and/or deliver a product or service C1

Part 1.2 (Usage context): Product or service C2 is used for functions D1..Dn by a person or group E in context F.


**Note on the whole definition: This describes the situation where the supplier is contracted to provide a product to a customer. A different but increasingly common situation involves a supplier designing a product which it hopes to sell to multiple customers, as follows:

Part 1 (Context): Person or group B decides to design and construct a product or service C, which will be used for functions D1..Dn by a person or group E in context F, in the hope that person or group A will buy it.

Part 2: (Speech act): B say to themselves, "A would wish the situation G, i.e. the use of C by E in F, to be characterized by attributes H1..Hn when perceived by person or group I."

User-centred design adds another perspective to this definition of Part 2:

I says to B, "A would wish the situation G, i.e. the use of C by E in F, to be characterized by attributes H1..Hn when perceived by person or group I".



[1] Searle, J. (1969). Speech Acts. Cambridge, UK: Cambridge University Press.

[2] Austin, J.L.  (1962). How to Do Things with Words. Oxford: Clarendon Press.

Meeting the requirements

by Nick de Voil 4. February 2009 15:12

My house is about 160 years old. It has a certain Victorian charm, but a couple of years ago the roof started leaking. Actually, there had been small leaks for years previously, which we had fixed, but it was only then that the small leak turned into a big one in bad weather. I feared that the time might have come to bite the bullet and get the main roof replaced. The smaller, higher roof at the front of the house had been replaced perhaps 25 years ago, before we bought the house.

We called a reputable local company, and a man came to look at the leak. Naturally, I didn't tell him that we needed a new roof - instead, I showed him the leak and asked what to do about it. Surprise! He told me that we needed a new roof. I placed the order and we made a date for the work to be done.

A few weeks later, after we had cleared everything out of the loft space, the team arrived to do the job. They worked fast and efficiently, and by the end of the day we had a handsome new roof.

Then it rained.

Guess what? The leak was still there. We had spent thousands of pounds on - as we thought - solving the problem once and for all, but to no avail. The leak was still right there.

I won't go into all the painful details of the phone calls, letters etc. that followed. Suffice it to say that eventually they fixed it. Apparently the root cause of the leak was in the 25-year-old roof, not the 160-year-old one. The water was running down inside an inaccessible part of the roof space from the higher roof to the lower one, giving a misleading impression of the leak's origin.

Afterwards, I started thinking about this as a project. It has a lot in common with systems projects I've seen.

  • The customer (me) had a problem - the roof was leaking. I wanted the problem fixed - I wanted to have a situation where water was not coming into my house.
  • I turned to a supplier with expertise in this problem domain.
  • I told them the problem.
  • They proposed a solution to the problem - supply a product, i.e. build a new roof.
  • I accepted their proposal.
  • They carried out the work. Note that, as far as creating the deliverable was concerned, they did a fine job, apparently using trained staff, good materials and best practice techniques.
  • We tested the product by waiting for it to rain (and hoping that this would happen before payment was due).
  • The product comprehensively failed the test.

What conclusions can we draw?

The first thing that occurred to me was that I had failed to communicate the requirements correctly. It wasn't quite as simple as that - rather, I had failed to ensure that the agreement between customer and supplier was specified in terms of the requirement, rather than the product. Should I have accepted the proposal with a letter stating that I considered the absence of incoming water to be the key performance indicator, or critical parameter, for the project? Perhaps. Do systems project contracts get drawn up this way? Very seldom, in my experience.

What guarantee did I have that the product was the correct solution? Was this a classic case of the customer being sold an expensive product that they didn't need and didn't meet the requirements? Was the (prima facie) high intrinsic quality of the deliverable irrelevant? Well, actually I wanted a new roof because I knew that the old one had reached the end of its life and would have become a source of increasing frequent problems. So no, it wasn't irrelevant. But it is true that I got something I hadn't asked for to begin with, even though I wanted it.

Did we have a good user acceptance testing strategy? Well, it was risky, because it might not have rained before we were compelled to pay for the work. Note also that we needed to wait for rain a second time in order to carry out a second, successful test. But it would have been impracticable to simulate the rain before putting the new "system" into production.

How did we manage to reach a satisfactory conclusion? The honest answer is that I'm not sure. Was it because of the leverage we had obtained by not paying too soon? Was it because the supplier felt an obligation to satisfy the customer? Maybe a bit of both. But in the software world, it's quite normal for suppliers to charge extra for remedying problems which aren't within the contracted product scope.

And finally, how typical that the test failure was caused by a problem at the interface between two components!

My advice? Don't buy a Victorian house.