Wednesday, September 12, 2007

Why Separate Business Rules from Requirements

...and if you do, what requirements are left?

Tuesday, September 11, 2007

Prioritization and Value Maximization [Tyner Blain]

Very powerful introduction to the value-driven approach.

Writing Good Requirements: The Big Ten Rules [Tyner Blain]

There are actually twelve mentioned. We discuss the relative priorities in the comments.

There's far too much good reading on the Tyner Blain blog!

Are Business Rules Requirements [Tyner Blain]

Yes!

Saturday, August 18, 2007

David Crystal's blog

My Seilevel requirements discussion posts

I feel the need, one day, to integrate the ideas in my posts to the Seilevel forum. Until that day arrives, my contributions can be found by following the link.

Weinberg on Writing: Writing Exercise 1. The Missing Letter

Weinberg on Writing: Writing Exercise 1. The Missing Letter

Weinberg on Writing: Breaking the Reader Trance

Weinberg on Writing: Breaking the Reader Trance

This helped crystallise some thinking on the question of the true or false dichotomy between the role of stakeholder and user. See: Breaking the Stakeholder Trance

Friday, August 17, 2007

Weinberg on Writing: Writers' delusions

Weinberg on Writing: Writers' delusions
If Jerry says readi it, you'd better read it!

Thursday, July 05, 2007

Requirement Questions

My original post to the Portland Pattern Repository appears to have emerged unscathed (as at the date of this post). Comments here or there much appreciated, of course.

What are the benefits of meeting the requirement (or the consequences of not meeting it)? [Value]

Is the purpose of a required feature documented? [Purpose]

Who is accountable for the organisation's achievement of the stated purpose? [Owner]

How might the extent to which the requirement is met be ascertained? [Measure]

Who is interested in the extent to which the requirement is met? [Stakeholder]

What is the business context within which the requirement should be met? [Context]

Within what timescales should the requirement be met? [Timing]

What risks are associated with the requirement? [Risk]

Does the requirement have a single purpose? [Atomicity]

What is the immediate 'parent' requirement? [Parent]

Does meeting all the 'child' requirements equate to meeting the requirement itself? [Complete]

With what other requirements does the requirement conflict? [Conflict]

What requirements (other than its parent) does the requirement support? [Support]

What are the underlying assumptions? [Assume]

Why has the requirement been documented? [Motive]

Stakeholder Value Trade-offs

I've been thinking quite a bit recently about "knowing when to stop" or, at least, pause. My Seilevel post (title link) addresses this in a particular context from a theoretical perspective, and also suggests that practice differs from theory.

My current thinking is that this sort of low-level decision is a stakeholder value trade-off even though it is rarely treated that way in practice. Stakeholder value trade-offs are a special case of value decision or what I call value decision deltas.

In this context, a "delta" is a change rather than a dendritic multifurcation. The connotations of the latter, and the implication from calculus in the former of infinitesimal changes have influenced my settling on this term.

I have written an elucidation of the following, but for the time being, let it stand on its own many feet:

The level of “decidedness” is optimal (for the time being) when all positive and negative decision deltas have non-positive risk-adjusted net stakeholder value.

Wednesday, July 04, 2007

Tom Gilb's Concept Glossary

Tom Gilb has updated his Concept Glossary, including my comments on his definition of the requirement concept (below), which he is kind enough to describe as "a particularly well thought out notion of requirement".

