2014-08-17

What if?

Tom Breur
17 August 2014

The number #1 recurring conclusion in project post mortems, after about a half century of developing software, is still “we could have done a better job of gathering requirements”… My esteemed colleague Holly Bielawa has written about requirements craftsmanship, in an attempt to clarify that even (or also) Agile teams suffer from this problem.

Of course the direct involvement of a Customer (or Product Owner) mitigates some of this risk. And frequent feedback is supposed to keep all development “on track”, i.e. representing the highest possible value to the client. Holly makes a strong case, urging Agile teams to take responsibility. To ensure that we continue to build “valuable software”, just like the first principle of the Agile manifesto dictates.

Where do we go wrong? Usually, some imperfect mutual understanding. In Behavior Driven Development (BDD), and Specification by Example (as advocated by Gojko Adzic), we drive towards valuable output by making explicit what success should look like. Engage in dialogue to ensure clarity on what it is you should and should not deliver. How would you know it, if you saw it? By surrounding and clarifying all edge cases, the boundaries of the solution become clearer.

By asking “what if” repeatedly, we try to get examples for success, the litmus tests for value. And make those as concrete as we can. How does your business partner capture value? What do alternative (less successful) scenarios look like? It’s a way to get close, to get a peek inside your customers’ skull, so to speak. Making examples specific is –in my experience– the most powerful way to ensure proper understanding, the royal road to quality requirements.


No comments:

Post a Comment