Tuesday, January 06, 2009

Consultants, Idealism, and the Real World

Today, I hit an absolute programming wall. I was deep into my code, client asking for a deliverable date, and I hit a deal-breaker coding moment. I think, we have all had those things happen. You're there in the bowels and suddenly find some code that simply is not going to work and may jeopardize the entire design.

What to do? Well, Google and hope for a miracle. In this case, i got fortunate and finally stumbled onto a solution late into the evening.

However, the issue made me start doing some more research into the particular area I had struggled with and was reading a lot about static vs dynamic languages (this post is not about that). C$ 4.0 recognizes this dilemma and is implementing it but it isn't available now. However, what a firestorm on the web over the addition of dynamic capabilities.

What I realized is how far off the idealists / zealots are from the consultant/business coder.

If I tell my client that I have to rearchitect the 100s of hours of coding, what are they supposed to say? Instead of that Feb 1 deadline, I need to redo everything and deliver it in June? They will drop my contract and possible pursue action. Reality will sink in...quickly...

In the world of consulting, it is critical to deliver projects on time and to estimate accurately. When you hit those walls, there isn't a lot of time to debate the nuances of static/dynamic languages: I just have to have something that works...and NOW. Customers have a real allergy to paying a lot more money on top of what they already paid.

I dogged this problem, like always, and found an answer so I dodged a bullet: sometimes you aren't so lucky. There are times when you, as a consultant, have to take it in the shorts and I have done my time there. However, to ask a a client to pay because 'it isn't perfect' ignores the fact that nothing in computing is perfect: just make it work.

So, at the end of the day I will take tools that focus more on getting the job done than being perfect in theory. And I will also say an extra thank-you tonight for finding that one blog posting I really, really needed...

Catching pop flys,

Alan

No comments:

SAS throwing RPC error

If you are doing code in C#  and get this error when creating a LanguageService: The RPC server is unavailable. (Exception from HRESULT:...