I’ve learned a valuable lesson recently. To be successful as a
technology consultant, it isn’t enough to just be able to hit the high
gotta be able to hit the middle notes too. You have to channel a bit of
A while ago we hired a brilliant consultant to help us deliver a project
for a client. This was one of those “finger in the dyke” projects in
which we had limited time and money and had to help the client deliver
something to their clients just good enough so everyone could get paid
and we could properly fund the next phase which would include complete
repairs and refactoring and a much cleaner solution.
The project timeline and budget for this phase would have been
impossible to make as a custom development project from scratch. We
decided to that it would be good enough to use an open source project
that got us 80% of the way there, and then customize the 20% to get the
rest of the way.
Of course, midway, our client discovers that people at their client,
fearing for their jobs, had withheld some crucial requirements. Our
one-to-one mapping of the open source software to the problem domain was
no longer straightforward. This is where a consultant has to channel the
inner MacGuyver. We needed for the consultant to look in his pocket,
take out the piece of gum, foil wrapper, and loose thread and make it
Sometimes, to deliver a product, you need a solution developer, not just
a software developer. This consultant was a brilliant software
developer, who had hit the high-notes on his pet project. But he could
not bring himself to hack together a less than perfect solution.
Now, despite my last name, I chafe at the thought of hacking together a
solution rather than executing something cleanly and elegantly designed.
But as I pointed out in the past, there is no perfect
You have to make do with what you have. The perfect design in any
situation is one that works within the confines. It may be flawed from
software development standards, but if it meets the needs of the client
and fits all the constraints, then it is perfect in my book.
The consultants job is to make the client aware of the cost of the
sub-optimal design, not to reject the client’s needs.