Recently, I had a conversation with a customer over a bit of functionality they wanted in the software they purchased. Specifically, this customer wanted to monitor their server for changes. I was told it was for “Change management”.
Me: “What kind of changes do you want to monitor for?”
Customer: “All changes. We just want to know what was changed and who changed it.”
I should note at this point of the conversation, that I’m not a complete idiot. I’ve been asked a variation of this question numerous times. There are a lot of reasons people ask this kind of question and what they want can be wildly different from one person to another. Here’s a short summary of some of the reasons people want to know.
- Security management
- Integrity checking
- Change control
- Incident Prevention
Some people want to know for security reasons. Others because they are having problems with employees making changes outside of the normal change control process. Sometimes the monitoring is required as part of industry regulations. And occasionally, a company is trying to be proactive about detecting what might be causing problems that their customers are seeing.
Whatever the reason, what people are asking for is not always the same thing as what they want. Have you ever had a manager who told you to do something, only to find out later that what should have been done wasn’t remotely related to what he really wanted? It’s irritating, to say the least.
When I do any sort of work for someone, I ask what they want, not what they need me to do. The fact is that I’m being hired to solve a problem, not to do a job. There’s a very subtle distinction, but it’s a difference nonetheless. And it is this distinction that allows developers to sell software and separates a good consultant from a mediocre one.
You see, your customer will never actually tell you what you need to know. They will try to tell you what you should do and it’s up to you to figure out what they actually need. Because most of the time, what people are asking for is not actually what they want. For example, take the question posed earlier of monitoring a system for changes.
Most people don’t realize that on your average Windows server, there are thousands of changes every minute. Don’t believe me? Download the latest version of Process Monitor, fire it up, and watch the number of writes to just your registry. You can also monitor for file system changes with this particular tool. Yet this is exactly what this customer was asking for.
Fortunately, I have a demeanor that indicates to people that I really do know what I’m doing and I’m not just an idiot off the streets. Most people will humor my questions, even though sometimes they border on the edge of insanity. This customer was no different and after a short conversation, it turned out that they simply wanted to make sure that unapproved software wasn’t being installed on the servers in question.
It’s a bit different than knowing each and every single change that happens on a machine, wouldn’t you agree?
The next time someone asks you to do something and you’re not sure if they understand what they’re asking for, make sure you ask what they’re trying to do. Worst case, you’ve wasted a few minutes of someone’s time. Best case, you saved them a lot of trouble trying to implement something that they didn’t really want.