(The numbers in parentheses, preceded by an asterisk, refer to other concepts in Tom's glossary. The numbers in brackets refer to footnotes in the original; these follow the main text.)

1. The people whose ends a system (*145) serves are one class of stakeholders. They value the actual results, or receive benefit (*009)[1].
2. The people who consider the future of a system and/or agree to the suggestions of others are a different class of stakeholders. They perceive potential value (*269).
3. If these people take ideas forward (deciding to act or persuading others to decide to act, or considering the desirability of action), they can be described as “Founders”[2] of the resultant system or course of action.
4. The arena within which action may occur is variously described as the “problem domain”, “scope” (*419) or “context”[3].
5. A perception of value within a particular context for action is a potential requirement.
6. A potential requirement coupled with authority (*005) or discretion[4] to pursue its satisfaction is a requirement. The person[5] who confers the authority is the requirement’s “Sponsor”.
7. So, a requirement is a perception of value in a particular context for action coupled with the authority to pursue[6] its satisfaction: the authorized and contextualized pursuit of value.
8. The substance of a requirement (what is required) is the value. That of which it is a requirement is a future system[7]. The context within which it is a requirement includes the project or endeavor (“development environment”) and the anticipated operating environment. Explicit or implicit authority to pursue the requirement (within a particular context[8]) is a status of the requirement (in that context).

There are footnotes in the original:

[1] Because these stakeholders can only receive benefit from an operational system, they can be referred to as “operational stakeholders”.
[2] Or “Originators”
[3] This is not the same as Context (*483). None of these terms is entirely satisfactory, but “context” comes closest to the idea of a simple “frame of reference” or environment within which action may take place (including the operation of a system).
[4] “Discretion” might best be described here as “implicit authority”. Implicit or explicit authority could be regarded as the result of “stakeholder prioritization”.
[5] Ideally, a requirement should have a single Sponsor. A group may be collectively responsible, but even then, it is preferable for one among them to take on the role of Sponsor.
[6] “…for the time being” could be added, authority always being conditional. If the conditions are not met, the authority is no longer valid and, as an immediate and automatic consequence, the “requirement” reverts to being a “potential requirement”.
[7] Strictly, either a sub-system or an attribute (*003) of the system (*145).
[8] We can distinguish here between transitional context (e.g. a project) and operational context (where “environment” is a common alternative term). If the transitional context is undefined, we can refer to the requirement as an “orphan requirement”. If the operational context is undefined, we can only say that the Requirement Specification (*508) is defective; the status of the requirement itself is undecidable (but decidedly not authorized).

Friday, June 29, 2007

Roger Cauvin's Requirement Definition

I have never subscribed to the IEEE "definition" of requirement, and I'm not convinced that Roger's adaptation makes it acceptable. It certainly makes it more acceptable, so "well done, Roger!"

Where do we go from here?

First, can we equate "least stringent condition" to Tom Gilb's "Fail" concept (*098), "the leading edge of a Failure Range"?

If so, what do we do with the other interesting points on Gilb's continuum, reproduced (slightly modified) below?

•••••••[!!!!!!====>____>••••••[!!!!!!====>____>

•• is a catastrophe range.
[ is a lower survival level.
!!!!! is a Failure Range.
==== is an acceptable range.
> is a Goal level.
_____ is a success range.


My view would be that the requirement, if not more fully characterized in some way similar to Gilb's, is for "success", as opposed to the avoidance of "failure" or "catastrophe". It is the latter that Roger's "least stringent condition" suggests (to me).

Of course, I find even Gilb's exposition simplistic, but we have to run before we can walk! For practical purposes, it is useful to reduce the requirement concept to "measurable, valued outcomes". Observing or hypothesizing how much, and how differently, changes to outcomes are valued by diverse stakeholders is a powerful technique for establishing what might constitute success, but it is still one-dimensional. Leaving the whole multi-dimensional trade-off between benefits (including but not limited to avoided costs) to one side, what emerges from such an exploration is (hopefully) agreement about the level of outcomes to pursue. I would call this an objective rather than a requirement but, to me, objectives are a type of requirement.

What, though, of "raw" function? Here it is crucial to be very precise about the context. It is, in practice, always possible to move backwards and forwards along a cause-and-effect chain, dragging the "system boundary" one way or another (hypothetically, at least). Determining the "border zone" is, in my view, a requirements activity. This is what constructing use-cases is all about. The problem, it seems to me, is that use-cases implicitly assume an immovable boundary. The reality is that some boundaries are clearer than others; some more the result of design, some more a matter of policy or practical constraints. Defining a range of required function is key.

In this view, we recognise a distinction between "core" function, the absence of which is unacceptable, and "contingent" function, which must be present in some form in the universe, but not necessarily in the system being specified. Performance characteristics are unavoidable for all function. The valued performance characteristics are what drive the distinction between "core" and "contingent", I think, and, more relevantly, inform the ultimate decision about what "contingent" function is a necessary, desirable, unnecessary or undesirable inclusion in the final system.

Wednesday, May 02, 2007

Effective Requirement Process

I waited a month before replying to a question on one of Tom Gilb's forums. This is only partly because I wanted to avoid doing the student's assignment. The main reason was so that I could canvass opinions on LinkedIn's new(ish) Answers facility. Interesting results from LinkedIn were:

  1. A general distrust of KPIs (Key Performance Indicators)
  2. The absence of any reference to possible KPIs, however flawed or dangerous
  3. A belief in the impossibility of measuring the effectiveness of requirement processes
  4. A fairly low number of responses (7). Is that because it's a hard question or an uninteresting one, I wonder.

I may yet re-open the question with my own thoughts included as clarification. For the moment I must leave a little time for others to comment on my Gilb post.

Friday, April 13, 2007

TRAID: Tasks, Risks, Assumptions, Issues, Dependencies

In the end, I went for the "Less is More" approach. I kept trying to add more, but that just led to a whole heap of other things that I would also need to say.

Thursday, April 12, 2007

Just-inTime Requirement Specification

Slightly edited for formatting, my original post follows...

[quote=achen]...savings from doing requirements right? [/quote]

I think you have to talk about "savings from getting requirements right sooner".

MTalbot is right that the costs of getting things wrong can be incalculable, but only if wrong requirements are actually implemented. It is quite straightforward to talk about the (estimated) cost of fixing a requirement during design, say, versus during acceptance testing. Only rarely, if at all, is it cheaper to fix requirements later rather than sooner.

Averaged statistics are not particularly helpful, however. Some defective requirements can be fixed almost as cheaply at the end of development. And I'm not just referring to "cosmetic" defects. Take, for example, legal caveats or wordings prescribed by statute. If we know early on that these are required but not exactly what is required, we can generally proceed with development at little additional risk while the precise text is hammered out by an army of lawyers, copywriters, focus groups and officials. Often all we really need to do is plan accordingly.

So for every requirement we can repeatedly apply what I call the "so what?" test:

[QUOTE]
This requirement may be wrong, so what?

The answer is often that it probably doesn't matter very much at this stage.

So when will it begin to matter more?
[/QUOTE]

Finalizing a requirement before it begins to matter very much saves you next to nothing. Delaying development while you try to finalize such requirements, on the other hand, can cost a very great deal, both in terms of "burned" resources and delayed, or increased risk of late, implementation.

As a general rule, we do not want to use up valuable elapsed time now unless there is a fair prospect that it will save us more elapsed time in the future. Too often, this debate refers only to cost in terms of (mythical) manhours, overlooking the simplest of critical path analyses. Even if, as is usually the case, getting the requirement right now does cost several times less in terms of effort, this "saving" may be more than outweighed by the costs of an extended critical path.

<<<--post ends

This received some positive feedback. "I think this is actually a really great point. In an SRS, how have you typically handled or called our requirements that you know are incomplete/wrong at the time of writing?"

Now I guess I'll have to come up with an answer!

Wednesday, April 11, 2007

Seilevel Forum

Just-in-Time Requirement Specification

http://requirements.seilevel.com/messageboard/showthread.php?p=2216#post2216

Tom Gilb's Forum

I've been contributing to Tom Gilb's forum for longer than it has existed. Some of the posts are a little difficult to find so long after the event. There are apparently 10 of them, but I can only find these 6...

Re: Theory on why it is hard to distinguish Requirements from Design, in Project Management & Product Development

Re: Gilb 88, in Project Management & Product Development

Re: Re: Definition, in Inspection, Quality Control & Defect Prevention

Re: Definition, in Inspection, Quality Control & Defect Prevention

Re: Classifying defects as Major/minor in Inspection, Quality Control & Defect Prevention

Design Methods, in Design, Industrial Design, Solutions

I also have a Gilb wiki home page, which links into my Gilb wiki contributions.

Forum Posts

I should get round to extracting specific forum posts soon enough, but contributions so far have been principally to:

Tom Gilb's website, http://www.gilb.com

The Seilevel Requirements Discussion forum, http://requirements.seilevel.com/messageboard/forumdisplay.php?f=3

Tuesday, April 10, 2007

LinkedIn Answers

Rob Gourdie is kind enough to publish on his blog my answer to a question of his on LinkedIn. See http://robgourdie.blogspot.com/2007/03/need-for-residual-risk-in-projects.html

Another answer of mine on knowledge management was picked as best response by Peter Nguyen: http://www.linkedin.com/answers/career-education/career-development/CAR_CRD/31514-2896748

See also my answer at http://www.linkedin.com/answers/business-operations/project-management/OPS_PRJ/29527-174352

Are you LinkedIn?

My network just exceeded 1.25 million. Check me out at http://www.linkedin.com/pub/1/382/421

If you came here from LinkedIn, please leave a comment here to say so. Thanks.

And so it begins

This is my first post to this blog.

Over the next few days, I shall create copies of, or links to, existing web content I have created.

To begin with, there are my wikipedia contributions: http://en.wikipedia.org/wiki/Special:Contributions/ARAJ.