I used to tell my newly recruited consultants about the "new project blues". When you go to a new client, you go through a period of adjustment, where you have to deal with trivial questions all over again: What do you use for email? How does the voice mail work? Where's the coffee? Where's the bathroom? It's the same questions you'd ask going to a new job, but as a consultant, you ask them a lot more often.
When you get ready to leave a client, you also have similar experiences every time. (No, it's not "short-timer's syndrome".
Today I fixed my departure date at my existing client, and I'm not sorry to be leaving. This was one of my more frustrating engagements. Typical conversation with the client manager was the one I had today:
Client: What's the schedule for loading the database?
Me: I'd recommend weekly, Thursday mornings. They run production on Wednesday, and they want the stats as soon as they're available.
Client: Hold on. How are we defining a week?
Me: A "week"? Um, seven days? The code doesn't care, you can pass it any date interval as an argument. I just wanted to make the data available as early as practical.
Client: Then maybe we should load Wednesday afternoon.
Me: We can't touch the database until after they're done with the backup. Thursday morning is the soonest.
Client: What about Monday? That's when the business week starts in finance.
Me: Finance? But this is production. Well, yes, we could load on Monday.
Client: Isn't that when we're loading downstream systems?
Me: No, downstream systems load on Thursday.
Client: I think the best way may be to avoid picking a day and just load daily. Can we load daily?
Me: Yes, we can load daily. But they don't run production every day, so you may not get data every day. It's not an error, but the "zero rows loaded" may look funny on reports.
Client: But we can fix that if we run weekly, right?
Me: Yes, we should have data every week, so a weekly run should never report "zero rows loaded".
Client: They run production Wednesday, so let's run on Thursday morning. Can we load weekly on Thursday morning?
Me: Yes, we can do that....
This actually took more like 20 minutes of going back and forth. In the meantime, the project deliverable is late, and doesn't deliver all the promised functionality. Solving a problem feels really pointless when the client insists on micro-managing details and missing the big picture.