views:

168

answers:

4

I'm at the point with a project that most of it needs a rewrite, specifically one portion needs it very badly for a number of reasons:

  • it's no longer being used for it's original purpose
  • the code has been hacked so badly it's very hard to work with
  • the changes they want will hack it to pieces
  • the original design wasn't the greatest as we were trying a new technique

The unfortunate part is the piece of code that has been hacked so badly is run every minute and as the site gets used more, the longer it's taking.

How do you tell your client that you need to take the time to think it through and rewrite it?

+5  A: 

"Technical debt" is the term for this situation-- most of the time when I explain it my managers have been pretty receptive to the idea it will save time in the long run.

Marc Charbonneau
+2  A: 

I usually tell them exactly that. If they get annoyed with me I usually explain that part of my job as a consultant is to help strictly define their business processes. I'm not sure if that's exactly true but that's usually how it ends up seeing as how most small businesses have zero documentation on their operating procedures and don't realize how often they make stuff up on the spot.

Spencer Ruport
+4  A: 

Simply explain to your client that, because of the reasons you mentioned, it will take more more time, and thus money, to make the existing code do what they want than it will to rewrite certain pieces from scratch to meet the new needs. It's usually easier to make the case when you can present a clear financial benefit.

Robert Gamble
A: 

In a long term project, you need previously to schedule periodical meetings with your customer with the objective to discuss about the status of the project. With these periodical meetings you and your customer will be comfortable to talk about that kind of subject.

Click Ok