Slashdot Mirror


Dealing with Difficult Development?

jjwahl queries: "I've recently been handed a funded web development project, and in an industry where almost any paid work is good work this is a welcome opportunity. This database intensive site basically has the look and feel developed but none of the plumbing. I have been given the job to create the database and write the code to make the site work - all at a reasonably good rate and with a time and materials payment structure (i.e. this is not a fixed cost project). Sounds like good news, right? Not necessarily." The company wants the work done in a timeframe that prevents a well thought out design and pretty much eliminates a decent testing phase. How would you handle working on such a project?

"Why [is this not good news]?

The project timeline is insanely short given the complexity; there is nothing of substance developed yet - no schema, nothing; given the timeline, all schema development will have to be done on the fly - no time to sit down, take a holistic view of the project and develop the schema properly; and there is also no timeline for testing - other than the ad-hoc testing a developer does, there is no time for formal testing at all. All of this means that I'm basically going to develop this site on the fly which means that I'll eventually make mistakes, and won't have a proper testing cycle during which I could catch them -- the public will catch them, instead and complain.

I'm afraid that despite my heroic efforts to bring this site to fruition, this job will look sloppyand reflect badly on me. Have any of you been in a similar situation? How did you deal with it? Should I just turn the project down?"

2 of 61 comments (clear)

  1. Is this a trick question? by Neck_of_the_Woods · · Score: 5, Insightful


    Everyone has been in this position!

    What, never heard the saying:

    Good, cheap, Quick: Pick 2.

    State your concerns now. Clear the air and let them know your issues. Do this NOW!

    If your scared they will drop you, well that is something you need to think about. Not saying anything is going to make look sloppy or a dolt.

    So are you a dolt, or do you have the brass balls to let them know this is unrealistic. Either way make a choice and let them know. Let them make a decision or shut up and grab a paycheck with both hands.

    Good luck.

    --
    Neck_of_the_Woods
    #/usr/local/surf/glassy/overhead
  2. Several options by rkwright · · Score: 5, Insightful

    1) Do you have any rapid development tools at your disposal? Depending on the technology involved, you could leverage certain tools like Visio or any of Rational Rose's products in order to quickly generate the database scripts and/or skeleton code; however, for this to actually be useful, you have to already be familiar with these tools in the first place (and thus not spend half your time looking for the right menu options or diagram shapes).

    2) Could you perhaps break up the functionality into phases? Sometimes the best way to do it is to give them some initial functionality sooner, then deliver the rest as a "phase 2". This will give you the chance to deliver a more solid "phase 1" that both you and the client will be satisfied with.

    3) If the client is not willing to work with you on the timeframe (or they are not willing to negociate a solution in the above idea), then definitely state to them that you cannot accept the project, and that furthermore you want to give them a little advice that whomever does accept the project will probably deliver a shoddy solution, given their rigid timeframe.

    I deal with this quite a lot at my company; however, I've found that our business people and our outside clients are actually rather receptive to a phased release schedule, especially if you can deliver their important features earlier and then leave the less important features to a "phase 2."