Shine up that crystal ball...
Not all of the messages are funny – but some are really good. I liked the response of “Fortunately, since I brought my Magic Telepathic Helmet today, I don't need any more of a description than this.” Reminded me immediately of when I say “my crystal ball is in the shop this week”.
Updated after posting:
I was just doing some asktom questions when this one came along. Classic:
not loging on oracle server 2000. and "database not started"
so what are doing now
It just seemed so appropriate, I had to add it here.
End of update...
When I read “isn't that what's supposed to be happening?” – I was reminded of the pilot gripe sheet and the “that’s what they’re there for” answer.
I can feel the posters frustration when they type “But what do they need, George? For the love of all that is good and pure in this world, what do they need?”. I know his pain – that would be when I ask simply “why”. Details – details, details. It is all about details (and preciseness and clarity).
But the one that made me actually laugh out loud – that was the response of “Well, George, it's like this: when a man and a woman get together...”. Absolutely classic, I’ll have to use that one someday.
When asking a question, when providing information, when forced to communicate – be precise, clear, brief, and remove anything that just isn’t relevant. I say it all of the time – “I need more information – maybe an example, something that is 100% complete, yet concise, but entirely complete from start to finish. Did I mention, it should be brief – but very importantly, it should be complete”.
I still think written communication and the ability to explain in detail to others the problem you have and are trying to solve is perhaps the most key trait one can have. Forget how much you know about computers, databases, software – all of that stuff. If you cannot communicate your needs, your requirements to others – it doesn’t matter how smart you are, you cannot be used in a team environment with other human beings.
When explaining a problem – take the approach of pretending you are explaining this to your mom (I am making the assumption your mom doesn’t work in information technology of course!). Don’t use internal acronyms well known only to you, remember that the person you are talking to (communicating with) hasn’t been staring at your problem for the last week like you have. Don’t tell them all of the failed attempts you made – tell them what you need to do. The thing that drives me crazy is when someone posts pages of code that doesn’t work – and then says “this doesn’t work, what is wrong with it”. Literally – that is the entire scope of the information provided – a failed attempt and the note that “it doesn’t work”. No ideas about what it is supposed to do in the first place!!
Just as importantly, remove things that are simply not relevant to the problem. I call them red herrings in the problem statement. It might go like this:
We are using unix. Well, not really unix but linux. We telnet into the server (actually, it is “ssh” but it looks just like telnet). We have an external table (code to set up external table here). It has data that looks like this (echo statements to create data here). We then have these five other tables (creates and data go here). We need to write a query that does “this” against the external table and loads this table over here.
- The fact they are on unix/linux – not relevant.
- That they use telnet/ssh – not relevant.
- That they use an external table – not relevant (only confuses the issue – you start assuming “they are having a problem with external tables”, but they are not)
- That they have these five other tables – not relevant, they don’t use them.
All we really need is
- I have these inputs
- I need these outputs
- This is the logic in detail (the specifications) that explains to you how to process the inputs and turn them into outputs.
Funny thing is – if we get that third bullet, most of the time, you are ready to write the code! I think many questions come from not fully understanding the problem that is trying to be solved in the first place…