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 notes. You’ve gotta be able to hit the middle notes too. You have to channel a bit of MacGuyver inside.
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 happen.
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 design. 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.