he clumsy parts and rebuild them" [5]. This "expect to throw one away" mentality can also be attributed to Fred Brooks [6]. The notion of building software quickly to prototype, to hand to the customer early, to create the shortest possible feedback loop between developer and customer-is an essential tenet of today's agile release planning. The oft repeated mantra "Release early, release often. And listen to your customers" is the result [7]. UNIX "simplicity" was the result of consolidation and "refactoring" to a simpler design from previous operating system efforts like compatible time-sharing system (CTSS) and Multics. In many ways, UNIX inherently manifests the notion best described by the author Antoine de Saint Exupéry "perfection is attained not when there is nothing more to add, but when there is nothing more to remove." The concept of "refactoring" is a central theme of the agile method and will become a key part of the SDN/NFV story later in this chapter. Refactoring or refining code to make it more stable comes from this UNIX philosophy, again from McIlroy who says, "The real hero of programming is the one who writes negative code." Building the Network of the Future FreeBSD BSD family NetBSD OpenBSD BSD (Berkeley Software Distribution) 4.4 Bill Joy SunOS 4.1.4 Darwin NextStep 3.3 10.11 Xenix os Apple Microsoft/SCO GNU/HurdK16 Richard Stallman Linux Minix Linus Torvalds Andrew S. Tanenbaum ResearchUNIX Bell Labs: Ken Thompson, Dennis Ritchie, et al. CommercialUNIX UnixWare Univel/SCO Solaris Sun/Oracle System III & V family HP-UX 11i V 3 6.5.30 FIGURE 17.2 Timeline for UNIX evolution. UNIX is also a meaningful first example of diverse community development. To quote Dennis Ritchie from the video UNIX: Making Computers Easier to Use-AT&T Archives Film from 1982, Bell Laboratories, "What we wanted to preserve, was not just a good programming envi- ronment in which to do programming. But a system around which a community could form fel- lowship We knew from experience that the essence of communal computin