As is typical in the blogosphere, people will latch onto whatever topic is popular or controversial. Today, I read an interesting post from Michael Arrington regarding the responses to his investment policy. In his “Screw Them All” post, he says something very interesting, and possibly obvious to some people:
the really important thing to remember, as a reader, is that there is no objectivity in journalism. The guys that say they’re objective are just pretending. Everyone is conflicted in different ways, and yet the “rules of journalism” don’t require any sort of transparency or disclosure unless it’s a direct financial conflict.
Everyone has some bias.
I am sure you are wondering where this is going, since I have not commented about the blogosphere problems in quite some time. As a software engineer, if you remember the “everyone has some bias” mantra, you can actually change your career. The key is to remember that “everyone” includes you. As an example, I have been developing in Java for over 10 years, so my experience affects my bias against other technologies. I will likely get some complaints about this, but I do not like using PHP as a final implementation for a web application, mainly because I do not feel like trying to scale PHP. Java has its own issues, but scaling Java is a known problem and only requires a little research. I know there are companies using PHP with huge scale, like Facebook and Yahoo, but there are a lot of companies that cannot hire the best and brightest engineers to solve their scalability problems.
How does this anti-PHP stance help me? When people ask me what language to use, I can start by saying I am a Java developer, so my opinion is biased. I can explain my issues with PHP and tell them to search for some information on scaling PHP on the internet if they choose that language. PHP is great for prototyping a web application, and may be an acceptable choice for most applications if you are not planning to scale to the size of Facebook.
By acknowledging my bias, and ensuring that I include it in analysis means that I can provide a more complete picture. If you are a consultant, this becomes very important. If you have biases but do not include them in your analysis, you are not being honest with your clients. That is not a path to success.
Experience Is Bias
The problem that most people have is that they see their experience as a valuable tool, which it is, but they use it as a hammer and everything is a nail. Everyone is guilty of this at some point. Recognizing experience as only a tool is important in avoiding unnecessary bias. Experience also needs to retain its context in order to be truly useful. If you have a performance problem in your code, experience may tell you to look at the database queries and you may focus on that. A quick check to ensure the database is not obviously a problem is good, but you can’t focus on anything until real performance profiling is completed. The current application may not be similar to your previous experience, so your bias is actually getting in the way of solving the problem. Granted, it is very difficult to see when to rely on experience and when not to. This is one of the things that separates really successful people from other people that want to be successful.
So, admit your bias and recognize your experience as additional bias. You and your work will benefit from it.