As a consultant, I feel strongly about giving sound technical advice to my clients, even if such advice means saying "no" to a client or possibly turning back a larger project for a more pragmatic one. It's about doing the right thing and offering sound technical advice to the best of my knowledge -- not just money, projects, and utilization.
The one personal example that really sticks out for me is the case where Microsoft sold a deal to a hedge fund to build a bulk import system using BizTalk that would have cost them triple the price (once licensing and hardware was factored in) of doing it using SQL Server DTS, which was easier to program, maintain, and more robust in every way (not to mention this company already had SQL Server skillsets in-house). Luckily, we were able to convince the client that DTS was purposefully designed for carrying out bulk import and transform of data before they committed the cash to BizTalk.
Recently, a friend of mine showed me a project that the Big Consulting Company he works for was delivering to their client, a public library. It looked really good for a public library website...until he dropped the bomb that it was built using Silverlight (and to top it off, he was really proud, too -- as if I was supposed to find it impressive). I don't think I've ever done a bigger facepalm in my life.
As I've stated in the past, I have a strong disdain for the misuse of Silverlight. There are certainly scenarios where it should be used for building web sites:
- Streaming media
- Scalable 2D vector graphics and animation
- 3D graphics and animation
- Interactive games
And that's it! Beyond that, if a company wants to use it in their intranet site, it doesn't concern me as much because the environment is more homogeneous and controlled in terms of having the platform to run the Silverlight applications; it's their headache going forward. Besides, if it's a private, multi-national company, then by all means; if they wish to waste their capital and resources, that's their choice.
However, it is a damn crime to recommend Silverlight to any client building basic web applications that are Internet facing, especially a public library financed by taxpayers. I mean, people should be fired and embarrassed for offering such terrible advice. To begin with, few non-Windows devices natively support Silverlight (and even folks on older Windows OSes can't natively run Silverlight apps). iPad? iPhones? Android phones? Linux based netbooks? As sales of traditional laptops and desktops decline, it's important to factor in the presence of these newer platforms when designing a publicly facing Internet site. I would think that this would be even more important for a public library.
Now, if the site were media focused -- like a YouTube -- perhaps it could be forgiven; after all, HTML5 is still a moving target and supported only by newer browser versions. But this is a public library website that was listing books...It's as bad as websites that still use Java (yes, Java without the "Script") for image galleries or raindrop effects. It's as bad as websites using Flash for menus and menu rollover animations.
I would be embarrassed to be a part of the company or the team that sold and implemented this deal. A fucking crime to the taxpayers of the township with me as the perpetrator; no better than stealing money from your neighbors. I couldn't live with myself for being so evil.
Now, he told me that the client insisted on Silverlight and that it was they who wanted it done in Silverlight. To me, that makes no difference. As a consultant, it's my duty to provide sound technical guidance to the best of my knowledge and ability. If there is a more compatible, cheaper, easier to maintain solution built on a platform with greater longevity that solves the same problem, I will recommend taking that route, even if it takes me out of the running. It's our job as consultants to consult and to offer sound technical advice.
For you see, the client may not know or care for the difference between Silverlight and HTML5 or jQuery based UIs. The client may be under the impression that a given UI or bit of functionality is only possible because of Silverlight if that's what they've been sold and demo'd. The client may not understand the alternative solutions as certainly, for a non-expert, the difference between two types of wood -- for example -- aren't perceivable. The client may be enamored with one buzzword or technology, but it is our duty and responsibility as consultants (and decent human beings) to tell the truth because I'd like to believe that when I ask a contractor to come to my house for a quote or get a diagnosis from an auto mechanic, he'd do the same for me and give me the low-down to the best of his or her ability and knowledge.
I'm still peeved by this as it's a critical misunderstanding of the Internet ecosystem and managing device compatibility as well as a critical misunderstanding of technology and their suitability for a purpose. Not to mention that it's a terrible choice for audience accessibility, long term costs, and maintenance. I really don't want to be upset by the fact that my friend or his team could have purposefully offered bad advice for greater financial returns as that would be a true embarrassment and I only hope that all sides in this come to their senses and ditch Silverlight.
In the end, for me, consultancy is about people and treating customers with respect by offering the best technical advice to one's knowledge. Even if it costs me my job, I've always believed that I am accountable to my clients and I'm responsible for giving sound technical advice.