views:

143

answers:

5

How flexible should a programmer be if a client requests requirements that is not in the project scope?

A: 

This question cannot be given a blanket answer. It depends project to project.

Examples:

Client has money to burn, long timeline, no other projects on the go, I am very flexible.

Client is tight with $$, short timeline, other projects on the go, I am hardly flexible at all.

Other factors come into play as well, such as the process that has been chosen for the project. For example, you will be more flexible in an agile process, less flexible in a waterfall approach.

mattlant
A: 

I think the answer to your question comes down to how flexible your client is with time and cost because you can not change the scope of a project with out having an affect of these two things.

Scope creep can be a good thing if it allows the project to evolve and has an overall positive affect on the outcome of a project. You really need a formal change process in place to manage scope changes.

Joel Cunningham
+1  A: 

General perspective:

You need to earn a living; the client needs a computing solution: the client has the right to make sure that the solution you will supply fits his needs. Changes and additions after and agreement has been reached, reflects on your ability to analyze the user's requirements into a system design, in that failed to investigate those requirements to sufficient depth and detail: you need to do this meticulously and obtain a written sign-off agreement on your system design from the client.

Legal perspective:

You should pin the scope of the project down, and get the client to sign an agreement of that scope. Once you have that agreement, anything not covered by it constitutes a new project.

Business perspective:

Do you want to continue doing business (with the current as well as future clients)? You need to do an evaluation of the impact adding the new required functionality will have on the current project: if the impact is small, then do it, but tell the client - in writing - that you are doing him a favor; if the impact is larger then you must negotiate with the client, outlining the issues, and either adapt your current agreement, or make a new one. What you do not want to do is to antagonize your client.

Lastly: "The client is always right." - (up to the point where you have to give up and just go away.)

slashmais
A: 

If it's a fixed-bid project, then I am open to negotiation and will agree to expanding the scope in one area in exchange for reducing it somewhere else, or for an increase in budget, or in exchange for some other consideration.

If it's for a client that I'm billing hourly, then they can expand the scope all they want, since I'll be charging them for the time I spend on it regardless of whether it's within the original definition of the project or not.

Dave Sherohman
A: 

Define in advance a list of functions that the system will perform.

If the client adds a new function then increment the cost and time accordingly.

If the client decides to leave a function out of the scope then decrement the cost and time if you have not implemented it yet.

hectorsq