[identity profile] boojum.livejournal.com 2002-06-19 12:55 pm (UTC)(link)
A lot of that can be fixed by discussing specs and options with the customer. "You've said you want asdfgh, which I think means you want foo to be acomplished somehow, correct? I see three ways to accomplish foo: asdfgh, qwerty, and tyuiop. The advantages and disadvantages of each are ... . I'd recommend qwerty, unless you're interested in tying in bar later, in which case tyuiop would probably make more sense."

This doesn't prevent people from changing their minds from day to day or forgetting to bring up the little issues like screwthreads, but it drastically reduces the number of occurrences. It also doesn't prevent people from insisting on stupid things. (Ihe user would probably decide at the last moment that screws were so much cooler and allowed you to use them to reream out badly-placed holes, so all of the nails in the building should be replaced with screws. After you'd built three-quarters of it. Oh, and all of the hammers in their shaped slots in the toolbox should be replaced with screwdrivers and the slots reshaped.)

I think it would be more aggravating to explain the basics of Wicca (with the added "No, I'm not drinking the blood of cruelly slaughtered babies." when necessary) over and over again to average computer users than it would be to make programs for them, but then again, I'm the sort of person who would find it annoying to talk to people for a living.

Heh

[identity profile] spydielives.livejournal.com 2002-06-19 01:27 pm (UTC)(link)
I am going to point out, for the sake of those reading, the article pointed to was not written "by" me... but sort of "for" me. I am, in fact, an SE by trade and training. I used to teach it. However, the job I have now, my boss does not allow me to do my job until after the fact.

This story came about because I was complaining to someone about a specific client. I had asked for everything there was about a specific assignment. I have stacks of papers on my desk. Sample reports, a detailed specification, the algorithms they apparently use on another machine, (I am helping them migrate to a new operating system, duplicating functionality with new database...). I was quite sure I had an excellent handle on what they wanted, an NP-complete problem, with a first-fit solution, non-optimized solution.

Sure, no problem.

Then a couple of days ago, while talking about something related, but not this actual programming assignment, the client casually mentions "Oh by the way, you will have to worry about X when you are coding your program." X was never mentioned before. I went back through my reams of paper... nada. It completely changes the nature of the problem. Its still NP-complete (sorry if this is over the heads of some of you...EEEK) but the way to approach is much worse. It will take longer, require more memory, more bookkeeping, and is just messier. Plus, I have to start all over with some of my base assumptions. My delivery date hasn't changed.

I have been doing this for years, and I still got burned. Yuck.

Re: Heh

[identity profile] spydielives.livejournal.com 2002-06-19 01:39 pm (UTC)(link)
This client is well known for "oh by the way, we didn't tell you this from the beginning... and we are not paying for changing it."

SE works - really and truly it does - when the client (THE CLIENT!!!!) lets it work.

No matter how good the analyst/designer/programmer/tester is... if you have a bad client, you have a bad client.