|The User-Developer Convergence: Innovation and Software Systems Development in the Apache Project|
|Prev||Chapter 4. Hacking||Next|
Gisle Hannemyr is correct in that the word hacking is ambiguous in its use and meaning. I have presented several communities that are considered hacker communities, even though not all call themselves hackers. Gisle Hannemyr sees hacking in the context of software systems development. He bases his observations on personal experience and to a great deal on Eric Raymond's The Cathedral and the Bazaar [RAYMOND1999]. He writes:
When asked: "In your work, do you view yourself as a 'tinkerer' or an 'engineer'?" one hacker answered: "Any real developer has to be both. This is what you have to learn from transmission outside the scriptures, from working with other people: When you have to be bottom-up and when you have to be top-down." This brief statement summarizes what I consider the three most pronounced aspects of hacking: The emphasis on skills acquired through practice ("outside the scriptures"), the importance of the community ("working with other people"), and the equal emphasis put on engineering ("top-down") and bricolage ("bottom-up"). [HANNEMYR1998](Hannemyr 1998, p. 258)
Hannemyr borrows Lévy-Strauss' term bricoleur to describe hacking. The bricolage is a useful way to think of piecing together. The point of bricolage is the reflective use of a closed set of resources—typically what is at hand like things, understandings, facts—to accomplish a defined goal. The set is the accumulation of previous manipulations, one's experience and knowledge, and, in literal bricolage, physical objects. Orr [ORR1996](1996) shows the bricolage as an apt description of how technical work gets done. For the hacker, both Levy [LEVY1984](1984) and Raymond [RAYMOND1998](1998) shows that the hack, which is the goal, can be something else than a piece of software as long as it a technical achievement.
Hannemyr draws up the defining dichotomy of hacking: engineering vs. bricolage. In this dichotomy engineering is understood as a analytic and systematic approach to software systems development, while the bricolage consists of applying a given item from the closed set of resources toward the goal of the bricolage, possibly by some reinterpretation or modification. As hacking has elements of both, practice and experience is the key to understanding which approach works better in a given situation. The hackers' approach to software systems development isn't purely analytical. Instead it contains elements of playfulness and experimentation.
Hannemyr also notes the elements of participatory design in Raymond's works, but sees hacking as a counter-movement to scientific management. Hannemyr describes the situation as follows:
The most profound effect of application of Taylorist principles to computer work was the introduction of a detailed division of labor in the field. Computer workers found themselves stratified into a strict hierarchy where a "system analyst" was to head software development team consisting, in decreasing order of status and seniority, "programmers", "coders", "testers" and "maintainers". Then, below these on the ladder was a number of new adjunct positions created to serve the software development team: "computer console operators", "computer room technicians", "key punch operators", "tape jockeys" and "stock room attendants". Putting the different grade of workers in different locations further enforced the division of labor. Most corporations in the sixties and seventies hid their mainframes in locked computer rooms, to which programmers had no access. This isolated programmers from technicians, diminishing their social interaction and cutting off the opportunity for the exchange of ideas. It also prevented programmers from learning very much about the workings of the machine they programmed. [HANNEMYR1999](Hannemyr 1999)
Building on Lévy-Strauss' bricolage, Dahlbom and Mathiasen [DAHLBOM1998](1998) coined the two terms tinker and engineer. They argue that illiterate thinkers have bricoleurs and tinkers, while modern societies have engineers. The engineer is top-down while the tinker bottom-up. However, Hannemyr argues, even though hacking has elements of bottom-up working, they are very much engineers. In his eyes, de-skilling and the division of labor deprives software systems development of the engineering elements and reduces it to tinkering. Hackers see this, and their abhorrence of scientific management and tayloristic principles are based on their belief that software systems development is both an art and a craft. The aspect of art and craft is the crux of Hannemyr's description of hackers and hacking [HANNEMYR1998].
Tove Håpnes studied the hacker sub-culture by the Norwegian Institute of Technology. She viewed the sub-culture from a sociological point of view. Unlike Weizenbaum's compulsive programmers and Levi's techno-wiz hackers, she saw the culture as an ambiguous project. It is torn between both the individualistic and collective [HAAPNES1996](Håpnes 1996).
We find elements of competition, but also of collaboration; play and entertainment as well as work and utility. Hackers consume technology, and they design technology. They talk about winning and mastery, but also the importance of being artistic and interactive. The computers are instrumental as well as expressive; defined as "objective" tools which also include certain values, and subjective elements are integrated in their use. [HAAPNES1996](Håpnes 1996, p. 145)
All in all, concludes Håpnes, the "… hacker culture is a form of socio-technical experimentation … Their [the hackers'] motivation is simply to challenge the boundaries of computers and their own creativity" [HAAPNES1996](Håpnes 1996, p. 148).
It is obvious that hacking involves quite a special kind of relationship between individual and collective work, but in what way does this influence on the software systems development and what is this relationship in practice? There also has to be more to hacking than just this special kind of relationship. Hacking has produced numerous important innovations, like ground-breaking operating systems and the world's largest computer network. The picture drawn from existing sources is an unclear one, and the question still remains: what is hacking really, and how does it relate to software systems development?