[quote]There are three types of programmers in this world.
Ruggedy, the terran programmer gets shit done and is smart enough to make it work at every level. The code isn’t sexy nor elegant, but it gets the job done and works well enough. Their tools are what-ever they can afford.
A terran programmer usually works best in a start-up or as a technical leader. A canonical example of a terran based company is 37 signals.
The company matters most to the zerg programmer. They need their IDE (i.e. creep). Management needs to hire lots of them to ship even the most basic of products, but they can hire hordes to solve problems of scale. They depend on their queen vendor.
A zerg programmer works best as a cog in some corporate machinery, and they tend to use a Microsoft or Oracle products. Most offshore outsourcing company are an example of a zerg company.
Shiny and advanced mathematics is the primary tool for the protoss; this greatly limits their numbers. They use languages like Lisp or ML to develop spectacular results.
The protoss cluster in academia until they have matured to the point where they have the insight that can power a company. For instance, Google’s PageRank is a protoss insight that powers Google thus making Google a protoss company.
If you build a company, then you need to ultimately use people to get things done. You need to find the right people for the right job to get the company as a whole executing.
Each type of programmer has their pros and cons in a business, and the goal is to utilize and structure the company such that everyone works together effectively.
If we ignore (or worse argue) about differences, then we miss out on the potential to work together and build truly great things.[/quote]