At Percona we always try to do our business in a way to control our bias. I say control not eliminate as I believe this is not possible to achieve whole 100 percent. Human mind is wired to be biased on so many different levels. To be able to control the bias – act in a way we do not affect our bias to affect our advice to the customers we need to understand what types of bias there are.
First however let me remind again why dealing with bias is important for us. To provide best consulting possible we need to try to step in the customer shoes and provide advice which offers best solution in their individual circumstances. Stepping in customer shoes has its own set of challenges but, but once you’re in those shoes you can get your bias to lead you astray. For example it may make sense for customer to continue using Windows but you’re biased against it and recommend costly platform change.
Second let me highlight there is the special breed of bias called conflict of interest which usually applies to the cases where there is a clear commercial gain from giving certain types of advice. We have to deal with a lot of relationships in our life where conflict of interest presents and this is where the individual (or team) integrity becomes paramount. For example in commercial medicine doctor has direct benefit of suggesting more expensive (often more invasive) treatment and this may not be always to the patient advantage.
Third let me tell about our approach of dealing with Biases – The general idea is as follows. Bias could be caused by our emotions/subconscious feeling which may include greed or it may be conscious feeling which just does not fill with our ethical value completely. We need to understand it and when try to analyze the problem logically – what is the problem ? What kind of solutions are ? What are benefits and drawbacks. As long as you can get to more abstract details it becomes a lot easier. It is also important to propose several solutions which might work in this case even if you do not position something as your first choice customer may ask more details or bring up something else to the table. For example recommending xtrabackup for backing up Innodb database I can mention LVM backup is also an option and explain what the benefits and drawbacks are factually. Even if my value of different benefits and drawbacks are different from customer’s he gets complete picture. It may be even though this instance is Innodb only some other instance contains large MyISAM tables and customer wants same backup solution which just works for both MyISAM and Innodb and IO performance impact may not be of concern for him.
Lets get to our bias now. Here is what I could come up with, though I do not believe this list is complete.
Creation Bias – when you have created something you would have the Bias to use that product instead of something else. We sure feel warm and fuzzy if someone runs Percona Server, Xtrabackup or Maatkit. We have to really keep ourselves in check to ensure this is the best solution available.
Experience Bias – Similar to Creation Bias we generally are more comfortable with things we know. And objectively there are less risks of using things which you know. However you need to ensure you understand your experience may not be same as one of the customer. One may like Java but it is not practical to recommend it in the team which has only .NET experience 🙂
Marketing Bias – We also often get a bias even in case we have not used the software. It may be based on Vendor – “Apple products are always cool” or more specifically something you’ve heard read or even memorized without noticing it. It again causes us to pick some things instead of others even if there is no direct gain for us.
Now finally lets talk about Conflict of Interest – something which we especially need to stay away from. There are many type of conflict of interest which differ from each other from level of directness. For example if I sell my product and get cash this is a very direct link, if however I recommend Percona Server which may in the future bring me some development hours with higher probability than if customer would use MySQL it is a lot less direct conflict of interest and it is less of the problem especially on subconscious level. We try to avoid as many direct conflict of interests as possible. For example our software is free so we do not sell you software (this has another positive side effect of avoiding vendor lock in for customer). We also would not have deals when we would earn commission by recommending one solution/product over other.
As consulting company we however have a bias of looking to offer solutions (both development and consulting) which include more hours. We try hard to keep ourselves in check by asking if this is something which can be made more simple or what are alternatives to the development. For example just today someone wanted to get delayed MySQL Replication as available in MySQL 5.6 in early MySQL version. We told them we possibly could do backport but it may be better to just use maatkit’s mk-slave-delay.
The good thing here is what hours allow customers to really keep us in check all the time and measure our efficiency. As customer knows how much different solutions costs to him he is able to chose less expensive or reduce project size if it became too ambitious.
As a summary I think we’re not perfect and there are number of cases of the biased decisions I know about. I try to ensure we correct them when we can. I also know we’re in a pretty good shape comparing to most of other companies in the industry as this is something we constantly keep our attention on.