APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

Tell me what you want..

© December 2007 Anthony Lawrence

Earlier today I had some email exchanges with an employee at one of my clients who wanted some file made available to managers at the company. Normally I would have expected that she would either put the file out on a shared drive or just email it to the people who need to see it, so I was a little careful of how I answered, and asked a basic question: "What is the file and where is it now?"

The answer I got was a bit odd: "It's in, but we can't access that."

That left me shaking my head a little. If you can't access it, how would you know it's there? And if I assume that /COMP is a directory, what's the actual file that is needed? I decided it was time to involve her boss, so I sent off an email to him asking him to intercede, figure out what she really wanted, and let me know if I needed to do anything more.

He called soon after and explained what was really going on. Apparently the file (actually, files) is a transaction log generated by their accounting application. It ends up in /COMP under the app's main directory, and true enough, nobody has access to that directory and nobody SHOULD have access to it. If these particular files are to be made available in a share, they need to be moved somewhere else.

"But", he went on, "we don't even know if we want this data: we've never seen one yet, so we don't know if it has what we want or is in a format we can use. Can you print one for me?"

Well, of course. I picked out a reasonably sized example and sent it to a printer near his desk. He looked it over for a few minutes and seemed unsure of whether or not this really was useful. He then asked "Could this get put into a spreadsheet?"

Well, gosh, of course it can. But instead of just saying that, what I actually said went something like this:

"Yes, I can put that in a spreadsheet and put it in a share that is accessible by managers only. But really that's not what you should be asking me. What you really should be doing is stating your ideal scenario and then let me tell you how close I can come to meeting it."

"For example, let's say you wanted that log printed out on the laser printer, stuffed in an 8.5 x 11 envelope, and put on a boat to Australia. I can't help you with much beyond the automatic printing, but my point is that usually you don't know WHAT I can actually do for you, so you should ask for what you need rather than assuming a solution based on what you know about available technology. To be more realistic, it might be better to merge these files and collapse detail. It might be better to have them out in a web folder where you could drill down to detail. It might be best to send e-mail alerts when we see certain things in the logs.. only you know what your ideal handling would be. You need to tell me what you want."

"It might help to imagine that you have the ideal assistant who will watch these files as they are produced and then, following your instructions, do whatever you need done. That's really how you should think when it comes to computers: not 'Can it put it in a spreadsheet' (something that should almost always be easily done) but rather 'This is what I'd ideally like to see happen' ".

What I'm driving at is assuming the solution rather than stating the goal. "Can you take me on your bicycle to Boston?" is a far more limiting question than "Can you get me to Boston?". The first limits me in two ways: one, I need to be directly involved ("can you take me") and secondly I need to specifically use a bicycle. The second question leaves me free to provide other possible ways to get you to where you want to be.

This may seem like a small distinction, but it really isn't. If you just ask me to convert a file to a spreadsheet and publish it to a share, I may reasonably assume that you know what you want. If I know nothing about the file or what you are going to use it for, I'm certainly in no position to suggest that it might be useful to pre-process the data or put it in a database instead.. I'll probably just do what you asked and not question it at all. But if you tell me your ultimate goal ("Managers need to know if certain items are being ordered and .."), I might be able to give you something far more useful, and the difference might be something like riding to Boston on the fender of a bike versus traveling in a stretch limo.. it's worth phrasing your inquiry carefully, isn't it?

See Getting The Right Project Requirements also..

Got something to add? Send me email.

(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> Tell me what you want..(Programming)


Inexpensive and informative Apple related e-books:

Take Control of OS X Server

Take Control of Upgrading to El Capitan

Photos for Mac: A Take Control Crash Course

Sierra: A Take Control Crash Course

Take Control of Parallels Desktop 12

More Articles by © Anthony Lawrence

Tue Dec 18 21:39:45 2007: 3340   bruceg2004

So true -- I am constantly stopping people in the middle of a long, drawn out explanation and just asking "What do you want it to do?" or "Just tell me how you want it to work".

Wed Dec 19 13:33:57 2007: 3341   anonymous

I had just this conversation with some of my peers. We are attempting to automate the testing of an application which monitors enterprise environments. The developers asked us what we want to do, i.e. a use case. My peers proceeded to ask for a command line option to an existing tool which would output a specific list of information in an XML file.

I had to point out to them that this is not telling the developers WHAT we want. This is telling them HOW we want it. They are the developers; they know how the data is stored and retrieved. We should say that we want all the metrics for the following tables and leave the rest to them. We all program shell script, Java, TCL, Perl, SOAP, etc. so they can give it to us any way they want and we can write glue to put it in the format we want.

The developers continue to give them EXACTLY what they ask for and they continue to tell development it does not meet their needs. Development continues to ask what they need. Sigh.


Printer Friendly Version

Have you tried Searching this site?

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

Printer Friendly Version

Technology is both a tool for helping humans and for destroying them. This is the paradox of our times which we're compelled to face (Frank Herbert).

Linux posts

Troubleshooting posts

This post tagged:



Unix/Linux Consultants

Skills Tests

Unix/Linux Book Reviews

My Unix/Linux Troubleshooting Book

This site runs on Linode