A couple of years ago I was parachuted into a government project to review its requirements. The customer was getting fed up, having waited two years for the supplier to deliver more than promises.
I went to do a gap analysis. The idea was to find out if the business requirements would be met by the code being developed. Unfortunately, the business requirements had been "misplaced".
On day one there was a lot of talk about the requirements being contained in a complete series of Case-wise models on a site in another town. I printed out one of the models it took up 12 A4 pages. I painstakingly cut the pages so they could be taped together. I then pored over the diagram late into the evening, and thought I sort of understood the runes.
In the morning we went down to the business site and passed a very amiable 20 minutes with the Case-wise manager. As the meeting was coming to an end, I got the big diagram out and unfolded it on his desk and said, "OK, before we go, I was hoping you would just walk me through this diagram so I can assure myself I understand it."
He looked at it. Silence.
I said, "Do you understand this diagram?" He said, "No". I said, "Who does?" He said, "Well, the business expert understands the process, and he sat with the Case-wise operator and they made this diagram together."
So the modeller understood the Case-wise notation but not the process, and the domain expert understood the process but not the model. Great. The Case-wise models were useless. Not a great start.
Any day now!
As my time on that project continued I learned a lot of things. Dates came and went without any release. Once a date had passed, it wasn't mentioned again. On the outside, the project team resolutely chose to look on the bright side: the code release remained only days away!
I asked to see what had been done. I asked to see anything at all. My e-mails weren't returned. When I went to find the design manager, he was in a meeting, which lasted eight weeks. I came to recognise this phenomenon as the tyranny of optimism.
The tyranny of optimism is fed by a tyranny of experts, with overpaid consultants marching around hardwood floors in polished shoes producing no visible work and blaming the lack of progress on the incomprehension of mere mortals. When the coders view themselves as a band of heroes who are the only ones standing between civilisation and the abyss, the project is surely doomed.
Processes not interrogated
I didn't know it at the time but by the time I got there it was already too late. The requirements, such as they were, recorded the existing business process without anyone ever bothering to ask why they did it that way. The existing process had grown up over time, was full of manual workarounds to accommodate flaky automation, and they were preparing to reintroduce the workarounds in the new system.
I worked day and night to rewrite the requirements together with a talented fellow from the business. We shared the results of our work. It went down like a lead balloon.
A project's senior responsible owner (SRO) needs to have the confidence to say, "You may understand this, but I don't. Do it again."
The customer must own their business requirements and they must understand the delivery process enough to know when they are being strung along. They need enough courage and authority to say, "You promised me it on Monday, now it's Wednesday. What's going on?" They need to know how to tell the difference between a reason, an excuse and a diversion it's known as a personal locus of evaluation.
The SRO needs to have seen good artifacts to know when they are being presented with poor ones. Sorry, Gordon, but it isn't possible for the supplier to perform the duties of the customer. It takes two to tango, no matter how hard one pretends. The dance requires both parties learn the steps.
Sure, this particular project was well managed all the project management artifacts were produced, filed and forgotten. When the auditors came in, they found nothing amiss. But the project didn't deliver anything. Where there is no connection between the project's management and the underlying software engineering methodology, it's not a dance, it's a scrum that has misplaced the ball.
Peter Merrick holds a PhD from UEA in software engineering
A good example of unambiguous requirements representation in the context of a lightweight project delivery framework is available here >>