|The User-Developer Convergence: Innovation and Software Systems Development in the Apache Project|
|Prev||Chapter 8. Analysis||Next|
Instead of looking at the project in terms of having a process model, the Apache project organization can be seen to exhibit Nonaka and Takeuchi's enabling conditions for knowledge creation. The developers' work style isn't defined by what they do, but rather by how they choose to cooperate. Individual work is the basis for the project's collective work. There is no central control over who does what. Individual autonomy is practically unlimited. As the virtual hosting vignette shows, "[o]riginal ideas emanate from autonomous individuals, diffuse within the team, and the become organizational ideas" [NONAKA1995](Nonaka and Takeuchi 1995, p. 227). Instead of immediate adoption of Cliff Skolnick's virtual hosting implementation, the patch undergoes scrutiny and is subjected to objections. Improvements are suggested, as well as alternative technical approaches to virtual hosting. Even though the initial implementation of virtual hosting is individual work, building a justification of the chosen approach is collective. Instead of looking at development as a relay race consisting of a series of individual works, individual work is followed by cooperation and discussion.
This way developing virtual hosting isn't as much about implementing the feature, but rather about building a theory of the feature. Based on Skolnick's implementation the group builds a theory of the feature. The theory building is only part of the entire knowledge-creating cycle resulting in virtual hosting. Use had shown that it would be fortunate for the same Web server to manage the contents of different independent Web sites. At first the feature is called multi-homed, it is later renamed virtual hosting. Virtual hosting is the metaphor used by Skolnick and Thau when arguing against Robinson's suggestion to make use of the underlying socket technology to provide the same feature. Instead of multiple Web servers running on the same computer, virtual hosting gives the impression of several servers running. Nonaka and Takeuchi says the metaphor is effective in creating and elaborating a concept [NONAKA1995](Nonaka and Takeuchi 1995, p. 221), virtual hosting shows how the metaphor helps framing the feature and direct its implementation.
Through collaboration and discussion tacit knowledge is transformed to explicit knowledge. It has an element of "understanding through narration" [ORR1996](Orr 1996, pp. 178-179). It is Robinson's objections, his "intrusion" [NONAKA1995](Nonaka and Takeuchi 1995, p. 230) into Skolnick's work, that leads to the discussion about why the concrete implementation is to be chosen. Instead of accepting the existing implementation at face value, redundant information about how the same effect could be implemented using existing socket API functionality. As Skolnick's feature works, suggesting a different approach could be considered both destructive and counter-productive. Instead the differing, even competing opinions are used to justify the existing implementation. The degree of redundancy within the project is even more apparent during the May-June crisis. For a while two competing server architectures are being worked on. Rob Hartill is working on stabilizing the existing NCSA based architecture, while Robert Thau is implementing the new Shambhala architecture. A lot of effort is put into both implementations. Nonaka and Takeuchi considers such redundancy "especially important in the concept-development stage" [NONAKA1995](Nonaka and Takeuchi 1995, p. 230), as it helps transform tacit into explicit knowledge. While it is never articulated, exploring the Web technology is a driving force for many participants in the Apache project. This is tacit knowledge that Robert Thau's transforms into explicit knowledge with his Shambhala architecture. By modularizing the server architecture, new functionality may be added without having to make changes to the Web server's core functionality.
Both vignettes show a distinct flow of events, resembling Nonaka and Takeuchi's five phase model of organizational knowledge. An individual developer's experience triggers the idea for new functionality. The idea is shared with the community, not always leading to more than encouraging replies. The idea is implemented and shared with the community where it is probed, questioned and alternatives are suggested. The probing and questioning is both a way of cross-leveling knowledge [NONAKA1995](Nonaka and Takeuchi 1995, p. 236), but also an approach to building a shared understanding—a theory—of the functionality. This cross-leveling of knowledge is especially apparent during the non-forking discussion. While discussing Apache's non-forking functionality, developers from both the NCSA team and Rob McCool at Netscape share their experiences with non-forking behavior. Both Rob Hartill and Robert Thau have both implemented non-forking, but the discussion with the other teams spawns a new period of trial and error before they settle upon a solution.