|Guru Meditation #
||[Apr. 30th, 2004|12:09 pm]
Who is the bigger fool, the software engineer who does not write detailed specifications for a project or the one that expects others will actually read software specs? Let us meditate upon this now and debug our understanding.|
a - I need a program.
b - Certainly. What do you want it to do?
a - oh, you know. Software stuff.
b - Yes, I do that. Do you have any specs?
a - what's that?
b - detailed explanations of what the code you need should do, when to do it, how to do it, what to do with the results, and so on.
a - I just need it to do some math. Adding and stuff.
b - Stuff?
a - Yeah. Lotsa numbers. And I need to add them and subtract them.
b - And you want me to do this without a spec?
a - I don't know anything about that stuff.
b - Aparently. How are we supposed to write up a contract, then? Written like that, there's no way either of us will know when the thing will be finished. I could be working on it until I'm 80 for no pay.
a - We don't need no contract or a spec, whatever that is. Just make me something that'll add a bunch of numbers together.
b - (tired) Fine. It'll cost you 10,000$ with 10% payable in advance. That's 1000$. Check will be fine if you write your license number on it.
a - (writes and hands over check) How long will it take?
b - (hands over calculator) I'm already done.
a - What's this?
b - That's what you asked us to provide you with - something that adds and stuff. You can pay the remaining 9,000$ tomorrow if you want.
a - But this is a calculator!
b - And it fulfills the requirements you gave me. It, as you put it, adds and stuff.
a - I ain't paying 50K for no calculator!
b - Yes you are, unless you can better explain to me what the hades you want and what you want your machine to do for you!
(slightly modified from realworld experience in my embedded systems applications. Oh, the scumbag stopped payment on the check, too.)
edit: It was the experience of a coworker - one of his stories. Sorry, I made it sound like I was the one stiffed here.
That's funny... And a very realistic picture, too.
But, Sensei, is it not true that the software engineer who writes detailed specifications at least absolves herself from blame?
Ah, but if one is writing the specification, it is likely because one is responsible for the software project. Should the project fail to work, even if due to an ignored spec, can that engineer be truly blameless?
Hee!! Guru Meditations were the Amiga's equivelant of a BSOD: except it was a big red blinky box, almost like so:
Software failure! Press left mouse button to
Guru Meditation #84010007.00C13870
Foo: Didnt come out right... Better like this:
Indeed! I was trusting someone would catch the reference.
I should have seen that! I used to love Amigas and that Guru Meditation box is familiar to me. Ah, well.
So this testing system thing I'm supposed to be building for you... there's a test plan? Did you write a guideline? Huh. you should probably send that to me.
Oh, FYI, it took three weeks, but the Minesweeper feature that i think you wanted is almost done. Let me know when you want me to demo it for you. Philippe will be so impressed! :)
You should feel honored student, so few are expose to Tai Qun Reboot so early in their training...