One of the core values I had for Percona is providing indepentent/bias free services for the customers focusing on just their needs and benefits and avoiding the things which would stop this from happening. As I was thinking about this matter over the years I see there are number of things which forms the bias or breaks tru independense and some are harder to deal with than overs.
Product Sales – if you own the product you’re doing consulting around it is very hard to be independent. It would take a lot of guts for consultant to go out there and say the competitor product would work better for the customer and it takes a lot of leadership to ensure such opinions can be exposed without putting the job at risk. At Percona we’re in good position about this one because we made a choice not to sell any products – all software we develop is freely available and we do not have any direct insensitive to push our software to be deployed. True we think it does provide value and improves effectiveness in many cases but it is not the same thing.
Partnership Commissions – Another insensitive company may have is to push product or services by the partners earning comission on the deal. In this case it is similar to Product Sales issue as there is a motivation to recommend partners which pay highest commission and avoid solutions which do not pay any. This is harder one to solve. If we simply to refer the customer to someone we do not want any comission on this. If someone would like to give a token of appreciation to Percona we would rather see in form of discount to our customer. We’re paid for bias free recomendation of best solution for the client and this is what we do. If however customer wants to work with Partner through Percona we have to charge certain fair margin to keep operations running. If we subcontract we’re exposed to legal risks, financial risks of failing to get the payment from the customer and quality risk, potentially being forced to seek solutions at our cost for mediocree work partner has done. We try to structure our deals in this case to ensure we fairly share revenue with partner and so we have limited insensitive choosing one partner over another. Of course relationships does matter in this case – if some partner does a great job performing some task he naturaly becomes preferrable.
Personal Preferences – Here is another hard one. Personal preferences. There are people who love Linux others love FreeBSD – they know one better and would be naturally biased towards that. Everyone has their individual experience which leans us way or another. The only solution I see here is education for consultants to be factual and really evaluate situation based on facts rather their personal preferences as well as disclosure of customer experience in regards to matter. For example if you’re compating AIX to Linux and never had experience with AIX you only can say that, as well as state the fact there are much fewer people running MySQL on AIX than Linux so risk of platform specific issues is higher and there is less “community” experience.
Resource Availability – As a company we have experience with some technologies and less or no experience with others. This of course means we’re not as confident recommending technology we do not know – for example comparing MySQL to CouchDB it would be hard to be objective for us because we know much more about first than the second one. Though full disclosure helps in this case to make sure advice is interpreted correctly. The other issue is – if customer decides on CouchDB he will likely hire another company to work with, while if it is MySQL – business stays home. This really requires consultant integrity and this is important personal skill for Percona hires. Another way is to ensure we as the company have experience for relevant technologies. If CouchDB is better than MySQL for large class of application this means we better to get experience on CouchDB either inhouse or via partner.
Any other problems you see or solutions for stated ones ?