Classical software engineers work in organized and structured ways, for the pursuit of perfect code. Give them a specification of what you want, and they will deliver on time, to cost, and with zero defects. Their work process is down to a science. Quality, on time, within costs is their mantra.
EDS, IBM, and NASA are some of the bastions of this scientific process. They have achieved the top level of the computer science game, as measured by the CMM organization and the prestigious Software Engineering Institute.
Hackers, on the other hand, pursue the beautiful solution. As with other artistic media, a beautiful solution is impossible to explain, but you recognize it when you see it.
Larry Page's original Back Rub algorithm, which powers Google, is a beautiful solution. Job's and Wozniak's first Apple prototype computer was a beautiful solution.
Beautiful solutions are so astounding that they need not be perfect; imperfections add to their charm.
The code will not be finished on time, it will cost more and will be full of errors, but you will be impressed. It will be novel, it will enlighten, and it will make an important contribution; beautiful solutions make a difference.
Hiring Beautiful Solutions or Perfect Code
Web companies, like Google, are hiring both. Software engineers to polish and maintain established services. Hackers to create services from nothing.
To try and stay ahead of the game, Google is hiring candidates that can innovate; hackers to artfully create new astounding services. To maintain and polish its existing software, Google is also hiring software engineers to implement process and quality.
The novelty is that Google likes the 2 in 1 solution; hacker and computer scientist in one. By Google's own admission, all their employees have to be 30% hacker and 70% scientist.
Hispavista, my company's spanish arm, has 70 technical staff. Also a mix of hackers and software engineers. But unlike Google, they work in separate teams. Following Steve Job's famous example at Apple's skunkworks, our hacker and scientists work in separate departments.
Our development department has achieved CMM level 2, and could easily certify as ISO9001 compliant. Our head of development produces the best quality and lowest costing function points in Europe; he has among best software engineering teams in Europe.
Our innovation department produces beautiful solutions. Dating back to 1995 our Strategy Director has created web services that have amassed millions of internet subscribers; he is a hacker of some reknown whose works have been sold for tens of millions (literally).
Hackers and Scientists Under One Roof
The problem is that their process and culture are totally different. Software engineers aim for zero errors and zero delays, hackers aim to be world famous. The hard part is getting good hacking and coding at the same time.
One can’t live with out the other, yet are totally different in approach. Our experience at Hispavista is that they are best roomed on opposite sides of the building, and project hand overs require a good referee.
Google, on the other hand, has opted for the borg approach, part human part machine. Googlers engineer sofware for 70% of the time, and hack 30% of the time.
Eric Schmidt has repeatedly described how hacking project's that do well online become bona-fida software engineering projects. The successful hacker is given a team of people to manage, code to review, and quality to assure. The question for the hacker is whether to continue as software engineering manager or hand over to somebody else so as to get more hacking time.
Web 2.0: The Rise of the Hacker Army
Ed Yourdon, one of the inventors of software engineering,
visiting digg.com visiting Google observes that web2.0 startups will need software engineers as the service grows. Hackers will not be out of work though.
Software engineering may be outsourced, but entrepreneur and intrapreneuship has become the essence of competitive edge and is core to a business. Innovation has become the new marketing. Judging by the way Google is recruiting among the web2.0 hacking community, hackers are here to stay.