Thursday, 21 April 2011

Change request - or a can of worms?

Every so often you get a change request which is not really a change request. It's a can of festering worms. Unless you like worms (I'm sure there are decent recipes somewhere), it's important to know how to turn the CR into something more digestible.

Once I received the following request:

"Please install an SNMP agent so we can monitor the performance our web application."

This request was received from a developer for a production application. There wasn't much more details to the request. They had discussed it with the development team and decided that this is what they needed to satisfy their requirements.

However this looks a bit dodgy to me. SNMP is useful for monitoring but by default it doesn't have much that is appropriate for monitoring web-app performance. What kind of information did they want? How are they going to collect the data? I've learnt that such unknowns often mean more work for me to turn the CR into something that can actually be implemented. So I look at it this way. I'm the engineer. The developer is the client with the problem. I don't expect the client to know how to solve their own problems because that's my job. I've got three basic things to find out to solve this issue properly.

1. What is the client trying to do?
2. Why are they trying to do it? (Often the most important thing to understand)
3. Is this the best way to do it?

In this case the answers were as follows

1. The client needed to know when web server was responding slowly.
2. Diagnose what made the app slow
3. Well, no... What they wanted to do be achieved using the existing monitoring system (Nagios) and a few additional checks.

If I didn't asked the questions, I would have installed the SNMP agent, worked with the developer to write scripts to extract the right information, tested it, then found out that the required information could have been obtained with tools already in place. Wasting a lot of time that I could have spent playing Sudoku online.

If you want spend more time fixing real problems (or max out your online gaming), don't be afraid to ask a few questions when you get a CR that doesn't seem right. It's better for both parties if you start solving the right problem from the beginning.

No comments:

Post a Comment