Codosaurus 🦖

How can we evolve you today?

Blog: ACRUMEN Appropriateness

Appropriateness is always the most important aspect about a piece of software.  If we don’t have this, then nothing else matters.

So what does it mean, in ACRUMEN terms, for a piece of software to be “Appropriate”?

The short explanation is that it’s doing what the stakeholders need, or to put it even more briefly, it’s doing the right job.  (Contrast this with Correctness, which is about doing the job right.)

But what do I mean by stakeholders?  Most people might think something like:

But that’s not all.  I like the Project Management Institute’s definition, which is basically everybody involved in or otherwise affected by the project, including by its results, which in this case would be the software.  (Let’s leave aside for now their definition of “project”.)

To use the example of a Facebook game, that would include, in addition to the above:

So how do we figure out what’s “the right job”?

But all is not lost!  In addition to emails they won’t answer, or dry documents that they’ll skim and misunderstand, we can show them demos of what we have done, and prototypes of what we intend to do next.  Even easier than prototypes, though, we can propose concise tests.  In particular, I recommend the Given-When-Then format:

This makes a great link between the business and technology sides, because the business people can understand it (assuming we write it reasonably clearly, in their language), and we can turn it into a runnable test.  For instance, when adding a search feature to a widget collection management system:

We can show them these demos, prototypes, and tests, as often as practical, as a sort of continuous course-correction so we don’t go too far down the wrong rabbit-hole.