He offered a quick history lesson highlighting that the people behind the early organization were competitors at different organizations, all with essentially the same job: to keep the Web server up! The code was created when the group agreed that the NCSA server (recall Mosaic?), despite many patches, was simply not doing the job.One fellow rewrote it in a modular form and the Apache server was essentially born.At that time, the goal for client and server software was to be both unique and interoperable.That's a sort of a contradiction.Apache therefore looked to be the "lowest common denominator" to solve the problems.The group looked to the Internet Engineering Task Force (IETF) to make that possible.Why? Focusing on supporting standards would mean the players could not stab each other in the back! Or, said another way, it encouraged "the no agenda" effect.
The Foundation had an unlikely sponsor: IBM.IBM realized the value of the code and wanted to license it.But, there was no one to speak to, let alone sign paperwork for contracts as this was a rough and tumble group of webmasters.So, IBM funded some meetings, some lawyers, and the Apache Software Foundation was on the map.Those lawyers were key; they insured a license that protected Apache programmers.It's a variant of the Berkeley Software Development (BSD) license.Essentially, it says, "here's the code, do what you want, but don't sue us.Oh, and if you put in anything with a patent into the code, you automatically grant us a license to it for perpetuity." The Foundation, van Gulik pointed out several times, is not about coding, it's about all this legal stuff.
That said, it's the community that makes Apache work, not the code. Further, it's the "formal processes" laid down that enables the community to work.Consider this: conflicts are resolved via "voting" which van Gulik noted, has nothing to do with voting.Basically, you can register a "+1" or "-1" on a question.The former means "yes, I agree," and commits the voter to make whatever the suggestion is, actually work."-1" is essentially the opposite, "I disagree" but obligates the voter to detail technically why he or she is against the suggestion and to suggest a better approach.(Now, you see why it has nothing to do with voting and everything to do with committing.)
It seems to work.Apache has 50,000 contributors (active), 1,025 committers and 135 members (long time committers).The server sees 4 million hits/day.1,000 lines of clean code are added per day.
One other thing that works is focusing on real problems (van Gulik calls them itches).If they are real problems then participants will be willing "to burn something" (money, time, etc.) to get them solved/fixed.That shows that the change really matters, not that you think it might matter to someone else (which, if you think about it often appears to be the commercial software model).
I was once chastised for addressing the origin of a company name; I'm going to do it again.I'd heard stories about Apache, but not the "real one." It turns out that one part of the Apache nation has a tradition of appointing a leader for a specific task for a short period of time. So, if there's a war to be fought, a "general" will be appointed (based on merit) to lead, only to step down soon afterward.That's how the Apache Foundation works, too.The presidency is a short term position, too.(How different is that from most technology companies?)
When it comes to EO/Geo/GIS, van Gulik is quick to note that perhaps this community should think hard before following Apache's lead.Why? First off, the user interface is important in most software in our arena.That's not such a key thing for a Web server and other Apache projects, and the process might not translate well.Further, our community likes solutions, not products and currently Apache is about delivering products.Finally, in our world, we like smart, clever, quick programmers.In Apache, they like slow, deliberate, robust, standards focused ones.
van Gulik's parting words of wisdom are valuable for both commercial and open source developers:
- Community first (always)
- Never skimp on legal
- Scratch your own itch