In the previous post on the dichotomy between the 2 dominant modes of creating software I labeled these modes "The Hacker" vs "The Professional". After thinking about this it strikes me that it unintentionally implies that Hackers can't be professional. So the nomenclature needs some refactoring.
Hackers can be, and often are, professionals. For example, security researchers, those that discover (and sometimes fix) exploits in existing systems, must spend a lot of their time hacking to be successful in their job.
Quality Assurance is another profession that lends itself to the Hacker mindset. QA Engineers have to probe a system in expected and unexpected ways to find out whether it performs as intended.
As a final piece of evidence that I believe that the Hacker mindset is compatible with professionalism, articles such as "Under the Hood: Apple iPhone 3G exposed" clearly require a significant degree of technical expertise, discipline, knowledge of standards and standard techniques all of which are the hallmarks of a profession.
The Hacker vs Sculptor split isn't limited to Software Development. If it, as I believe, is truly an expression of fundamental personality preferences, then it isn't suprising that other professions find practitioners aligning along similar boundaries.
Take the music business. Many years ago a friend of mine asked, "So are you a technician that has an ear for music or a musician that knows how to push a few buttons?" He was an aspiring music producer who placed himself squarely in the former camp.
Back in the domain of software, the founder of PlentyOfFish.com evidences both his own hacker tendencies and the existence of the dichotomy when he says, "I was able to go in and see where errors were and fix them, which no one else could do. Everyone else could program, but didn't particularly know how to fix things. I was not particularly great at building stuff but I could fix things and make them work really, really well."
During a recent blog episode the commentators (Joel Spolsky and Jeff Atwood) discuss another expression of this dichotomy when talking about the differences between a good tester and a good programmer. Perhaps more importantly Joel alludes to the significance of the issue: being a good programmer probably means that you're not going to be a very good tester.
In the same vein, being a good Hacker probably means you will not be a good Sculptor. By Sculptor I mean designer of libraries, interfaces, systems and the like. The Hacker's instincts are very similar to the QA Engineer's instincts in that he is far more excited by and interested in how, where and when the system breaks.
The Hacker will gravitate towards this "quest for system faults" even when it doesn't directly bear on the task he finds before him. He genuinely enjoys it. He basically can't help it. Give a Hacker a system that isn't working and he is thrilled at the chance to get it to work, by hook or by crook.
Next time we'll focus on the Sculptor and what it is that makes him tick.