Skip to main content
sinious
Legend
September 4, 2015
Question

while (true) {

  • September 4, 2015
  • 2 replies
  • 2928 views

Perpetual thread on what you either learned today, is haunting you or just what you need to get off your chest.

Just let it fly..

So today our client, mid HTML5 project, handed us a random PDF to assure our single page application conforms to for their CMS. It is a simple project that is replacing a simple Flash animated page, designed responsive.

We gave a nice pencil sharpened estimate for the project to hit it head on the nail. We sharpened so much because they had us remove all SEO costs like direct URLs, etc. Got approved and moved forward. Too good to be true, just replicate their supplied design exactly, mostly solid colors. Woohoo!

A month later (it's a 40 page app) we showed results and then received this strange requirements PDF. Our SPA done with AngularJS and jQuery, now had requirements like:

- Direct URL for each of the 40 pages (this was formerly removed as a requirement as mentioned)

- Must run within a layer over the original site, over a shaded layer to modally pop it forward

- Must conform to a specific file structure

- All files must conform to only using lowercase a-z and 0-9, not including the dash.

- Must have a fluid design to fill any screen

- On and on, you get the idea....

Over half way through development! Are you serious? Restructure and rename everything, change all layout from responsive to fluid, work with full animation performance in a LAYER over a whole website shaded out?!

Of course, for the same price...

I can live with scope creep, but things like an entire file name and structure requirement along with responsive to full fluid design swap?

Am I crazy to think they should understand what (our estimate explained) a responsive design is versus fluid? This is full, phone to desktop.

Do you get these crazy project scope changes last second? How do you handle it?

    This topic has been closed for replies.

    2 replies

    Rob Hecker2
    Legend
    September 5, 2015

      Is this a repeat client? If yes, you might be able to recoup some of this loss on a future project for them.

    Right thinking. I once let a client really screw me out of $500 and took it on the chin with a smile because I foresaw a lot more business was ahead. But if I had quibbled over the $500 I would probably have lost that future business.

    sinious
    siniousAuthor
    Legend
    September 6, 2015

    That's always my gotcha. If I mention it and my client needs to get more budget, their boss will see it's their fault for failing to give a stack of requirements. Now they're not in a good place, thus neither am I with my client. That can cost us the next job just out of spite.

    For our size clients we're just a tiny vendor and only as good as the last job (mostly).

    My end of last week peeve was different though. Two things I really wish more coders took a brief second to do is:

    1) Please put a comment at the end of any fairly large block of code (more than halfish or more acreen) indicating what it is closing. HTML or code, it really helps, especially when loops start nesting.

    Just this easy:

    function Foo() {

       //.... Lots of foo

    }// func Foo

    2) In consideration to #1, in those nests and nests of loops, can we strive for a variable other than 'i' to iterate on? And longer, descriptive references as well? It becomes pretty hectic when you're inside a triple nested loop looking at r.cb(m(r.id),r.data);.. Yes that's nonsensical seeming, but mid dev, I've seen strugglers start cutting down on sane things.

    If my IDE didn't support scoped refactoring or begin/end brace highlighting, I'd be nuts.

    Rob Hecker2
    Legend
    September 6, 2015

    Of course using PHP classes makes it easier to keep track of what's what, but I don't always do that.

    No one else ever sees my code, but my single project is hundreds of thousands of lines of code and the database has 114 tables, so I try to be strict about commenting, naming conventions, and structure, for the sake of my own sanity. I use long descriptive variable and file names. The extra typing pays off in the end.

    An example of failed consistency on my part is naming tables. My invoice table is "invoice," singular, but my customer table is "customers," plural. This small lack of consistency has led to a thousand times a query I wrote didn't render the first time because I got singular/plural wrong.

    I frequently see beginners who post code in the forums using case inconsistently, which quickly leads to head scratching over why the variable doesn't hold the value they set when the variable they call is $price but the one they set was $Price.

    If my IDE didn't support scoped refactoring or begin/end brace highlighting, I'd be nuts

    Absolutely. Of course DW matches braces. I use ZEND Studio for PHP IDE, although I actually do a lot of PHP work in DW as well. I highly recommend ZEND server as a development web server because of the built-in debugging tools.

    Nancy OShea
    Community Expert
    Community Expert
    September 4, 2015

    <Of course, for the same price...>

    Uh, oh.  All this should have been laid out in the planning phase, not midway when most things are already completed. I would politely explain they will have to pay extra for widespread changes.  When they ask how much more, quote something close to double the original price.  Then negotiate to bring the changes down to an acceptable level that you can both live with.   You've got to stop scope creep in it's tracks.  Otherwise they will own you & you'll resent them forever.

    Good luck!

    Nancy O.

    Nancy O'Shea— Product User & Community Expert
    sinious
    siniousAuthor
    Legend
    September 4, 2015

    Thanks Nancy,

    I wish it was that simple, but to your point, they do understand it will add to the estimate. They just HATE to hear that because they need to tell someone above them that their vendor project costs more. You know that blame comes right back to the vendor. And you also know the vendor is not at fault.

    I wish the agile process was far more popular with our clients. I want them to see faster updates to correct and adjust time more appropriately. Unfortunately my clients all have no idea what they want in the end, for a fixed budget price.

    *facepalm*

    Luckily my company is considerate and had always dealt with this. Our job, #1, is to make the client a rockstar.

    Tough to do free work.

    Nancy OShea
    Community Expert
    Community Expert
    September 4, 2015

    I hear ya!  Is this a repeat client?

    If yes, you might be able to recoup some of this loss on a future project for them.  Client saves face this time around understanding they will need to pony up more next time.

    Nancy O.

    Nancy O'Shea— Product User & Community Expert