As is often the case PG has an excellent essay up on “What Happened to Yahoo” (no exclamation point from him).
While the entire is a must read the money quote for me is:
Yahoo treated programming as a commodity. At Yahoo, user-facing software was controlled by product managers and designers. The job of programmers was just to take the work of the product managers and designers the final step, by translating it into code.
One obvious result of this practice was that when Yahoo built things, they often weren’t very good. But that wasn’t the worst problem. The worst problem was that they hired bad programmers.
In technology, once you have bad programmers, you’re doomed. I can’t think of an instance where a company has sunk into technical mediocrity and recovered. Good programmers want to work with other good programmers. So once the quality of programmers at your company starts to drop, you enter a death spiral from which there is no recovery.
Good stuff. The question is how do you build a hacker-centric culture. PG has some thoughts. I saw a good example this morning.
We are sitting around the kitchen counter eating breakfast when the Kokomo Kid asks “You know anything about SQL?” “A little, why” was my cautious reply.
While it just so happens one of the companies where she works as a controller, QuantiSense, sent out a throw down challenge. Who is the best SQL expert? They distributed one of the tests that they give to developers when they are being interviewed. The test went to the entire staff. The entire staff was expected to complete it, including writing a little code snippet at the end. So my wife, who is the part time controller, is reading SQL code and trying to determine the output of a command string. It just so happens that the sample table had a few null values. She could not determine how to treat them as different versions of SQL treat null values in different ways.
So my wife, the controller, who before this morning had never ever looked at a line of code in her life sent this note:
What variant of SQL are you using? Don’t I need to know this in order to understand how Null values are treated?
When you get your controller to ask what version of SQL you are using to figure out the output of a query I would say that you might be on your way to building a hacker-centric culture.