a case study in open source software Selena Sol Public Domain Script Archive
"I am happy to say that we have been using your Web Calendar within our UNIX Systems Administration group for nearly 2 years now. Our group of 15 admins support over 100 servers here at "site 0" the software development center for the mammoth new Enterprise-wide Distributed System here at Boeing."
- Gene L. Huft of Boeing
In the summer of 1994, the Selena Sol Public Domain Script Archive went on-line with user documentation and source code that had been written by Eric Tachibana for use at the Electronic Frontier Foundation (EFF) website. The Archive was developed primarily out of a desire to provide documentation of web technologies and applications that Tachibana considered fundamental to the future web infrastructure.
Initially, the archive was to be a public service for other web application developers who were facing similar problems in the early days of the web revolution.
The idea was that no web application developer should duplicate research or expend energy solving a problem that had already been solved by someone else. If all web application developers worked together, Tachibana reasoned, they as a group, could advance with far greater efficiency and build a web infrastructure of which they could all be proud.
Furthermore, releasing public domain code ensured that all developers, regardless of race, gender, nationality, class, education, or creed, would have access to web applications and technology.
Joe Web's Fish Store, Tachibana believed, should have as much right to reliable software on the web as IBM or AT&T.
Finally, Tachibana figured that if he were lucky, people might help him improve the code.
Little did he know! The Archive Takes Off: Intellectual Property - Just Say No!
"I want to personally thank you for putting all these CGI scripts on the web. I am working on a website for my dad's custom tailoring business in Hong Kong. Your site is making a difference. And I'm glad to make my dad happy too." - Shirley ChangAlong with the similarly-oriented site run by Matt Wright, the Public Domain Script Archive was instantly a success in the growing web application development community.
The applications, which at that time included WebStore, WebBBS, WebResponder, WebGuestbook and SiteSearch, began to show up on hundreds of web sites on every continent. Scores of e-mail letters poured in from developers who were using the code and who wanted to report feature improvements, submit bug reports AND bug fixes, or who just wanted to say thank you.
By then, Tachibana had left the Electronic Frontier Foundation to work at The National Center for Human Genome Research. There he met Gunther Birznieks, and together they further developed the initial group of web scripts into a suite of CGI/Perl applications based on the initial code as well as the code, comments, and criticisms submitted by hundreds of developers in the ether.
The suite added a Database Management and Search Application, Groupware Calendar, Banner Rotator, Site Administration and Access Control Library, Animation Examples, a real-time Chat Application, and several other miscellaneous applications and development libraries in Perl and, in time, Java.
By 1996, most of the applications on the Archive had been revised four or five times each, with every iteration based upon the feedback received from the thousands of developers now using, installing, and customizing them.
These developers sent in a constant stream of feature wish lists, benchmark and efficiency reports, bug fixes, and security enhancements, as well as third-party extension code and supporting tools.
There was also several incredibly active discussion forums on which clients could ask each other questions, find freelance support, or simply talk about common usage issues such as advertising within a WebStore or better credit card validation services.
By this time, the popularity of the site was raising several eyebrows.
The site was awarded dozens of net achievement awards, was featured in several online and offline magazines, was mirrored on five continents, and eventually attracted the interests of publishers such as WAITE, M&T Press, and Wiley.
Together, and with several other authors, Tachibana and Birznieks went on to write Perl 5: How To, CGI For Commerce, Programming with AFC, CGI: How To, and the classic Instant Web Scripts with CGI/Perl that documented all the web applications in the archive.
"When people ask me whether open source is credible, I ask, 'Do you believe in the Internet?'" - Tim O'Reilly
All the while, Tachibana and Birznieks remained true to the ideals of information sharing. Even when they published books and magazine articles, they demanded contractually that all work would remain in the public domain. M&T Press even agreed to publish Instant Web Scripts with CGI/Perl online. Problems Arise! By 1997, Tachibana and Birznieks felt that the site had fulfilled its original mission.
However, a serious problem was emerging.
Specifically, both Birznieks and Tachibana were becoming overwhelmed with e-mails and opportunities generated by the archive. For example, despite the availability of complete FAQS and detailed documentation, Tachibana received over 100 e-mails every day with questions about web application development from specific customization questions, to general questions with technologies including SQL, HTML, CGI, and Java. Also, Birznieks and Tachibana were both inundated with freelance turnkey installation projects that began to eat away at all their spare time.
Meanwhile, both Tachibana and Birznieks realized that the applications in the archive needed to be rewritten in an object-oriented framework to take advantage of concurrent technologies being developed in the web application development community such as Perl 5, Active Server Pages, Servelets, Mod Perl, and other web technologies.
It also was clear that new methodologies were needed to increase scalability and enhance security. Additionally, a wizard was needed to make installation and customization more user-friendly.
To be frank, the original applications had never been designed to handle World Wide E-Commerce Web 2000.
Unfortunately, Birznieks and Tachibana both had full-time jobs that demanded their full-time attention. Maintaining the archive became quite frustrating as developers around the globe continued to clamor for solutions. The Free Software Solution
Free software is a matter of liberty, not price. To understand the concept, you should think of "free speech", not "free beer." - Richard Stallman (from GNU Website)
Then, in early 1998, Birznieks and Tachibana devised a possible solution to the dilemma. The two would leave their full-time jobs and devote all their time to developing the applications to an enterprise level.
However, true to the original ideals of the archive, they decided to form a company based upon the same ideals which had made the site so successful.
Users should continue to enjoy the freedom to download, use, modify and copy the software produced by the "for-profit" company just as they did when it was a public service website.
Fortunately, such a business model was not as absurd as it might sound. Several working and respected business/development models had grown up during the 80s and 90s based on the changes being wrought by the digital economy and which took for granted the idea of "free software." These new models incorporated, evolved from or grew up in parallel with the "Free Software" model developed by the Free Software Foundation in the mid-eighties.
Essentially, the new models of software development argue that it is possible to run a profitable company by granting your customers the ability to freely copy, distribute, or even change the software that you provide.
The Free Software Foundation puts it like this:
"Free software" refers to the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to three levels of freedom:
- The freedom to study how the program works and adapt it to your needs.
- The freedom to redistribute copies so you can share with your neighbor.
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
And "free" doesn't only refer to the "freedoms" granted the users. In many cases, free also refers to the price of the products. In today's economy (not just the software market), it is not unheard of to see companies giving away their technology for free.
In fact, some proponents of the new business/development models argue that this free distribution model, and similar models, will be the most successful models for an information-era economy, in which it is impossible to protect intellectual property in the form of products.
|"In regard to my own soft product, rock and roll songs, there is no question that the band I write them for, the Grateful Dead, has increased its popularity enormously by giving them away. We have been letting people tape our concerts since the early seventies, but instead of reducing the demand for our product, we are now the largest concert draw in America, a fact which is at least in part attributable to the popularity generated by those tapes." - John Perry Barlow|
The whole concept might sound a little odd, especially since we have all grown accustomed to the traditional business models, in which you invest capital into developing a product that you can later sell for a profit. Without selling a product, how can you make any money? And what's more, how can you afford to invest in product research and development in the first place?
Indeed, the free software models are fairly avant-garde and sometimes counter intuitive business models. However, examples of successful implementations of the models as well as successful variations of the models abound.
That is to say, these were not simply academic business models. Over the years, real-world implementations forced the models to take shape. By the late nineties there were a host of companies which represented a complex ecosystem of free software model "species."
Tachibana and Birznieks decided that the new company would follow in the footsteps of these other successful free software and quasi-free software companies that had already taken advantage of new business models.
So the two began researching business models oriented around free software.
Perhaps the best resources for Free Information Era Software
Development/Business Theory can be found in the following
Let's consider some of the important ones... The Red Hat Software Approach - Leveraging the Product Halo
"The ancillary market is the market. The software is free, but the manual is $10,000. That's no joke. Cygnus Solutions rakes in $20 million per year in revenues selling support for free UNIX-like software. Apache is free but you can buy support and upgrades..." - Kevin Kelly New Rules for the New EconomyConsider the case of Red Hat Software which produces Red Hat LINUX - a multi-million dollar company which adopted a fairly pristine implementation of the free software model. Red Hat makes the bulk of its profits not from subsidiary products to its free ones, but from the vast service sector (the "Product Halo") that develops "around" its free product.
If you go to the Red Hat website, you will see that Red Hat LINUX and many development tools are freely downloadable. If you read the intellectual property notice, you will see that they may also freely be resold. Finally, you will see that Red Hat will sell you the code as well as printed documentation on a CD-ROM.
So why would people buy from Red Hat at all if they could get the code themselves for free?
The reason is because there is something to be said for the "convenience" of a book and a CD-ROM. In fact, many clients prefer a book in their hands to online documentation and ftp access to source code. Even though people could get the code for free, many choose to buy it from Red Hat because it is simply convenient to do so.
Further, developers often complain that, though they are very happy with open source code, their managers will only accept something "in a box." Managers sometimes fall prey to the fallacy that open source code cannot be good code (We will discuss why this is a fallacy later on in this document). Instead, they feel better with something in their hands that they have paid for.
Nonetheless, although Red Hat's "convenience products" are profitable, they do not necessarily represent the majority of Red Hat's profit. Red Hat makes most of its money in another type of service, one based upon its reputation and experience.
Red Hat has gained a reputation for doing good business and for helping its customers solve their problems. Reputation, like status and experience, is vital. Customers often are willing to pay a little extra to make sure that their problems are solved by the best. In the end, hassles can cost more to an organization than a support fee. Who better to hire than the original developers themselves?
Red Hat, perhaps more than any other company to date, has done an incredible job at leveraging the product halo. In fact, they have been so successful that they can afford to maintain a research and development department of six full time developers working on theoretical tangents. The GNU Project - Free Software Purists Consider also The GNU Project that has been providing free software since the 80's.
Long before Red Hat entered the scene, GNU was writing and distributing volumes and volumes of high quality free software. In fact, if you are a UNIX developer, you most certainly use GNU products several times every day.
And like Red Hat, GNU sells the code formally as a convenience product as well as providing consulting services for related application development projects. Essentially, they use the free software side of their business to prove their capabilities and to develop tools that they can use on other projects. The Netscape Approach - Gaining Market Share
"...Ubiquity drives increasing returns in the network economy. The question becomes, What is the most cost-effective way to achieve ubiquity? And the answer is: give things away. Make them free.
Indeed we see many innovative companies in the new economy following the free. Microsoft gives away its Internet Explorer web browser. Netscape also gives away its browser, as well as its valuable source code. Qualcomm produces Eudora, the popular email program, as freeware in order to sell upgraded versions....And of course Sun passed Java out gratis, sending its stock up and launching a mini-industry of Java application developers." - Kevin Kelly from New Rules for the New Economy
Next, consider the case of Netscape Communications Corp. which in a few short years grew to become the envy of every web-based software company by giving away their Netscape Navigator product, and later the source code for that product, for free (to certain users).
By giving away their software, Netscape gained an incredible market share in a short time. And as Barlow and Dyson both show in their discussions of Intellectual Property in the Information Era, in the digital economy, market share is everything.
Netscape realized that the trick about software was that once a customer has grown accustomed to your software product he or she is less likely to switch to a competitor's product because of the cost of relearning and retooling. "If it ain't broke, then don't fix it," is the unspoken law of most IS departments around the globe. Thus, the first software product to capture a customer will be the software product that the customer will tend to stick with.
In the end, Netscape became synonymous with the World Wide Web and as a result, Netscape was able to sell its server product line (which was not at all free) with great success. Netscape Navigator essentially ran as a loss-leader for the Netscape Server product line and the company cleaned up.
Though this is not even close to a pristine implementation of free software according to the definitions set forward by the Free Software Foundation, it was a very successful version, and one of which we should all take heed. The use and management of free (in terms of price) software are important for free (not just in terms of price) software companies. Scriptics - Besting the Credibility Hurdle
"In early September 1998, the 500,000-plus software developers who rely on Tool Command Language, or Tcl (pronounced "tickle"), cheered Scriptics' launch of the first official development tools for the ten-year-old programming platform. Founded by Tcl creator John Ousterhout, Scriptics joins a slew of recent commercial ventures built on freeware, or software code available in the public domain. These businesses hope to cash in on the vast installed base of technologies that have been given away for many years. Supplying downloads to almost 50,000 users each month, Scriptics serves a market of programmers starved for Tcl tools, extensions, and support services." - Deborah Claymon, The Red Herring
Scriptics is a great example of a free software group which leveraged the reputation, respect and trust of years in the public service to form a company which brought corporate room credibility to an already awesome product.
TCL is a cross-platform reusable command scripting language which has been shepherded over the last decade by its creator John Ousterhout. Over the years it has developed a large body of dedicated supporters and clients. However, like many free software products, it suffered from a credibility problem. Large companies worried about investing in a purely free technology with no 1-800-SUPPORT number.
By forming Scriptics, Ousterhout brought the respectability Tcl needed to become a major force in application development. Scriptics also allowed Ousterhout to take advantage of the thousands of existing clients who were happy to "give back" to the people who provided them with the tools they needed to do their daily jobs. The Open Source Business Model!
The ability of the OSS [Open Source Software] process to collect and harness the collective IQ of thousands of individuals across the Internet is simply amazing. More importantly, OSS evangelization scales with the size of the Internet much faster than our own evangelization efforts appear to scale.
- Microsoft Internal Policy Memorandum
As you can see, there is quite a range of successful free software companies in the market today. There is also quite a range in the degree to which these companies adhere to the noble ideals of the free software movement.
Some companies, like GNU and Red Hat, adhere closely to the ideals of the free software ideology.
Others, such as Scriptics (as well as sendmail and ActiveState) have as Tim O'Reilly notes, "explored hybrid models which rely on [free software] ... for spreading the word, fostering innovation, improving product quality, and giving back to the community, but reserve certain products as value added so that they can make money and survive to further the cause."
Many more companies such as Netscape and Microsoft, seem to adopt the model only when convenient to do so.
However they implement the theories, these companies all provide useful examples.
Because, the range of actual implementations of the free software model is so broad, we found it useful to adopt the more broad term of "Open Source" which came into vogue in the mid 90s.
The Open Source Model and Free Software Model in theory are synonymous. However, the term open source came to be used to describe a larger set of companies which did not adhere to all the qualities of a free software company, but perhaps some or most of them.
Another reason we chose to adopt the term "open source" was because the term "free software" tended to scare off some people, especially investors and large clients.
Though "open source" was not necessarily the best term to describe the ideals of free software, it did tend to be better for board room discussions.
For these reasons we chose to call ourselves an open source company although we continue to support the ideals set forward by the Free Software Foundation and the free software movement. The Open Source Software Development Process
Recent case studies (the Internet) provide very dramatic evidence ... that commercial quality can be achieved / exceeded by OSS projects.
- Microsoft Internal Policy Memorandum
As you can see, there are many reasons why the open source business model works in the information age market place. But, perhaps more importantly to clients, the open source "software development" model also works. The Open Source Software Development process produces applications which equal or best applications produced in closed environments.
Let's look at why this is... Open Source is Robust Source
"It's a rare (and foolish) software outfit these days that does not introduce its wares into the free economy as a beta version in some fashion. Releasing incomplete "buggy" products is not cost-cutting desperation; it is the shrewdest way to complete a product when your customers are smarter than you are." - Kevin Kelly New Rules for the New Economy.The open source model produces extremely robust code. Think of it this way, our code has been in the public domain at thousands of sites for years. If there were serious bugs or security holes, they would most certainly have been found by now. In fact, over the years we have had many bugs and some security holes reported to us. These bugs we have fixed over time so that by now, our applications are extremely robust. Further, we have also had customers send in improved or more efficient versions of algorithms. Because the customer can see the inner workings, they can help us look for code inefficiencies.
Eric Raymond is one of the premier
supporters of Open Source Software Development. His site
is a warehouse of useful information. He makes the following
case for the robustness of open source code...
"Internet and Unix hackers, as a rule, already understand the technical case for open source quite well. It's a central part of our engineering tradition, part of our working method almost by instinct. It's how we made the Internet work....We all know how astonishingly reliable the running gears of the Internet are relative to their nearest commercial equivalents. TCP/IP, DNS, sendmail, Perl, Apache...these open-source programs have demonstrated a level of reliability and robustness under rapidly changing conditions (including a huge and rapid increase in the Internet's size) that, considered against the performance record of even the best closed commercial software, is nothing short of astonishing."
"...The reason the closed source model doesn't work is that security - breakers are a lot more motivated and persistent than good guys (who have lots of other things to worry about). The bad guys will find the holes whether source is open or closed.
Closed sources do three bad things. One: they create a false sense of security. Two: they mean that the good guys will not find holes and fix them. Three: they make it harder to distribute trustworthy fixes when a hole is revealed." - Eric Raymond of opensource.org
Eric sums it up pretty well. Open source ensures that your code is submitted to the most harsh and penetrating peer review possible. Such reviews include bug checking, security attacks, and benchmarking.
What is better is the fact that the people trying to over run your code are not hackers but customers! If a bug is detected, it is usually detected by a friend first.
And, as Eric Raymond says, open or closed, the "bad guys" will find the holes. The security through obscurity of closed source is only an illusory veil of security. Security hole announcements in such closed systems as Windows NT have been as regular as those announced for open source code such as sendmail. The big difference between the two lies in the emergency response time. The rate at which security holes are patched in open source companies is far shorter because the whole community can mobilize to deal with any emergency. Open Source Keeps a Company Small and Flexible
"If you give everyone source code, everyone becomes your engineer" - John Gage, chief scientist at Sun Microsystems.We are where we are today only because of all the hard work that has come out of the community of developers and users that has grown up around the code. These developers have tirelessly sent in their ideas for fixes, features and extension technologies. They have kept us close to them and we have always kept our ears open.
The fact that the network of developers around the applications has been so prolific is more than just gratifying, it is a crucial feature of the model.
The fact is that we could never hope to hire enough talented people to write all the code that this market will support. We could never afford to find office space for them and we could never hope to get them all to physically move from where they are to where we are. Even if we could manage that, actually hiring all those developers would bloat us into paralysis.
Fortunately, as Eric Raymond writes, "Even a small open-source project can muster more brains to improve a piece of software than most development shops can possibly afford."
We know from experience that every line of code you write for the community is returned many times over. The generosity of open source development is certainly a form of enlightened self interest. If you have a moment, check out some of the fabulous "hacks" that have been submitted back to us by the community. Open Source is Market Driven
"In the network economy, producing and consuming fuse into a single verb: prosuming" - Kevin Kelly New Rules for the New EconomyThere is another benefit of bringing your clients into the development process. You become extremely sensitive to the demands of the market.
There is no period of isolated research and development. The fact that the customers can play with the code means that they truly understand what is possible. They are the best source of direction that we could imagine since they are actually using the code to do work. And they, as a group of thousands, are endlessly, 24-7, demanding and inquisitive. The eXtropia Approach
"By releasing Open Source Software, you contribute to the overall health of the programming community...[however] You benefit from the entire ecosystem, not just from the input of the community into your own specific project." - Tim O'Reilly (www.oreilly.com/ask_tim November 21)
After doing our research, we started discussing our ideas with a select group of clients who we thought would give us useful input about how they, as clients, would like to see our business evolve.
We were initially very concerned that people would feel betrayed that we were moving from the not-for-profit sector into the corporate world. However, that is not at all what happened.
Every one of the interviewees expressed that they were thrilled about the evolution of our site and code to a more professional form and were happy that it would mean more regular and powerful upgrades to the applications.
The key of course, was how to develop a sustainable business model. How could we make enough money to afford to devote all our time to the project?
Check out why we named ourselves eXtropia! Leveraging the Product Halo and Gaining Market Share Well, as you can see from our Product Purchase Plans page, we developed several plans, most similar to Red Hat's "product halo."
We are selling two license agreements that provide customers with CD-ROM distributions, printed documentation and support. We also sell a larger support package that lasts longer than the license agreements.
Yet clients need not purchase the licenses at all. Our applications are still free for anyone to download and install. This is important because of our desire to remain true to the idea that everyone on the net, regardless of income should have equal access to the basic technologies of websites. Providing software at no price also helped us continue to maintain and expand our market share.
Because our applications are open source, clients are welcome to download applications for free and follow the installation documentation in order to get them working. However, the fact that the software could be obtained at no cost, did not mean that we did not "sell" products.
Although we are proud of the user-friendliness of our documentation, clients often find that installation and customization might take some time, especially if they have limited programming experience. The fact of the matter is that Web Applications are not exactly the easiest things to implement.
In the end, clients must ask themselves, "Do I want to spend my extra time learning to program or selling my products?" The answer is often that they do not want to learn programming. And that answer means a sale for us.
Besides our license and contract products, like GNU, we also have developed a host of support services such as training, tech support, turnkey installations and custom app development. The Care and Feeding of Networks: The Hub Model
"In the past two decades, largely because of the ease, speed and low cost with which information technology allows people to keep track of who's doing what, coordination has become faster, cheaper and easier. Economic logic favors outsourcing....Virtual enterprises can spring up overnight as networks of free agents come together for a single project. Costs and risks are distributed over an entire network....Nothing could be more flexible - ready to turn on a dime, to grab any new opportunity." - Robert Reich in Fast Company November 1998.We also created The eXtropia Developers Network (DevNet).
Originally, the intent of the DevNet was humble. However, the evolution of the DevNet over the life of the company has been astounding.
Originally, based upon what we knew about the market, we realized that once we seriously went forward with eXtropia, we would get far too many requests for custom app development and turnkey projects, in too rapid a succession, to possibly keep up with.
|At the time eXtropia first opened it's doors, we received an average of seven requests for contracts per week. During the first quarter of eXtropia's life, that number scaled to 20 per week. In the second quarter, we expect to see that scaling continue on its non-linear track.|
We also knew however, that we did not want to make the same mistakes that other startup IT companies make of scaling/staffing up too quickly. It was essential for us to stay loose and nimble, yet it was also essential for us to address the needs of the market.
We needed to "staff up" in order to meet the demand, but we did not want to hire, train, and provide office space for developers who if drawn from a single geographical locale would most certainly not represent the best of the web.
We needed to create a virtual distributed network of world-class developers who could be assigned individually or in commando programming teams anywhere in the world, for any number of very proprietary and tough projects. The Developers Network The DevNet was our solution.
At the outset, the DevNet worked like this. Developers were offered the chance (via a web page advertisement) to apply for positions in the network. The application process involved a developer submitting a resume and a list of references and/or code samples to us as email.
As applications came in, we reviewed the qualifications of applicants, browsed code or reference sites, and initiated email chats with candidates to get a feel for their personalities (in many cases of course, we already had known the applicants because they had been part of the eXtropia community for a long time).
If the applicant met our criteria, we would offer them a position in the DevNet.
Our criteria for accepting applicants went as follows:
If the developer accepted our invitation, they would pay a membership fee, and would then be accepted as a DevNet member.
So what does a DevNet member get for their membership fee?
Developers who joined the DevNet received a host of services such as training, free software and support, and easy access to us. However, the primary benefit of DevNet membership focussed around a job referral system and a members-only discussion forum.
Developers knew that their $1,000.00 investment would pay off because they would be getting a steady stream of contracts from us. Currently, DevNet members count on an average of 1 contract per week. Most contracts average between $500 - $1000 per project and rates across the DevNet are kept standard at $75 - $100.00 per hour.
As we said, aside from the job referral program, developers had the opportunity to participate in three members-only online discussion forums. The forums included:
The beauty of this is that members can rely on the core capabilities of other members. Why should one learn MSQL for example, when we have someone with that skill already in the group. Each member becomes a programmer with the skill set of the entire Network at their disposal.
And clients know that. Clients know that they are hiring more than a single developer but an entire network.
We also harness the collective knowledge of the network through our tutorial series. In short, every two to three weeks a developer is responsible for preparing a short online tutorial on some web-based technology for presentation to the DevNet membership.
The developer is also responsible for answering follow-up questions. Because we have capped our membership at 20 until the summer of 1999, each developer only has to prepare one tutorial per year, but has the benefit of learning a new topic every few weeks.
However, no less important than the job referrals and discussion fora, were the less obvious benefits to members...
Members gained the opportunity to work with "the best" web developers on the web. The Developer Network has a reputation. "If you want your job done right, done quickly, and done securely," clients like Franks Supply Co. say, "talk to the eXtropia Developer Network gang! They are worth every penny"
This reputation benefits everyone involved. As in real estate, if you get all the big names to setup shop on a strip of land, the value of everybody's investment goes up quickly.
The network also allows us to organize "commando programming" teams for "LARGE" corporate web site work that none of the developers could get or manage individually, but which pay a much greater amount of money.
Further, projects can pop up anywhere (in the US for now) and we can be relatively sure that we will be able to find a DevNet member on the ground.
Also web design firms can subcontract us out. This is an important feature of the DevNet. Just as each developer creates a link in our private network, so does the network as a whole create a link on a greater network of web professionals.
Many web design firms have chosen to work with us to expand their capabilities. They can focus on honing their design talents knowing that they can depend on us for outsourced backend development.
Members also gain a sense of security and team which can be very important to someone who has struck out on their own into the world of self-employed-dom.
Further, members have the benefit of seeing the new technology first. To a large part, we rely on the DevNet members to be our first line of beta testers! DevNet members gladly provide beta testing services for free because they will be the ones called upon to customize and install new libraries and applications. And because there is some competition out there, they have a special interest in getting to know the technology before anyone else does.
Finally, DevNet members have an especially profound impact on the direction we take with our company and products. Through their comments and discussions, we glean many important insights into how to better design our products. Though we are careful to be very sensitive to the outside world, because of their proximity, the voices of the DevNet members are always the loudest. What We Have Learned As we write this study, we are approaching the end of the first quarter of the existence of eXtropia. However, though only a short time has passed, we have learned a great deal. Granted, we as an engineering-based management team have learned all sorts of things about sales, marketing, management, finance, and law. Starting a software business has surprisingly little to do with creating software.
However, more interestingly, we have learned a great deal about how to run our own brand of open source software. Some of these things will be very useful to other companies in our situation. So to conclude this document, we would like to distill some of the knowledge we have gained. It is all about trust
"The network economy is founded on technology, but can only be built on relationships. Start with chips and end with trust" - Kevin Kelly, from New Rules for the New Economy.
Probably the most important lesson that we learned was that in a distributed network, like an open source community, or a decentralized network or developers, trust is central to all else.
Trust is essential because control is impossible.
What do we mean by this?
Well, the first thing to understand about networks is that they are anarchistic, decentralized, lawless, and shapeless creatures.
In a true network, there is absolutely no central authority which dictates communal direction. There is no structural basis upon which to form consensus. No laws, no leaders, no police force.
As in the case of the Internet, order in a true network must emerge from nothing but the interaction of fully independent network nodes (people or other networks in our case). As the science of complexity shows, emergence of order from nothing is possible, but sometimes counter intuitive.
Consider a beehive.
"The marvel of 'hive mind'," writes WIRED editor Kevin Kelly in his book Out of Control, "is that no one is in control, and yet an invisible hand governs, a hand that emerges from very dumb members. The marvel is that more is different. To generate a colony organism from a bug organism requires only that the bugs be multiplied so that there are many, many more of them, and that they communicate with each other. At some stage the level of complexity reaches a point where new categories like 'colony' can emerge from simple categories like 'bug'. Thus, there is nothing to be found in a beehive that is not submerged in a bee. And yet you can search a bee forever with cyclotron and fluoroscope, and you will never find the hive."
The hive emerges from the bees not because the bees intended to create the hive or because they were programmed to do so. The hive comes about as a property of the system created by many bees in a network.
The emergence of the hive from a jumble of bees is Extropy.
Networks that work, like beehives, for all their lack of authority, are not at all chaotic. However, their order is self-emergent rather than dictated by law or force.
I say networks "that work", because not all networks succeed.
Extropy is not at all guaranteed by collecting a horde of independent nodes and allowing them to communicate.
It is true that extropy depends on the free flow of information and the uninhibited interaction between the nodes. But it is also true that this in turn, depends on trust.
Each node must be able to trust other nodes in the network or they will not interact or communicate. Nodes must be sure that every other node is working for the benefit of the whole by facilitating the network, and not simply leeching.
Of course, "working for the benefit of the whole" is not some simplistic stereotypical call for a Marxist utopia of self-negation. Nodes can trust each other and work for the greater good of the collective while at the same time pursuing their own self interest.
This is because the network's collective strength can be leveraged by each node (like when a developer doesn't have to learn MSQL). In the post-industrial economy marked by hyper-speed, hyper-specialization, and hyper-customization, serving one's network is the smartest selfish strategy. it is enlightened self-interest.
Selfish actions, so long as they do not threaten the collective, are good and to be rewarded. After all, it is in the best interest of all the nodes to allow and to facilitate the growth of any other node in the network. As we said before, the value of any member's network membership increases as any other network member gains prestige.
It is only when network members are forced into a prisoner's dilemma that emergence of the network is threatened. The minute you cannot trust your back to the other network members is the minute the network stops generating a value greater than the sum of its parts.
That is, there is a right way to be selfish in a network and a wrong way. Network economies can be far more creative and lucrative than shortsighted selfishness-based models, but shortsighted nodes can certainly ruin the network by disrupting the ties of trust.
The trick in creating the self-emergent network is to structure it such that "good" selfish behavior and node interaction is supported and "bad" selfish behavior is punished. Trust in Job Assignment This rule was made clear to us early on when we were figuring out how to assign jobs to the developers in the network.
In the first weeks of eXtropia, we decided to post jobs to ALL the DevNet members as those jobs came in. We thought, somewhat idealistically, that jobs would somehow emergently, magically distribute themselves to the right developers. Members would decide amongst themselves who would do the job. Unfortunately, we did not get the desired results. No self-emergence occurred. Instead, this free-for-all style of job assignment turned out to undermine trust within the network.
For one, different developers were online with greater frequency than others. Also, each developer had different personal style. Some were far more aggressive than others. In the end, jobs would be grabbed up unfairly and not efficiently.
After a great deal of discussion among all the members, we decided to try the same idea on a smaller scale. We would assign jobs to three developers at a time. We thought that this methodology would give the client a better choice, would facilitate emergent order, but reduce the amount of unfairness in a free for all.
That method too, did not go over well. Clients were confused by multiple proposals and developers felt as if they were being pitted against each other when they did not want to be.
In the end, we decided on a simple random rotation system in which jobs would be assigned in a turnstyle order to the list of developers as they came in. The randomized system promoted fairness by its very structure. Members could feel as if they did not have to fight with their peers.
However, though structural randomness did promote trust, it did not promote fairness or efficiency.
For example, through the luck of the draw, we found that some developers would have streaks of bad luck and end up with a run of cruddy jobs. Others would end up with more work than they could handle. Further, random job assignment did not take advantage of the natural strengths within the network. A Sybase job was assigned to the next developer in the rotation not to the Sybase specialist
As a result, we modified the random turnstyle approach by increasing the discretion of the "job assignor". The job assignor was given the responsibility and authority to take a certain degree of liberty with the basic randomness. If a developer seemed to be getting shafted too often, they would get an extra job every now and then to make up for it. In the end, the developers need not make the same money from jobs, but should at least meet a minimum standard. Further, jobs could be assigned with a little more intelligence.
This modified random assignment system has worked very well. Over time, randomness modified by honesty and reason proved to facilitate an even greater degree of trust between members. That fact that job assignment was handled with reason and humanity, increased the respect the members had for the system. Trust and Ownership The next time we were forced to deal with issues of trust was when we faced the problem of how to deal with code developed by DevNet members. Specifically, within the open source community, how were we to deal with the ownership of original works.
Some of the DevNet members believed that all the code developed in the context of network jobs or the eXtropia application base should be "returned" to the Open Source community. In their minds, it was the responsibility of the DevNet to set an example for the outside world. Open Source should be embraced by those closest to the source. Further, they argued, too much of the development of the code was tied to the community for it to be commodified.
Others appreciated what eXtropia did and what open source stood for, but felt that they could not compete in the marketplace while supporting such high ideals. They wanted to keep code proprietary, or at least shared only within the DevNet so that they could extract some value from it while there was still value to be extracted.
The problem of ownership was in fact a general problem, even with developers outside the DevNet who were contributing code. The schism between the two camps caused quite a bit of tension and many developers felt used by others. The fact in an open source community is that there will be as many purely parasitic fringe members as their are true contributors.
In the end we took a very liberal perspective, and one which supported trust systematically. We decided that no one should be forced to do anything they were not absolutely comfortable doing. We, Gunther and Eric, would set a good example and continue to commit all our code to the public domain, but would not require anyone else to do so.
The good example and the extension of trust, as expected, had positive results.
In the end, the majority of code developed within the network was submitted to the public domain and those who did not, were accepted into the community nonetheless. This accepting of the rights of others glued the community together in a powerful way and later, those who worried about their code, ended up submitting it anyway in many cases because they saw from example that doing so did not hamstring them in the marketplace.
On a grander scale, our attitudes about open source gained us trust from the clients and general web development community as well. In fact, it could be argued that the seeming selflessness of public domain contribution was the primary factor in our success. Good will was paid back in trust and trust could be capitalized upon; Capitalized upon in ways that further supported trust.
The maxim we learned from the experience was that in the open source community, profit for profit's sake alone was not the right mission. Yet good will for good will's sake was not right either. An open source company, we discovered, must seek good will for profit's sake. For only by following an enlightened capitalistic path could we both bring positivity to the marketplace while still surviving in it. Software Shepherding
"There is another kind of skill not normally associated with software development which I think is as important as design cleverness to bazaar projects -- and it may be more important. A bazaar project coordinator or leader must have good people and communications skills." - Eric Raymond, from the Cathedral and the Bazaar
Once we had created a network structure which facilitated trust between members, we were faced with another dilemma.
Originally, we had assumed that software development would sort've take care of itself if we created the network. "Get them together, and it will be built," was our motto.
However, in reality, that model did not work. To organize a massive, distributed programming effort seemed to require some type of organization. Software applications did not simply emerge from a network, even if it were built for emergence.
The problem was determining exactly how to direct the developers. In discussions with our core team, and in researching open source development models through resources such as opensource.org, we identified three possibilities:
The Cathedral Model was actually most similar to the model used by Selena Sol's Script Archive in the early years. In this model, a core of developers writes applications and application libraries from start to finish. Once completed, this code was released to the general public. Bug fixes and enhancements would then be emailed back to the core team, and a second round of development would commence. With this approach, the only difference between a traditional software house (like Symantec or Microsoft) and an open source software house was the fact that the code was available to the client. This design process was the same
The Network Model (which was most similar to the model used by Selena Sol's Script Archive from years two through five) followed a different path. In this model, development was be opened up to all developers in the community and a central repository (website) would be used to distribute all the resultant code. This model was used successfully by the open source resource, CPAN.
Neither of these models worked for us in the long run however. The main problem with them was that neither of them scaled particularly well in our case.
As we said, during the first couple of years of the Selena Sol's Script Archive, the Cathedral model was used as the development model. Gunther and Eric would spend a certain amount of time interviewing customers, gathering feedback and bug reports, and investigating competitive products. Then, the two would go into seclusion while they brewed up the next versions of the applications.
However, we realized fairly quickly that the Cathedral model was not scalable at all because we did not have enough time to keep up with all the modifications requested from the community.
Further, because we kept code to ourselves during the development process, we got far too many things wrong. Either we would add options which clients didn't want, or we would not add options that clients did want. The Cathedral model became far too much work with far too little input.
The amorphous Network Model was meant to replace the Cathedral Model for us. By the third year, we found that we could rely on a avid and vibrant community of developers to send in their own modified versions of our code. In fact, we got thousands of lines of free code which went into our massive offsite resources list.
Unfortunately, the Network Model turned out to be unscalable as well because there was far too much duplication of work as well as schisms and inefficient sharing of ideas. There were dozens of developers all developing similar ideas in tandem, writing code which was almost, but not easily combinable.
Truthfully, in the later three years of the archives life, much less functionality was actually produced even though double or triple the amount of lines of code were added. eXtropia goes with the Hub Model By the time eXtropia was formed out of the Selena Sol Script Archive, we had realized that another development model was necessary.
The new model was the Hub Model (essentially like Eric Raymond's Bazaar Model but with a but more control exercised by the lead project developer) which we found to be the only way for us to manage a scalable open source project.
In the Hub model, a core team of developers provided open standards and sample implementations and documentation. These standards would be released and supported, but the community would be relied upon to implement the standards into real world applications.
This model seemed to take the best of both of the other models. On the one hand, we controlled the standards absolutely. However, we did so with care. We sought feedback from developers but at some point we ultimately made decision about architecture and direction, and the developers grew to trust us implicitly based upon our history of good decisions.
Good leadership was essential, but so long as that leadership was provided, the model produced very scalable, directed and efficient results.
The hub model with its focus on leadership, also had other unexpected benefits
For one, the hub model allowed for the network to be represented by a figurehead or a unified entity. This was of crucial importance for marketing and sales. Without a collective identity, the network found it difficult to advertise itself. The "Developers Network" was much less marketable than the "eXtropia DevNet".
Further, internally, the adoption of a central shepherd was an important rallying point for raising morale. The hub gave us all a banner to wave. Certainly, the network was its own complex creature, but people, need simplicity in order to get behind a cause. Having the eXtropia banner was what was needed. Redesigning the Code for the New Model Finally, settling on the Hub Model, had several major ramifications on the design of our applications. Click here to read about the technical changes.