- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Comments don't work
Admin
Bad Requirements Engineering up front... Yes, Jane probably didn't say anything about her future plans, nor did she expect she would have them in the first place.
But.
But Dick didn't poke too much. Nor did he explicitly list exclusions in the contract or req document.
My experience is that it is usually quite easy to imagine what additional wishes people will probably come up with mid way. The less technologically savvy they are, the better.
The time invested in clarifying requirements usually pays of in the end.
Ok, you may argue that you aren't paid for that time - but you aren't paid for fighting the lawsuit in the end, either.
Admin
Amature hacker developer blaming the client for own lack of professionalism.
So many web hackers like this
Admin
I'm left with the feeling that something is missing from this story, like the fact that in reality, during the final meeting in Starbucks, Dick pulled his trusty GAU-8 out of his back pocket,[1] and used it to slaughter Jane and lay waste to the interior of the joint...
Putting a slightly more serious slant on the comment: Dick bears some responsibility for his woes. It was clear almost from the beginning that Jane was not technology-aware, and that the buzzword soup was there principally to feed the government grant-granting machinery. If that wasn't clue enough, the unforeseen and largely irrelevant requirement for videoconferencing should have been the follow-up clue. (There are so many viable solutions for this problem that Dick merely needed to find a way to link one of them from the web site. The requirement is irrelevant because it neither adds to nor subtracts from the main purpose of the site.)
Also, and perhaps most damningly, Dick made the primary mistake of committing to spuriously-added extra work "against his better judgement". Since Dick's judgement said that the work was ill-advised, then the decision to do it anyway is not only creating a rod for his own back, but actively hitting himself with it.
[1] Dick wears TARDIS trousers, so he has no problem fitting a 20-foot long seven-barrel Gatling gun in his back pocket.
Admin
If the leading two-thirds of the "requirements" are actually design constraints from someone who has no business making them, and you still agree to take the job, then you deserve everything you get. Or don't get, in the case of payment.
Admin
I'm really sick of this blame-the-victim mentality.
Could he have avoided this mess? Sure.
Does he deserve the pain? No. He was clear in everything he did and it was all above-board. He did nothing unethical or immoral.
I'm sure he learned his lesson and he'll be much more cynical in the future. But he didn't deserve any of it.
Admin
Because there are laws against it
Admin
I can believe this story. Been there and done that...
We had clear specs - can't be clearer than "don't include <product series xyz>". But apparently what the client actually meant was "make a whole section dedicated to <product series xyz>".
Also, somehow we were meant to know that he'd stopped selling one brand of product and replaced it with a different one. Didn't tell us at any stage. We were just supposed to know.
Admin
I have a hard time blaming Dick for not foreseeing that his client wanted to "be able to push layout changes directly from photoshop". That kind of crazy, you just can't predict. Moreso because of the premise of the work: get some government money, try to make a quick buck, while being completely clueless as to how the technology works? That sort of thing just never works.
If you absolutely do have to work for them, then get a concise specification, stick to it, and finish in time - which seems to be exactly what Dick did.
Admin
WYSIWYG - He saw Jane and her lack of ability to understand what she wanted...and that's what he got.
Admin
I had very similar experience a couple of year back. A guy that knew some of my sisters' friends had recently taken over a small business. He now needed to get the website updated and wanted to hire somebody to help him out. I was low on clients in that time so took the job. However, when he first received an invoice from me, he reacted the same way as Jane. Even though I had been very nice to him and worked the first day or two for free, he still thought it was too expensive (he even got a discount). He sort of changed between believing that I was doing a favour to him and thinking that he could pay me off with a cheap bottle of wine. I explained to him that this is what I do for a living, and i had actually been very nice to him. He wasn't really listening, so I had to 'fire' him. Obviously he didn't have any money, so I didn't get the rest of my money until after a couple of months (and after a few angry letters).
Admin
Yes, Dick made mistakes. But anybody who's done freelancing has made the same mistakes. I made them! I once tried to help someone build a shell interface to Google AdWords. They didn't really know what they wanted it to do, except that they wanted to script AdWords (and at the time, there was no AdWords API, which meant page scraping). After finally cobbling together something that sort of worked, they rejected the product because it depended on a page-scraping module out of CPAN and they didn't want their code dependent on some third party package.
Admin
Admin
That's why you should never ever freelance for people who have no clue what they are into, may they be friends or relatives or whatever.
Admin
I want my comment to have a yellow background, but I can't find the button. Please do it ASAP.
Admin
Admin
No, no, no. Don't you understand how web 2.0 works? Print it out, edit with a pencil, scan it in, find the "upload" button, upload the scan. Job done.
Admin
The real WTF, of course, is doing business with a woman. Surprised nobody mentioned that.
Or the fact that I'm a giant, idiot, douche who thinks that "oh, I'm just joking" is a valid cover for reinforcing the attitude that IT is a boy's club. Nobody mentioned that part either, probably because it's obvious.
Admin
I'm sure you're mandated to send it back by using a pigeon, and hoping Dick Dastardly doesn't catch it.
Captcha: Haero, as in I need one. He’s gotta be strong and he’s gotta be fast
Admin
We were having a nice time discussing stupid customers and you had to go all sexist?
Why?
Admin
I can't help but think the whole disaster is Dick's fault. He's supposed to be a professional software developer, who knows how to gather requirements, design software, develop incrementally and all that. Jane (as far as I understand the story) is not a software developer, so you can't expect her to know much about how to plan a software project or how to gather requirements, right?
Programming is only a small part of actual software development, but it seems it's the only part Dick's ever heard about. He should have told Jane that...
Admin
Admin
Admin
Nice :)
Admin
Dick, you idiot. Don't do business with people who are clearly computer-incompetent, at least without getting paid upfront. They have no idea what they need, want, or will get, and you know this.
Don't stick your Dick in stupid.
Admin
That's why when dealing with that kind of "contract", I clearly explain the budget conditions so nobody feels deceipted. I should do it for free ? My brother is a plumber and he doesn't expect doing work for friends against a bottle of wine, why should I ? In opposition, I make it clear when I do it for free that I will actually help for free but will do it on my free time.
When receiving strange emails for help, I also make it clear that there will be a consultency charge.
Admin
Been here myself. Problem is the informal initiation by doing a favor for a friend or relative some of the usual safeguards are bypassed. In a normal set up you make sure all requirements are signed off and clarified with some form design documentation. New requirements result in a formal re-costing process that again has to be signed off. In the informal favor scenario it is all so easy to agree to that little change where is turns out the requester has only told you a tiny part of their (ever changing) vision. Where as a formal business customer will likely have put a lot though in up front as to how they want their hard earned cash to be used, the informal customer is often a person with little tech knowledge who thinks that you can reproduce Amazon and Facebook for them with a few hours effort.
Admin
Sadly, in the real world, this is just not the case. People change their mind, they forget what they wanted, or they are too stubborn to tell you when they do not understand something. This was very clearly the case here (going by the mention of 'video conferencing' suddenly being included and font changes).
I do not know exactly he precise the specification was, but from what is mentioned, we do know that the client originally wanted XYZ, during the next meeting mentioned wanting ABC as well, and then Dick successfully convinced her that ABC was NOT in the original specification, whereupon she agreed that he would just do XYZ. From this we can deduce that:
A. The specification was clear enough to limit the product to specific components. B. The client either did not understand the specification which she agreed to and signed off on, or changed her mind despite agreeing to it.
Not everyone has a clear idea of what they want, and the more vague it is and the more clueless they are, the more that idea is going to change. There is only so much you can clarify with prototypes and mock-ups. You can make a complete mock-up of a webpage, get a client to sign off on it, and then when it is delivered get complaints that it's not what they wanted - true story. If you have never experienced this, than you have clearly never had to go through the whole development process yourself.
Admin
So the client starts off chirpily misusing tech terminology, but subsequently turns out to be a clueless nob who knows nothing about what they're requesting, but still feels entitled to bitch and moan about anything they feel like?
How is this different from every other web developers problems?
Admin
Was Jane recommended by Dick's first cousin (twice removed) or Dick's second cousin (once removed)?
Admin
Change management is, as you say, an essential part of the development process, but how to do it is frequently misunderstood. "Adding feature X will cost Y€ and Z weeks" is the essential starting point for discussing specification changes. And you must be able to say "Removing feature A will cost B€ and C weeks because it is already fully built. Feature D is next on the work-plan, so we can remove it from the final product by simply not building it." And you must also say, "Let's haggle over what is included and what is not."
And last but most, you must get a sign-off on what the original specification is, and what each change is, so that you have a record of it. A smart client will want this as well, so he can point out what is missing. You don't do it to "freeze" the product, but to force the client to put more effort into thinking about what he wants.
"A" isn't clear from the article, and a specification can be clear without being sufficient. If it makes no mention of videoconferencing, and the client wanted that, it remains as clear as it is on other aspects even if it is not an adequate specification for the desired product."B" is a problem, and can only be addressed with difficulty. Forcing the time/money/feature tradeoff discussion will help to a certain extent, because it makes the various things the client wants have a concrete cost.
The essential part of this is that you must think about what the workflow looks like, and you must have enough behind the prototype that the client can use it himself. It's best to have some unwarranted fragility in the demo so that it is clear that it is not ready for the small-time, much less the big-time. That's part of the other difficult element of any development process, called "managing expectations". You have to think about what the requested workflow means, and you need to be able to explain the pitfalls of that to the client.I once had to write a term paper for a Software Engineering class at university. The goal of the paper was to discuss X and Y and Z[*] about what I learned during the semester, both from the class itself and also from the assignments. I actually felt that these questions were invalid, or at best inadequate, so I refused to answer them. Instead, I explained why I was doing so, proposed an alternative question, explained why it was a more useful question to answer, and proceeded to answer it. I began the meat of the essay with a four word sentence, "Software Engineering is hard."
Despite refusing to answer the assigned questions, I got an A.
[*] No, I don't remember what X, Y, and Z were. It was 25 years ago.
Admin
TRWTF is Dick's wheel building skills. There are plenty of CMS platforms, teleconferencing SAAS and web API's that 90% of his work should have been plumbing. If I contract to have a building constructed and the contractor comes to me at the conclusion to demo the saw and hammer he was able to create, but there is no building then I am going to be quite unlikely to pay him or her as well.
Admin
Dick's only REAL problem? "Nonetheless, Dick had done his job, maintained his sanity, and sent Jane a final invoice with instructions for using the administration interface he'd developed." (FTA)
He might as well have said, "Here's everything you need to run, crazy client. I sure hope you pay me for it."
You gotta, at least, get some payment before delivering EVERYTHING.
Captcha: With too many clients like Jane, Dick will need more "luctus" to stay afloat.
Admin
You know that commercial with the guy in the suit with a bunch of question marks. No.... not the riddler, has he ever been in a product commercial. Okay maybe a toy. ... I mean the guy that tries to sell the book that supposedly has a list of not-so-well-known government grants.
Maybe it's a cross reference from a get rich quick book? You know, the one that recommends you stand on the side of the road and beg for money.
I always wondered what was in those books. Now I know where all these stupid schemes are coming from...
BTW, those guys publish real working ideas, just long after their successful and no longer work.
Admin
I side with the developer on this one. I know there is always scope creep but some customers just think they can add a lot more features without paying a penny more. They think they can hold the payment hostage in the end if they don't get their way. That's what contracts are for though and that's the developer's job.
Admin
"Change management" is something else than what you are describing.
Basically the issue for self-employed freelance professionals, is that they must learn how to wear many hats. At a normal company, there would be the sales guy to find the clients, the account manager to manage their expectations, a beancounter to send the invoices, maybe a helpdesk for after sales assistance, etc. Doing this all yourself, as well as actually doing the work, means you can sometimes find yourself at cross purposes with yourself :)
Admin
The moral of this story is: Don't work for anyone who watches Fox News.
Admin
Admin
However, the punchline is an amazing closing argument as to who is at fault. Anyone who thinks Fox News updates their website by clicking save on photoshop is a bigger dipshit that anyone could have ever anticipated.
Admin
This is why you base contracts on a "Statement of Work." You do nothing more unless you get another contract. Very helpful method of preventing scope creep.
Admin
"Rubies and Pearls" - classic. That was your big "awooga" noise, complete with rotating amber strobelight right there mate !
Admin
After seeing a hilariously terrible one-paragraph "business plan" like that, there are only two valid responses:
Admin
Been there when an uncle-in-law wanted help building a website. Fortunately I knew not to get involved, but I still kept getting asked to donate hours and hours of time consulting. There was even a surprise-addition video conferencing requirement.
Admin
Always get everything recorded. Keep recordings online. Make the user describe what she wants. This is the smart thing to do. Tell her, you suffer from memory lapses, so you'll need to videotape the entire proceedings. As and when you want something, you'll playback the session.
IF THE USER AGREES, GET IN BUSINESS WITH THE USER ELSE IT IS A NO GO.
Admin
Scan it in? You mean hold it up to the screen and press the enter key?
Admin
I would be willing to put down money that even if Dick had these things (and it's not clear that he didn't), Jane wouldn't have cared.
Admin
I'm interested: how is it possible to edit another person's posting?
I second QJo's comment: the real WTF is trying to do business with stupid split-arses.
Admin
Huh, my experience is pretty much the opposite: the less technologically savvy they are, the more terrifying they are as a customer.
The people who know the technology may come up with difficult, complex requirements, but they know what they mean and how much work they involve.
It's the non-techie people who will casually toss in at the last minute that they just took for granted that they could add a new screen by drawing it with crayon on the back of a napkin, holding it up to the monitor, and pressing "insert".
Admin
Yeah, that's the catch.
I remember one project I worked on that had very detailed requirements, spelling out exactly what screens, what data, menus, etc etc in excruciating detail. Then a week after deployment the client came by and described a report he wanted. I started in on, "okay, let's get the details of that and we'll put it in the requirements for the next release". But no, he wanted it NOW. I replied that we had never coded for such a report because it wasn't mentioned in the requirements. And he said that he had not seen a need to mention it in the requirements because -- this is pretty close to an exact quote -- "I just took it for granted that I could get any report I wanted at any time".
I cried.
Admin
I agree, but it's not that simple.
Me: "I'm sorry, but generating a picture of what the sofa will look like in the client's home, with the ability to drag it to different places and re-arrange existing furniture automatically to make room in a way that optimizes the feng-shui, was never part of the requirements."
Client: "Yes it is! It's right here! In the contract it clearly says, 'Display a picture of the sofa.'"
Okay, I made that one up, but it's only different in quantity and not quality from plenty of conversations that I've actually had.