Feature charging at full speed ahead



  • Over the years, I've learned to pad estimates of time and cost to account for feature creep. There's a lot of feature creep that ends up occurring on projects I code that is, well. Reasonable and understandable. Such as, "Oh... We just this morning found out that our partner isn't willing to send comma separated value data any more since we're writing new software, now they're insisting we accept XML." Or, "There's a new regulation that requires we actually do this one step differently." And of course the, "Oh, we're sorry, but I was drunk when I gave you the original instructions..." which I've heard a rather alarming number of times.

    At the contract I just bailed on, there was no feature creep. It was feature charging pack of rabid hungry... badgers. Yeah, that works.

    We start with a relatively simple product. It's something the company actually already has, they just want a better one. They promise the customers a better one. They tell them it'll take ... The amount of time I told them it would take. Which is actually about twice as long as I need. I've worked with this guy before, I know how his mind... doesn't work.

    I'm maybe 40% done with the entire project. He waltzes in and tells me he's just been talking to another company about a business opportunity. Cross-licensing. I'm now given a pile of things to change, including an access control system that had about as much in common with the original as the can of Mountain Dew I'm drinking right now has in common with the Incredible Hulk. Of course, since they're both green, this is decreed to be a minor change, by the guy who knows so little about computers that half the friends I tell about him think I'm making it up.

    Rip out almost every stored procedure on the database. Then realize I actually just have to rip out most of the database. Redesign database. Start writing the code that talks to it.

    I'm about 80% done with getting back to 40% done by the new requirements when I'm told that the company has just been in talks with another, bigger company. They want different stuff. It's mutually incompatible with what the first company wanted. I explain this. I'm given a few interesting ideas about what anatomically impossible things the first company, which we've apparently already promised product to (with the -original- due date quoted to them) can do, because this new company is bigger and will make more money.

    I eventually actually make it to about 80% done on the latest, newest, changed to hell and back needs, and then the company discovers it has a problem. Actual clients. Who are now wondering why they didn't get what they paid for even though we're now almost a year after when they paid. Oh, and a bigger problem. Potential partner companies #2 and #5... one called the other, wanting to resell what we were doing. They discover they've both been promised completely different things, and that they've both been told, on a weekly basis, a new date which is never reached because... Well? I think company #5's requirements were completely ignored starting about six months ago.

    I'll start looking for another job in about two weeks. I've been approached by plaintiff lawyers. I have a total of 37 depositions scheduled this month... Cute irony, I do deposition #37 on my 37th birthday.



  •  Good god, man.  Tell me your joking.  You at least got paid, right?



  • To reduce stress, you need a lower care-factor.  If you are being paid, then you don't need to care about whether your output is any good.  If you actually cared about well-written software that supports the end-users' tasks, then you would be upset when the client has an illogical brainwave and buys something else for 100 times the price with 5% of the features that are actually required and zero documentation.

    If you're lucky, the client will realise the mistake 2 years later and come back to you, whereupon you can sell the original software again, for "only" half the cost of the competitor software.  This cycle can be repeated every 2 years, in my experience.



  • @SuperAnalyst said:

     Good god, man.  Tell me your joking.  You at least got paid, right?

    Nope. Which is why I'm happily cooperating in actions against them. I did get my up-front amount out of this, and a few small payments in the interim, but it's less than half of what my contract said I get, and so I never turned over code, and I don't have to now, ever-- the contract put a 48 hour limit on them for making up shortfalls.



  • @Qwerty said:

    To reduce stress, you need a lower care-factor.  If you are being paid, then you don't need to care about whether your output is any good.  If you actually cared about well-written software that supports the end-users' tasks, then you would be upset when the client has an illogical brainwave and buys something else for 100 times the price with 5% of the features that are actually required and zero documentation.

    If you're lucky, the client will realise the mistake 2 years later and come back to you, whereupon you can sell the original software again, for "only" half the cost of the competitor software.  This cycle can be repeated every 2 years, in my experience.

    That wasn't gonna happen here, they only took three months to completely kill their entire company. :)


  • :belt_onion:

    I'm not sure if I understood your situation exactly but when starting a new project I always make sure to have a detailed statement of work (SOW). This is part of the contract. Every time a client requests a change from this document, I always tell him that it's possible but it will cost them this many mandays and will the move the deadline by this number of days. Sometimes the changes aren't that important anymore and sometimes the contract and SOW get adjusted.

    "What do you mean, you didn't get what you requested? Which point of the SOW is missing?" :-)

    But if you have a client that has trouble making up his mind, it could be easier to use an agile development approach.



  •  TRWTF is that the contract does not have a statements and scope of work... and you are still working on it.



  • @Helix said:

     TRWTF is that the contract does not have a statements and scope of work... and you are still working on it.

    That's the thing, I stopped working on it. :) I kept on for a while because I was promised additional pay and so on. But once I actually ended up with evidence that some of these promises were bald-faced lies...

    Usually, when I'm a bit flexible on the specs stated up front when things change, I end up getting more work and more pay out of it. My experience is that the majority of clients respond by trying to keep me around just because they decide it's in their best interests-- most company clients are, well, greedy little bean counters, but I can often make that work in my favor. This guy? A reasonable dose of greed plus a huge dose of stupidity. Oh well, not my problem now!


Log in to reply