Archive for August, 2010

You want me to tell you what your requirements are?

August 30, 2010 Leave a comment

I am an Oracle Programmer. I have been for quite a while. I specialise in Oracle PL/SQL and SQL and I also do a bit of forms. In the past I have dabbled in other languages as the need arises, but I am primarily an Oracle Database guy.

So I was a little bit surprised today when I was given the task of reverse engineering a MS SQL server T-SQL script that someone had written before I joined and who was no longer here to ask questions of. Not only that, the e-mail from the business analyst requesting this went something like this:

So I can advise the business on comprehensive UAT testing can you please tell me what data bases the [script name here] will impact and what front end software can be used to validate the expected changes have taken place.

I had to read this e-mail a few times before I fully understood the implications of what he was asking.

Let me break it down:

In a normal company where the IT department is supporting the business, a waterfall-style Software Development Lifecycle would go like this:

1) The Business users would identify the need for change in the system that they use

2) The Business analyst would specify this and get sign-off from the business users.

3) The IT department would complete their own version of this with a technical design, specification and sign-off.

4) The Developers would then develop the requested solution perform Unit testing and integration testing

5) The testing team would perform testing

6) The users would then verify the system does what they asked for it to do by comparing the delivered solution against the requirements that they specified in the beginning.

The e-mail that I received from the business analyst basically said the complete opposite of what should happen.

They want me to reverse engineer a script, written by someone else who is no longer here, in a language that I’m not familiar with, for an application that I’ve never used in order to tell the users how they’re supposed to test to see if it does what I say it does…

This comes to mind – The systems architect has it pinned to his cubicle wall:


… surely if they can’t tell me what they want it to do, then I have to question whether they actually need it or not…

At this point of course, I seriously considered just telling that it doesn’t do anything that they can see, and then just NOT release it into production….

I have a frustration brick. it’s a piece of foam shaped and coloured to look realistically like a brick. It’s good for bashing one’s head against it and for throwing at other people’s heads. I bought it as a gag for home use, but tomorrow I shall take it to work.