<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>How Software is Built &#187; apache</title>
	<atom:link href="http://howsoftwareisbuilt.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://howsoftwareisbuilt.com</link>
	<description></description>
	<lastBuildDate>Fri, 25 Jun 2010 19:53:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>2006-2007 </copyright>
		<managingEditor>scottswigart@technologyevangelism.com (How Software is Built)</managingEditor>
		<webMaster>scottswigart@technologyevangelism.com (How Software is Built)</webMaster>
		<category>posts</category>
		<ttl>1440</ttl>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary></itunes:summary>
		<itunes:author>How Software is Built</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>How Software is Built</itunes:name>
			<itunes:email>scottswigart@technologyevangelism.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://howsoftwareisbuilt.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://howsoftwareisbuilt.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>How Software is Built</title>
			<link>http://howsoftwareisbuilt.com</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Interview with Justin Erenkrantz &#8211; President &#8211; Apache Software Foundation &#8211; Part II</title>
		<link>http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/</link>
		<comments>http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 16:00:02 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Justin Erenkrantz]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell
Interviewee: Justin Erenkrantz
In this second part of a two part interview with Justin Erenkrantz we talked to him about:

How the Apache project ensures good collaboration.
The Apache Foundation&#8217;s philosphy of having no single person as the leader.
Apache&#8217;s security committee.
The process of removing someone from a position of responsibility within the Apache [...]]]></description>
			<content:encoded><![CDATA[<p><b>Interviewers:</b> <a href="http://howsoftwareisbuilt.com/about-scott-swigart/">Scott Swigart</a> and <a href="http://howsoftwareisbuilt.com/about-sean-campbell/">Sean Campbell</a></p>
<p><b>Interviewee:</b> <a href="http://howsoftwareisbuilt.com/about-justin-r-erenkrantz-president-of-the-apache-software-foundation/">Justin Erenkrantz</a></p>
<p>In this second part of a two part interview with Justin Erenkrantz we talked to him about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/#collaboration">How the Apache project ensures good collaboration.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/#nosingleleader">The Apache Foundation&#8217;s philosphy of having no single person as the leader.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/#security">Apache&#8217;s security committee.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/#firing">The process of removing someone from a position of responsibility within the Apache Foundation.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/#partofapache">What would make someone want to be part of the Apache Foundation&#8217;s group of projects.</a></li>
</ul>
<p><span id="more-129"></span></p>
<p><strong><a name="collaboration"></a>Scott  Swigart</strong>: &nbsp;In this part of the interview, we wanted to dig into some of  the tenets, if you would call it that, of the Apache way. And the first of  those of course is collaborative software development.</p>
<p>So talk a little bit, if you would, about how Apache does collaborative  software development. I&rsquo;m sure some things are very traditional and similar to  the way that other open source projects might do it, and there are probably  things that also might just be a little bit unique to Apache. So how do you try  to insure good collaboration?
</p>
<p><strong>Justin  Erenkrantz</strong>: &nbsp;So the main center point of all of the collaborative  software development that we do in Apache is the mailing list. That&#8217;s where  pretty much everything happens. As one of the guys mentioned before, the maxim  has been: &quot;If it didn&#8217;t happen on the mailing list, it didn&#8217;t  happen.&quot; And that generally tends to be true.</p>
<p>Basically, if you follow the mailing list for a particular project, then we&#8217;re  expecting that you should know what&#8217;s going on within the project. Within that,  those are pretty much all public lists. Everybody can subscribe, even people  who are committers, people who are just users, people who just work on another  project that may consume the Web server or maybe PHP modules or something like  that.</p>
<p>It&#8217;s pretty much an open forum. Anybody can voice their ideas. Generally  though, just the way things work, most of the traffic tends to be from the core  developers who are active at that time. The traffic patterns of the list  change, and you get an idea of how much discussion. You generally see peaks and  valleys for the mailing list discussion. Things get really heated or things are  just chugging along and there&#8217;s not much traffic on the list.</p>
<p>So that&#8217;s where all the discussion should happen. And then of course there is  the source code repository. And in Apache we always had the thought of having  shared repository. A lot of projects now are starting to &#8209;&#8209; Git and Mercurial  and all of these distributed version control systems to be centralized version  control systems.</p>
<p>And that&#8217;s something that, within Apache, that goes against what our thoughts  are, because we want to all be agreeing on, &quot;This is the Apache  version.&quot;</p>
<p><strong>Scott</strong>:  &nbsp;Sure, no problem.</p>
<p><a name="nosingleleader"></a>
<p><strong>Justin</strong>:  &nbsp;So there&#8217;s no leader within the ASF. There&#8217;s no person, if you look at  say, Linux and you say, &quot;This is Linux&#8217; tree,&quot; or this is Andrew&rsquo;s tree  or this is Alan&#8217;s tree. Instead there is just the Apache tree. So there&#8217;s  really no concept of, &quot;This is Justin&#8217;s tree,&quot; or someone else.</p>
<p><strong>Scott</strong>:  &nbsp;Is the feeling then that essentially there should just be intensive  discussion before something gets checked in? So when you&rsquo;ve reached a point of consensus,  it should get checked in rather than the way other projects work where  different things get checked into different people&#8217;s trees. And then when it&#8217;s time to build a release, you have to pull stuff from these different sources to  figure out what&#8217;s going to be in the release and what isn&#8217;t.</p>
<p><strong>Justin</strong>:  &nbsp;Right. So, generally, what tends to happen is there are two states a tree  can be in within Apache. One of them is &quot;commit then review.&quot; And  then there is &quot;review then commit.&quot; And you&#8217;ll see some projects  differ on particular trees.</p>
<p>For example for the HTTP Server, the trunk &#8209;&#8209; which is the main development &#8209;&#8209;  is usually always under the &quot;commit then review,&quot; which basically  means that anybody who has commit access can feel free to go and make changes  and they basically have the benefit of the doubt that the change is going to be  good. And there&#8217;s generally an implied threshold: that if you&#8217;re going to make  a really big change, go discuss it on the list. But if it&#8217;s a minor change or  adding a little feature, that&#8217;s probably not going to be controversial, go  ahead and commit that to trunk.</p>
<p>But for our stable releases, generally things that have already been released  and we&#8217;re doing maintenance on those, are under the &quot;review then  commit&quot; model. So that&#8217;s going to be RTC, and that means that any change  to those trees has to be pre&#8209;approved. That means you need to get three binding  votes from other committers to say, &quot;Yes, this is good change and no one  has vetoed it.&quot; Technically you would use a file called STATUS, just a plain  text file that some projects will use, that basically tracks all of the things  that are under discussion to be back&#8209;ported or added into this tree.</p>
<p><strong>Scott</strong>:  &nbsp;Got you. Like any open source project, and this one is democratic, there  is a vote to commit. Well, there is a vote if it is a release product. If it&#8217;s  not a release product and people later decide it wasn&#8217;t a good thing to do, it  can be reverted out.</p>
<p>And you mentioned before that part of your governance is that out of these 60&#8209;something  maintainers, one of them can essentially veto a change if they want to. So talk a little bit about how conflict resolution usually works. For example, when you  have people who are&mdash;and I understand it doesn&#8217;t happen often&mdash;adamant one way  and another person who&#8217;s adamant a different way. How do you see it play out  that those eventually get resolved and things move forward?</p>
<p><strong>Justin</strong>:  &nbsp;Generally what happens is, like before, the veto just tends to be a last  resort. So let&#8217;s just say that someone makes a change to the trunk and I don&#8217;t  like it. I might just say, &quot;You know, we should talk about this  change,&quot; or, &quot;Here&#8217;s the problem with this.&quot; Generally, the  person who has committed that says, &quot;Oh, yeah. Here&#8217;s why I did it this  way,&quot; and comes up with an explanation, and then through a process on the  mailing list, figures out and resolves those conflicts.</p>
<p>That&#8217;s what you tend to see happen. And it&#8217;s all tends to be, for the most  part, &quot;I&#8217;m sorry, I forgot about that particular corner case or  that.&quot; And everything tends to get resolved very naturally.</p>
<p>The veto tends to be when someone says, &quot;No. I have to do it this  way,&quot; and someone else says, &quot;No, that&#8217;s wrong.&quot; That&#8217;s  basically when the community is at risk of breaking down. But generally it  doesn&#8217;t get to that point. Everybody is, &quot;We&#8217;re all going to go in this  direction; this is the right direction for us to go in. We want to add this  feature. Let&#8217;s work through whatever issue you may have about this particular  commit.&quot;</p>
<p><strong>Scott</strong>:  &nbsp;One last thing before we move on to the next point. Other than the fact  that everybody has their own private tree, is there anything else about the  collaborative nature that you think is somewhat unique to Apache?</p>
<p><strong>Justin</strong>:  &nbsp;We tend to do a roll call before the release. So at this point there&#8217;s  been a review of everything. But then let&#8217;s just say that I want to release the  next Apache 2.4 or whatever. Then basically what I will do as a release manager  is say, &quot;OK, I&#8217;m marking this as 2.4,&quot; and I produce all the  artifacts. I produce the tarballs, [inaudible]generated files, whatever. And  then I send it to the list and say, &quot;Hey, is everybody happy with  that?&quot; And then that goes to a voting process.</p>
<p>There&#8217;s review at all stages, but there&#8217;s also a review at the point where you  do a release, and you have to get, at least, three people to approve a release.  One thing that&#8217;s different is that it&#8217;s not possible to veto a release. It&#8217;s  strictly majority rule on the release.</p>
<p><strong>Scott</strong>:  &nbsp;So in other words, there is veto capability on the individual check&#8209;ins. But,  as you said, when it comes down to doing a release it is a majority rule vote.</p>
<p><strong>Justin</strong>:  &nbsp;Yes. You&#8217;ll tend to see someone voting &#8216;no&#8217; on a release if it doesn&#8217;t  work on Linux or something, and generally you&#8217;ll see it get stalled and it then  gets fixed. But there have been a couple of cases when we did the release even  though we knew that it didn&#8217;t work on a particular platform, and so we made a  release note. But the veto does not apply to releases.</p>
<p><strong>Scott</strong>:  &nbsp;Interesting. So moving on to licensing, one of the key things with Apache  is the commercial&#8209;friendly standard license. Talk a little bit about what that  means.</p>
<p><strong>Justin</strong>:  &nbsp;Basically within Apache, we like to have a big tent where everybody can  come in and play with us. We think that the community that we developed within  Apache is going to be the motivation for you to stay involved. For example,  within the HTTP Server community, you have all these experts and Web servers,  and if you&#8217;re part of this community, you get the benefits from them. And so  there&#8217;s an incentive to play within the community, so that I don&#8217;t have to hire  five guys and do a whole team; I can leverage the other people within the  community.</p>
<p>But in turn, all those people who are part of the community say, &quot;Whatever  you want to do with the code is fine. We&#8217;re not going to get hung up if you  make it a commercial product or an open source project. We created it and it  served our needs, and if it serves your needs, that&#8217;s great.&quot;</p>
<p><strong>Scott</strong>:  &nbsp;What springs to mind are things like GPL. Am I seeing it right in that  Apache is more commercial&#8209;friendly than GPL, V2 or V3?</p>
<p><strong>Justin</strong>:  &nbsp;There are companies built around GPL licensed software. But what we tend  to see are two classes of GPL products: In one, there is a real community,  maybe within Linux, and they&#8217;re all happy to make all their changes available  to everybody, and that&#8217;s a very good community. The other community you tend to  see has a single stakeholder that has a prevailing interest in the GPL product,  and they basically have an unfair share.</p>
<p>You can see this with some of the GPL projects that require copyright  assignment. In order to participate, you license your changes in the GPL and  you have to give a copyright assignment to the principal stakeholder. Now they  are then free to release the commercial closed source based on your work  because they have the copyright or whatever legal mechanism. There is an imbalance  there when you look at those two.</p>
<p>Generally when you think about the GPL, you&#8217;re divided, with broad strokes,  into those two groups. This is a real community but the other groups are aware  and want to be clear about which one has a dominant role, and that&#8217;s one thing  within Apache we don&#8217;t like to see. As our projects go through incubation and  get added to the Foundation, one of the things we do is make sure that the  community is diverse. In fact, there is not a single dominant stakeholder that  can direct the project in any untoward way.</p>
<p><strong>Scott</strong>:  &nbsp;Right. I can make changes to it, distribute it as part of a commercial  product, and I would not be required to contribute those changes back to  Apache. But under a GPL license, any modifications made require you to make the  source code available. You cannot have closed source proprietary extensions or  modifications of it. Any modifications you make, you have to open source and it  has to be under the same license. So that&#8217;s the key differentiator?</p>
<p><strong>Justin</strong>:  &nbsp;Yeah, our philosophy is that the community is what&#8217;s going to bring you  and keep you there, and that&#8217;s why you&#8217;re going to stick around. If you  released a commercial product around one of our projects it&#8217;s going to be to  your benefit, to basically keep your commercial project as close to whatever  we&#8217;re releasing.</p>
<p><strong>Scott</strong>:  &nbsp;Right.</p>
<p><strong>Justin</strong>:  &nbsp;You can pick up all the bug fixes and whatever improvements; you get  those as a free rider. But in a sense, you are contributing whatever changes  you&#8217;re making voluntarily back into the greater community.</p>
<p><strong>Scott</strong>:  &nbsp;Yeah, that makes sense. Do you have examples of companies that have used  different Apache projects because of the commercial&#8209;friendly licensing, where  they probably wouldn&#8217;t have it if the license weren&#8217;t so commercial&#8209;friendly?  Is that a topic that comes up?</p>
<p><strong>Justin</strong>:  &nbsp;Absolutely. You see companies like IBM that release their versions of the  Apache Web server or Geronimo under different names, but in the core, they are  Apache projects. We&#8217;ll see that even with smaller companies such as Covalent  that does commercial support. Basically, they added in a couple of extra things  that provide support to their users.</p>
<p>One thing that the Apache community really does not focus on providing is 7/24  support. Covalent goes in with their business model and provides the support  and training around these particular Apache projects. You will see businesses  like JBoss using Tomcat. So you see all of these commercial companies using  things that are Apache projects under the covers.</p>
<p><strong>Scott</strong>:  &nbsp;Right, so that freedom has led people to be a lot more creative about how  they structure their business. They have a lot more options in how they  participate with the different Apache projects, how they contribute back and  how they structure their own products. What is the relationship between the  Apache Software Foundation and the Free Software Foundation? Is there any or  are those fairly separate endeavors?</p>
<p><strong>Justin</strong>:  &nbsp;There is no formal relationship. I&#8217;ve never had a conversation with  Richard Stallman, but I&#8217;ve had conversations with Bradley Kuhn who used to be,  at that time, the Executive Director of the Free Software Foundation. So  there&#8217;s an informal get&#8209;together of foundations to compare notes, and that&#8217;s  generally a very good thing. How do we keep our ears open to what Mozilla&#8217;s  doing? If they&#8217;re doing this new technique, then we can give them a call and  ask, &quot;What are you doing? We&#8217;d like to follow on it.&quot;</p>
<p>One thing we&#8217;ve been doing with the Eclipse is a joint conference. There&#8217;s  going to be a conference in Asia that&#8217;s now scheduled for 2008. So it&#8217;s a way  for us to get the communities talking to each other.</p>
<p><strong>Scott</strong>:  &nbsp;Sure. So basically, if I can summarize, you guys get together around  joint events and joint things where it makes sense. You share information  because you&#8217;re all part of the open source community. Philosophically you may  agree to disagree in terms of the details of licensing, commercial friendly,  and that kind of stuff.</p>
<p><strong>Justin</strong>:  &nbsp;Well and you ought to be using more&#8230;projects have different  circumstances. Apache&#8209;&#8209;we have a very vocal membership and we have this and you  compare that to let&#8217;s say the Mozilla which has a completely different  governance structure. But if you look at Brian Behlendorf, he&#8217;s been on the  Mozilla board for a very long time and he was one of the founders of Apache.</p>
<p><strong>Scott</strong>:  &nbsp;Gotcha.</p>
<p><strong>Justin</strong>:  &nbsp;So you have this intermingling of the communities. So someone like Brian Behlendorf  who was brought in through the Mozilla and says here&#8217;s how we did things within  Apache, and here&#8217;s his expertise and his experience that he got, he can share  that with the other people within Mozilla.</p>
<p><strong>Scott</strong>:  &nbsp;Gotcha, gotcha.</p>
<p><a name="security"></a>
<p><strong>Sean</strong>:  &nbsp;Let me refer to one of the other tenants of the Apache way. I&#8217;m curious  about this just because I was thinking about the conversation we were having.  To state the obvious, you&rsquo;re focused on producing software. I notice that you  have a security committee that&mdash;if I&#8217;m reading it right and for lack of a better  phrase&mdash;provides a service to all of the projects that are part of the  foundation. And it looks like those projects can turn to the security committee  and ask security related questions or possibly look for guidance from them,  regardless of whether they&#8217;re Tomcat or some other piece of the foundation? Is  that accurate or is that not accurate?</p>
<p><strong>Justin</strong>:  &nbsp;It&#8217;s somewhat so. We have a security team, which I believe is currently a  Board committee. But basically what they&#8217;re responsible for doing is ensuring  our security at Apache.org mailing address gets responded to. And these are  generally people who are very security savvy.</p>
<p>But there tends to be some people from Tomcat, from the HTTP Web server, from a  higher profile project on this internal mailing list. So let&#8217;s say that, to  give you an example, let&#8217;s say there was a security vulnerability in Derby and  they could parse to those reps and say, &quot;Hey, we have a security  vulnerability. What do we do?&quot; And so there&#8217;s expertise and, &quot;OK.  Here&#8217;s what you do. Here is your administrative contact. Make sure your mailing  list&#8230; Go talk to&#8230;&quot; Kind of a shared resource. But we&#8217;re not getting  the focus on producing the fixes for the project but it&#8217;ll be &quot;OK, here&#8217;s  the responsible disclosure policy and an attribution policy.&quot; So that&#8217;s  generally what their role is.</p>
<p>  <strong>Sean</strong>:  &nbsp; Are they providing fairly prescriptive guidance but just not down to the  &lsquo;I&rsquo;m going to change you&rsquo;re code&rsquo; level because they don&#8217;t know the individual  projects at that level? Would that group essentially be the center for  discussions around a security development lifecycle for the Apache Software Foundation?  And an attempt to pull those best practices together?</p>
<p>  <strong>Justin</strong>:  &nbsp;Yeah. I think basically our project concern&#8230;we have something. What&#8217;s  the process? What do we do? And that&#8217;s as an advisory role. OK, here&#8217;s the  process and the procedures to follow.</p>
<p><strong>Sean</strong>:  &nbsp;But it&#8217;s purely advisory, right? I mean one of the projects where they  feel that their code is &quot;secure enough&quot;, or they&#8217;ve looked at it long  enough or they feel that they&#8217;ve handled it. &nbsp;Then the advisory committee comes back and  says, &quot;Well, we really think you could take a look at this again.&quot;  That&#8217;s where the communication would stop and it would be up to the individual  project whether they want to take that under advisement or not.</p>
<p>  <strong>Justin</strong>:  &nbsp;Yeah. I think so. I think record security, can you maybe at that point  write back to your original reporter and say, &quot;We looked at it and we  don&#8217;t feel there&#8217;s a security vulnerability here.&quot; That may be&#8230;that has  happened where we look at things and we say, &quot;No. This is not an  issue.&quot; But generally, really the security team is more of a reactive. So  they&#8217;re not proactively performing security analysis on our code or anything  like that.</p>
<p><strong>Scott</strong>:  &nbsp;I just want to clarify. It sounds like they have a little bit of an all&#8209;up  policy for somebody sending an email to that address; somebody reports what  they perceive as vulnerability or reports some kind of issue. They do a little  air traffic control. They route it to the project.</p>
<p><strong>Justin</strong>:  &nbsp;Exactly, exactly.</p>
<p><strong>Scott</strong>:  &nbsp;There&#8217;s a general process that the different projects would follow. Basically  that sort of happens and that&#8217;s one of the things that the security group  advises the other projects on. Well this is generally a &#8216;way we do it&rsquo; sort of  thing.</p>
<p><strong>Sean</strong>:  &nbsp;Let&rsquo;s go to a different piece of the Apache way, the emphasis on a  technical&#8209;based interaction. One of the things that I find fascinating about  open&#8209;source projects is the way that they exorcise community members that maybe  aren&#8217;t following those rules.</p>
<p>  [laughter]</p>
<p><a name="firing"></a>
<p><strong>Sean</strong>:  &nbsp;Because we got some interesting responses when we talked to people about  it. It&#8217;s like, fine. We understand that everybody is an adult. We understand  that everybody will try to handle themselves in an appropriate manner. But if  anybody&#8217;s worked on a software project they know that not everybody does,  right? So&#8230;</p>
<p>  [laughter]</p>
<p><strong>Sean</strong>:  &nbsp;Considering that you can learn a lot from a story&hellip;if you&#8217;ve got a story  or two about either fully pulling the ejection handle on somebody that would be  interesting to hear? Or a scenario where it just took serious counseling to get  somebody pointed in the right direction.</p>
<p>  I would be curious to see how you guys handle that. You obviously have  procedures in place. But at times you have to go beyond those with some amount  of intervention and I&#8217;m just curious how that played out.</p>
<p><strong>Justin</strong>:  &nbsp;Yeah. So there&#8217;s one case that comes into mind but I&#8217;m trying to reserve  the right to figure out how much of this has been disclosed.</p>
<p><strong>Sean</strong>:  &nbsp;Yeah, Sure</p>
<p><strong>Justin</strong>:  &nbsp;So I&#8217;ll tell the story and then leave people&#8217;s names out of it but I have  to go back and see how much of this has been told. So recently within one of  our larger, well&#8209;known projects, there was a bout, to use the word, between two  committers. And they basically ended up vetoing each other on everything. It&#8217;s  like no, no, no and tempers got flared. And it got into a very unhealthy  situation. They&#8217;re two very strong&#8209;willed individuals.</p>
<p>  And basically what happened is the PMC, so it was the PMC responsible for this  particular activity, basically had to step in and say, &quot;OK; we need to  come up with some policy or come up with some new rules to get everybody back  to ground zero. So it wasn&#8217;t a matter of ejecting anybody. It was never really  an option that&#8230;basically what happened was they said, &quot;Here are the  ground rules. Here is&#8230;if you&#8217;re going to go do this you have to follow this  set of rules. If you&#8217;re going to go do that, you&#8217;ve got to go follow this set  of rules.&quot; Basically the community agreed to say we&#8217;re going to go and  we&#8217;re going to voluntarily adopt these rules. But as a settlement process; lots  of flames and a lot of innocent people getting&#8230;</p>
<p><strong>Sean</strong>:  &nbsp;Right.</p>
<p><strong>Justin</strong>:  &nbsp;&#8230;accused of things and that process. The other one that&#8217;s in our  history was a project called Avalon. And this is one that&#8217;s definitely well  known so this won&#8217;t be any issue about this one. Avalon was a container  framework. And what happened was two individuals just did not get along. And  they were ending up in what we would call a commit war, where they would  basically be reverting each other&#8217;s changes as soon as they came in. And it is  just this whole really poisonous environment and basically in that case, the  community wasn&#8217;t able to deal with it. And so basically what happened there was  they fractured.</p>
<p>  And so that one of the individuals went off and he took his code and you know,  we wished him luck and said have a nice life and he went off and then it was  kind of some other people came along and they did a project called Excalibur,  which was basically the remnants of this whole Avalon project. You will just  see if you look at the mailing list traffic, you will just see this giant peak  and then this sudden nothingness because the project got shut down because no  one could play well with each other.</p>
<p><strong>Sean</strong>:  &nbsp;Right.</p>
<p><strong>Justin</strong>:  &nbsp;By the way what it is interesting is some of the veterans of Avalon, they  really got involved in the greater Apache community, one of our new directors  this year. He was in the middle of all of this, but during that whole  experience, he was one of the people trying to keep things level and stuck  around and this year he got elected to the board of directors.</p>
<p><strong>Sean</strong>:  &nbsp;Since Apache is a large foundation, I&rsquo;m curious about a different point.  If you were a closed source company and you feel you are short on testers or short  of security experts, you simply go to HR and put out a requisition and  hopefully some good folks come back.</p>
<p>  So has the foundation had to answer requests from projects where they say,  &quot;OK, look, we think we are geniuses on nine out of 10 of the things we  need to do, but this one thing we really need people to help.&quot; How does  the foundation help with staffing up a project in this type of case?</p>
<p><strong>Justin</strong>:  &nbsp;It is more bottom&#8209;up than that I think in the sense of the culture that  we have. You will see some overlap between the HTTP Server committers and the  Tomcat committers because you will see that &#8209;&#8209; sometimes the Tomcat committers  came over and they say, &quot;Hey, we need some help with HTTP.&quot; Well  lucky us, we have some of the world&#8217;s foremost experts in HTTP server, and that  basically got them within the communities.</p>
<p>  So I think our community&#8217;s diverse enough to, &quot;Hey I am looking for a  person who knows SQL.&quot; OK, I am going to go on the Derby mailing list and  say, &quot;Hey, I need some help with SQL&quot; or for something for build  systems, I&#8217;ll go to Ant community. And there will be some of the people who are  the foremost experts in that. That&#8217;s actually one thing of having such a large  diverse community is that you can pretty much find someone who understands  something about something somewhere within the Foundation.</p>
<p><strong>Sean</strong>:  &nbsp; I figure that&#8217;s one of the advantages. You&#8217;ve got a massive talent base  but at the same time it is segmented into the project, so the Foundation can  help orient a little bit of that knowledge of where the talent base is.</p>
<p><strong>Justin</strong>:  &nbsp;Yeah and as I said if you look out the social graph and it is a weird mix  of people who are committers on Cocoon, maybe committers on Mina, then maybe on  Gump and so you will see that developers themselves, the committers aren&#8217;t  necessarily staying in their silo, there are some who do, but there are also  just as many who will go to other communities and work on other projects.</p>
<p><strong>Sean</strong>:  &nbsp; Well I have couple more questions but Scott can go ahead. I want to give  you an opportunity to jump back in.</p>
<p><strong>Scott</strong>:  &nbsp;So talk a little bit about standards because one of the other tenets or  pieces of philosophy is faithful implementation of standards. Talk a little bit  about what that means for Apache?</p>
<p><strong>Justin</strong>:  &nbsp;Right. So this was initially when we started off there was HTTP and there  was the IETF standards and that was when you have editor of the HTTP standard  is one of the people behind the code base, there is the knowledge is going both  ways in a sense is that we are that able to influence the standards process.  But at the same point we also have some of us involved with the standard  process and feeding those changes back and to the development and supporting  those standards.</p>
<p>  But since then, the initial, you see our participation within some of the key web  server specifications, then probably most importantly our participation in the  Java Community Process and that is, as you know, we have so many Java projects  and that so many of our projects are implementing some JSR specification and  our involvement within the JCP has been to ensure that we can implement the  specifications and we have projects have representation on these expert groups that  device these standards.</p>
<p><strong>Scott</strong>:  &nbsp;Right. So it isn&#8217;t just like the standard shows up and then you figure  out how to implement it. There is this two&#8209;way street where you are shaping the  standard because you guys have such a big, real world implementation. And  meanwhile, the standard is telling what you guys do because they have their own  stakeholders, but they are considering your recommendations and you want to  conform to what they eventually approve.</p>
<p><strong>Justin</strong>:  &nbsp;Correct.</p>
<p><strong>Scott</strong>:  &nbsp;Yeah, I don&#8217;t know. I don&#8217;t have anything else specific. Sean, do you?</p>
<p><strong>Sean</strong>:  &nbsp;No, not right now. I think this led us into some new stuff and from our  end, we really enjoyed chatting about it. Justin, do you have anything you&#8217;d  want to add or things you think we should address overall based on the theme of  where we were going?</p>
<p><strong>Justin</strong>:  &nbsp;No, I mean you did a good job of asking me the questions.</p>
<p><a name="partofapache"></a>
<p><strong>Scott</strong>:  &nbsp;I guess there is one final question. When somebody is starting or has an  open source project, they can pick the license they want &nbsp;they can do what they want for their  community, things like that. What makes people want to be, in your mind, an  Apache project? What is the draw I guess?</p>
<p><strong>Justin</strong>:  &nbsp;Well, I think from my perspective, the draw is we handle a lot of the  mundane governing structures and all this and the infrastructure and the  licenses. And that is all essentially managed and I think you see a lot of open  source projects like, &quot;Oh we need to go get a foundation.&quot;</p>
<p>  And that&#8217;s a lot of overhead, there is a lot of overhead to create a  corporation, handle donations and handle essential infrastructure and that is  what our goal at the Foundation at the broadest level is to provide support. So  that these people who are working on all these different projects all they have  to worry about is doing code. They don&#8217;t have to worry about, &quot;Oh I need  to go and buy a new server, how we are doing to deal with this donation or this  tax policy.&quot; We try to deal with all of that. So I think there is a  critical mass that works in our favor.</p>
<p><strong>Scott</strong>:  &nbsp;Right, right and let them focus on the piece of it that they really  enjoy, which is whatever this project is that they have come up with. They have  a passion, like you said, for not having to worry about all the housekeeping  stuff.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=129&type=feed" alt="" /><!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark this:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+II" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+II" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+II" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+II" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+II+@+http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://howsoftwareisbuilt.com/2008/01/31/interview-with-justin-erenkrantz-president-apache-software-foundation-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Justin Erenkrantz &#8211; President &#8211; Apache Software Foundation &#8211; Part I</title>
		<link>http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/</link>
		<comments>http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 17:08:19 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache software foundation]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[Justin Erenkrantz]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell
Interviewee: Justin Erenkrantz
In this interview with Justin Erenkrantz we talked to him about:

The Apache Foundation.
Project Management Committees and the Apache Foundation.
Some of the reasons Jason feels Apache has been so successful.
What other open source projects might look to Apache for in terms of inspiration due to Apache&#8217;s longevity.
The Apache Incubator [...]]]></description>
			<content:encoded><![CDATA[<p><b>Interviewers:</b> <a href="http://howsoftwareisbuilt.com/about-scott-swigart/">Scott Swigart</a> and <a href="http://howsoftwareisbuilt.com/about-sean-campbell/">Sean Campbell</a></p>
<p><b>Interviewee:</b> <a href="http://howsoftwareisbuilt.com/about-justin-r-erenkrantz-president-of-the-apache-software-foundation/">Justin Erenkrantz</a></p>
<p>In this interview with Justin Erenkrantz we talked to him about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#foundation">The Apache Foundation.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#projectmanagement">Project Management Committees and the Apache Foundation.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#apachesuccess">Some of the reasons Jason feels Apache has been so successful.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#inspiration">What other open source projects might look to Apache for in terms of inspiration due to Apache&#8217;s longevity.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#incubator">The Apache Incubator and it&#8217;s role as part of the Apache Software Foundation.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/#horizon">What is the on horizon for the Apache Web Server.</a></li>
</ul>
<p><span id="more-128"></span></p>
<p><strong>Justin</strong>:  &nbsp;So my name is Justin Erenkrantz. I&#8217;m currently president of the Apache  Software Foundation (ASF), also on the board of directors. And I&#8217;ve been a  contributor to the Apache HTTP Server, the Apache Portable Runtime, and  Subversion, and some other projects for quite a while now.</p>
<p><strong>Scott</strong>:  &nbsp;Talk a little bit about Apache and talk about how it&#8217;s built.</p>
<p><a name="foundation"></a><strong>Justin</strong>:  &nbsp;The Foundation as a whole has over 50 different projects. There&#8217;s the Web  server, Tomcat, SpamAssassin, Geronimo. There&#8217;s a whole variety of projects. So  there&#8217;s an overall Foundation, with committers for each project. They&#8217;re  relatively isolated. The fact that I have access and I work on HTTP Server  doesn&#8217;t mean that I have access to, say, Maven.</p>
<p>  Each project kind of gets its own merit. Our culture is a meritocracy, and so  we expect people to show up on the public mailing lists and start contributing,  and eventually they&#8217;ll be recognized. Eventually they&#8217;ll get a vote, and this  vote will allow them to be able to commit (code). Across the Foundation, we  have about almost 1,600 committers that can commit to some of the 50&#8209;something  projects. And with that, you get to make changes.</p>
<p>  You also get something called a veto, which is something that we can probably talk  about a little bit later. That&#8217;s one of the core governance structures that we  have. There&#8217;s also a thing called the Project Management Committees, and those  are the groups that are responsible for each one of those projects.</p>
<p>  Above that is the board of directors. And in comparison with some of the other  open source organizations, our board at Apache doesn&#8217;t get involved with  technical details. We&#8217;re not going to get in and say, &quot;Oh, you need to  change this variable name.&quot; That&#8217;s not at all what we do. We&#8217;re just there  to make sure the organization is running, make sure that everybody&#8217;s happy and  getting along. You won&#8217;t see a director really getting involved in a technical  discussion, unless they&#8217;re a part of that project to begin with.</p>
<p>  <strong>Scott</strong>: &nbsp;Does the board provide more of a steering functionality,  then?</p>
<p><strong>Justin</strong>:  &nbsp;No, not even that. We&#8217;re almost completely hands&#8209;off. There are times  when personality clashes happen in each project, and try to mediate situations.  Again, we&#8217;re not going to make technical decisions. <br />
There  are some things that are centralized. So one of my responsibilities, as  president, is I&#8217;m responsible for the day&#8209;to&#8209;day operations of the Foundation.  We have a Subversion server. We have issue tracking. We have websites. All of  that is centrally managed by our infrastructure, too.</p>
<p><strong>Scott</strong>:  &nbsp;One of the things you mentioned was votes and vetoes as the way the  project is governed. So expand on that a little bit. How does that come into  play?</p>
<p><a name="projectmanagement"></a><strong>Justin</strong>:  &nbsp;For example, there&#8217;s the HTTP Server project. Within that, it&#8217;s governed  by a Project Management Committee, a PMC. Looking at your past interviews,  other people have mentioned this. This kind of structure has replicated itself  on how we have it at Apache.</p>
<p>  These are groups of committers who are responsible for the project. On HTTP  Server, there are maybe about 60 to 70 people on the PMC. Every single one of  those people has what we call a binding vote. The votes are used in two main  ways. </p>
<p>  The first way is for release. Within Apache, across any of the projects &#8212; this  is one of the hard and fast rules &#8212; there must be three binding votes before  it can be released. That means we must find three people out of 60 people on  HTTP Server to say, &quot;Yep, this is a good release. We&#8217;re going to put the  Apache brand on it. It&#8217;s going to be the &lsquo;Apache HTTP Server&rsquo;.&quot; That&#8217;s the  release part of the vote.</p>
<p>  The other part is a veto. If even one of those 60 people say, &quot;This change  is bad, I&#8217;m going to veto it,&quot; that means the change doesn&#8217;t make it in. </p>
<p>  One of the ASF&rsquo;s founders, Roy Fielding, refers to it as a kind of a shot gun.  It&#8217;s kind of like, &quot;OK, I&#8217;m done discussing this with you. You&#8217;re not  listening to reason. Veto. Stop. We&#8217;re not going any further.&quot;</p>
<p>  And it&#8217;s usually a last resort. Vetos are uncommon. They&#8217;re not something that  happens every week or every month. Generally, if there does happen to be a lot  of vetoes, it means that people aren&#8217;t willing to compromise. So, that may be  something where maybe the Board of Directors might say, &quot;Hey, you know, we  might keep a close eye on it. Is there anything you need to talk about, do you  need any help to resolve this&#8230;&quot;</p>
<p>But, generally vetoes are relatively rare but they do give a power to the 60  people to say, &quot;You know what, there&#8217;s not going to be any change that I  disagree with, there&#8217;s not going to be anything where I say &#8216;Oh my God, I can&#8217;t  live with this change being made&#8217;.&quot; So that&#8217;s an enormous power and it&#8217;s  given to the members of the PMC.</p>
<p><strong>Sean</strong>:  &nbsp;We found these nuclear options in place across many projects, but they  don&#8217;t get used very often. It that involvement in open source takes  considerable time and you do it because you believe in moving the project  forward. It seems like going into this, people know that the only way to make  progress is by consensus. No one person is just going to get their way. And if  they really want to, they have another option, which is to go fork the source.  But that has extremely high barriers also.</p>
<p><strong>Justin</strong>:  &nbsp;Yeah, absolutely. But as I said, generally the vetoes tend to be very  rare. It&#8217;s almost like mutually assured destruction. That&#8217;s the point. One thing  that has happened a couple of times over the 10 or 11 years of the HTTP Server  Project, is where there were vetoes on both sides. &quot;We&#8217;ve got to do it  this way. No, we&#8217;ve got to do it that way&quot;. There was this huge flame war  for a couple of weeks and then they finally said, &quot;You know what, we&#8217;re  not going to agree&quot;. They even had a telephone call. They were doing  everything, it was just this big mess. And eventually they said, &quot;You know  what, we&#8217;re just going to leave it to a vote. We can&#8217;t agree, we need to move  forwards, this is blocking us. OK, we&#8217;ll go ahead and resolve this, whatever  way the vote may turn out&quot;.</p>
<p>  <strong>Scott</strong>: &nbsp;Talk a little about the history of Apache. How did it get  its start and what are some of the major evolutions it&#8217;s had getting to the present  point?</p>
<p><strong>Justin</strong>:  &nbsp;Apache has its roots back in the early days of the World Wide Web. The  story begins with NCSA Web server from Illinois Urbana&#8209;Champaign. They were  running the NCSA Web server. Eventually, a lot of people left to go to  Netscape. The NCSA code eventually got abandoned, more or less. I think there  were nine people who found each other on Usenet and said, &quot;Hey, I have a  patch for NCSA. OK. Why don&#8217;t we start trading patches?&quot;</p>
<p>  They got together and they started to exchange patches and start coming up with  a new version of this NCSA service. They started taking it in this new  direction. They started saying &quot;OK. Maybe we should get another group  going.&quot; So they founded something called the Apache Group. It was an  informal thing. They did that for about four or five years, starting in &#8216;93 or  &#8216;92 (started in Feb &rsquo;95) Eventually they got to the point where other people  said, &quot;Hey, we like what you are doing.&quot; </p>
<p>  By this point Apache had already gone through, [inaudible] a Web server, and  made it up to version 1.2. They created The Apache Software Foundation in 1999,  and started doing things besides just a Web server.</p>
<p>That was the start of the Apache Software Foundation. The early initial project  was the Web server, and that is still what a lot of people think Apache is. Now  you have close to 60 projects. </p>
<p><a name="apachesuccess"></a><strong>Scott</strong>:  &nbsp;Focusing on the Apache Web Server, what are some of the secrets of its  success?</p>
<p><strong>Justin</strong>:  &nbsp;For the web server, more than anything, it&#8217;s been the way we designed and  supported all the standards. And it&#8217;s free. That was the tagline that Roy  Fielding had on his website for a long time, &quot;Apache, the best web server  money can&#8217;t buy.&quot;</p>
<p>One thing that really speaks well of our community has been the lack of forks.  The community embraces anybody who shows up. The project has evolved and  widened, from just the Web server itself, where people have wanted to do new  things. People wanted to do an FTP server, a mail server. It can do all those  things today. The community has been characterized by being willing to be open  to just about anything.</p>
<p><strong>Scott</strong>:  &nbsp;It seems like open source projects that are modular do better because  working on the core of an open source project might have a high bar. If it&#8217;s  modular, you can write modules without going through the scrutiny of submitting  code to the core. Modules give you a way to get your feet wet and participate.  At the same time you need a really healthy community too. It is the personalities  and way the governance structure is set up around it. It has to be really  healthy as well. Just to say it back in my own words, those two things seem  like they came together with Apache&hellip;</p>
<p><strong>Justin</strong>:  &nbsp;Yeah, and if you look at one of the key evolution points between the  original NCSA server and Apache, it&#8217;s when (early Apache developer) Robert Thau  modularized the whole thing one weekend. By and large, most of what he did 10,  12, 13 years ago is still present in the code base and technical architecture.  By modularizing, he did a really good job of cleaning up the earlier NCSA code  base.</p>
<p><strong>Scott</strong>:  &nbsp;So what is version 2 all about?</p>
<p><strong>Justin</strong>:  &nbsp;Version 2 was all about threading and portability. With Apache 1.3 they  added Win32, Netware, and OS/2 support. </p>
<p>  Version  2 started out with a number of internal forks. One of them looked at Netscape&#8217;s  portability runtime. Other developers did their own portability library,  implementing the same function on three platforms and hiding the implementation  details.&quot; </p>
<p>There ended up being a licensing dispute with the Netscape/Mozilla guys that  prohibited the Apache guys from using the NSPR runtime. That spawned the Apache  Portable Runtime project. That&#8217;s a lot of different projects now, but if you  look at why it happened, it had to do with the licensing issue. If you look at  the Foundation now, I think one of the things we are well known for is the  terms of our licensing.&nbsp; It&#8217;s a key  differentiator from, say, the Free Software Foundation.</p>
<p><strong>Scott</strong>:  &nbsp;Right, right.</p>
<p><strong>Sean</strong>:  &nbsp;Apache&#8217;s been around for a really long time, and it&#8217;s obviously seen as  one of the more successful open source projects, to say the least. What do you  think other open source projects look to Apache for in terms of inspiration  when they&#8217;re starting up? </p>
<p><a name="inspiration"></a><strong>Justin</strong>:  &nbsp;I think by and large, what you see most people copying are the governance  structures and the licensing. Those are two things projects have been copying.  I think you can see that in Eclipse: they almost use some of the exact same  terminology. </p>
<p><strong>Scott</strong>:  &nbsp;You still there?</p>
<p><strong>Sean</strong>:  &nbsp;One of the things you mentioned earlier that has always been intriguing  to me, was portability. I can see that it&#8217;s really important for Apache to be  portable between different Linux flavors, and maybe even be portable to  embedded devices and things like that. How important is it, from a practical  standpoint, that Apache runs on more than just Linux?</p>
<p><strong>Justin</strong>:  &nbsp;Extremely important. We have contributors who are only interested in  supporting a NetWare or Windows or OS/2, even BeOS in the past. It&#8217;s where  we&#8217;ve gotten some of the diversity of the community. It&#8217;s a hook to get people  into the community. &quot;Here&#8217;s a little something I know about, I know my operating  system, and I&#8217;ll contribute this patch. Hey, there&#8217;s something else that may  not be platform&#8209;specific.&quot;</p>
<p><strong>Scott</strong>:  &nbsp;Does Apache take the standpoint that it should run equally well across  operating systems? OpenOffice, for example, wants to be pretty much the same  OpenOffice regardless of where it&#8217;s running. Does Apache run differently  depending on&hellip;</p>
<p><strong>Justin</strong>:  &nbsp;Absolutely differently. Basically, our approach is in whatever platforms  people want to maintain, that&#8217;s what gets supported. By and large, on the  Apache HTTP Server, we have one guy who does the Win32, and it&#8217;s been his baby  for many, many years. There are other people who contributed a little bit to  the Win32, but he&#8217;s this one person who had been the individual who is  responsible for it.</p>
<p>It&#8217;s not a dictate that, &quot;Oh we have to support that.&quot; If someone is  interested in supporting an OS, great! We&#8217;re not going to stop them, but it&#8217;s  not going to be a mission statement, that we have to support all these  platforms equally. </p>
<p>  Actually,  if you do look at our HTTP server mission statement, it says, &quot;Apache HTTP  Server Project is an effort to develop and maintain an open source HTTP server  for modern operating systems including Unix and Windows NT.&quot; So, it&#8217;s in  our mission statement, but the only reason it&#8217;s there is because we have the  contributors to provide that support.</p>
<p><strong>Scott</strong>:  &nbsp;One other thing that varies from project to project is where the code  comes from. If you take a look at MySQL, pretty much everybody working on it  works for the MySQL company. If you look at other things like the Linux kernel,  a lot of that comes from corporate developers: IBM, Red Hat and a lot of  people. Do you have a sense for where the Apache code comes from? How much of  it is from corporate&#8209;sponsored developers versus the proverbial guy&#8209;in&#8209;his&#8209;garage?</p>
<p><strong>Justin</strong>:  &nbsp;I think it comes from a wide number of sources. What you will see is that  contributors remain the same even when they move from job to job. That&#8217;s  definitely been the case within the HTTP Server, that&#8217;s been the case for some  of these older projects as well. One day they may be working for IBM, the next  day they may be working for Red Hat, and then they may be working for some  other company. They may be working for Google, maybe doing it on the side,  that&#8217;s what you tend to see. Some of these contributors may have started out  working at Sun or HP, then they move but they&#8217;re still working on it. They  still contribute to the project.</p>
<p><strong>Scott</strong>:  &nbsp;There are certain people who look at open source and they think it&#8217;s all written  by people in their garages, contributing. Other people look at it and say,  &quot;It&#8217;s all written by people working for corporations.&quot; How important  do you think big corporate sponsorship is to a project like Apache, and does  that also create certain challenges for the project?</p>
<p><strong>Justin</strong>:  &nbsp;It&#8217;s a balance. You see some people who are getting paid to work on it.  They work on it all day during normal business hours.</p>
<p>  Then you see people who are the exact opposite, who may be working as a system  administrator or something else, and they only time that they can work on it is  on the weekends. So you see the overlap.</p>
<p>  One of the key things in Apache, another quote from Roy Fielding is, &quot;If  it didn&#8217;t happen on the mailing lists, it didn&#8217;t happen.&quot; All of the  discussions, all of the decisions, have to be made on our published mailing  list. That allows people who may be in different time zones, or different work  schedules, to coordinate through this mailing list.</p>
<p>They can read it during the day when they&#8217;re at work, during the night when  they&#8217;re at home, whatever works for them. That way, decisions aren&#8217;t made in a  face&#8209;to&#8209;face meeting, or a call, or an IRC, all the decisions have to happen on  a mailing list.</p>
<p><strong>Scott</strong>:  &nbsp;So IBM, just to take a big company name, can&#8217;t get something into Apache  just because they&#8217;re IBM and they want it. If one person out of sixty people  vetoes it, it doesn&#8217;t really matter how badly a big company wanted certain code  in, it&#8217;s not going in.</p>
<p><a name="incubator"></a><strong>Justin</strong>:  &nbsp;That&#8217;s right. The other aspect of it, the thing Apache has been  addressing the last couple of years, is how new projects come into Apache  through something called the ASF Incubator. This is about how they operate as  an Apache project. They have to get all of the legal paperwork in place, so we  can say, &quot;Yes, we can release this under the common Apache license.&quot;  That&#8217;s how we are trying to get new projects, and that&#8217;s why you&#8217;re seeing  growth in the number of our projects, because incubator keeps spinning out new  projects.</p>
<p>  It&#8217;s always a concern that in order to  graduate from incubator and become a full&#8209;fledged project, you have to have  diversity. Basically, you can&#8217;t have any one company dominate the project.</p>
<p>The rule we use, that you see pop&#8209;up again and again in Apache, is the rule of  three. There must be at least three committers that are diverse. The discussion  that is going on right now is, &quot;What is the definition of diverse?&quot;  An example: &quot;Well, I work for IBM, and I work on this project full&#8209;time,  but there&#8217;s another guy from a completely different division who isn&#8217;t getting  paid to do this who&#8217;s also working on it.&quot; Should that be counted as a  separate individual? That is a discussion now. Some of these companies are so  big, it&#8217;s like the old joke of, &quot;Oh, you&#8217;re from London!&nbsp; You must know so-and-so.&quot; </p>
<p><strong>Scott</strong>:  &nbsp;In open source projects what gets checked in is the source code. With  Apache, it looks like there&#8217;s this thing called the Apache HTTP Test  Project.&nbsp; Is that essentially like a test  suite for Apache?</p>
<p><strong>Justin</strong>:  &nbsp;Yes. Yes it is.</p>
<p><strong>Scott</strong>:  &nbsp;OK. And what&#8217;s that focused on? Is that mainly functional testing?</p>
<p><strong>Justin</strong>:  &nbsp;Yeah, it&#8217;s basically a Perl&#8209;driven test suite, originally from the Mod  Perl guys. They had this whole Apache test tool kit that they used as a kind of  smoke test. And we said, &quot;Hey, we&rsquo;d like to take that.&quot; And we  extended it from there.</p>
<p>  Generally, what you&#8217;ll see is you&#8217;ll see people will use that as a kind of  smoke test before they do a release. We talked earlier before about that you  need to have three plus one in order to do a release. But we haven&#8217;t said  anything about how people make up their minds, and say, &quot;Yes, release  this.&quot; And so generally what people do is they run tests on their favorite  platform.</p>
<p>  One of the things that we did with 2.0, and still do to some extent is  &quot;eat our own dogfood.&quot;&nbsp; In the  early days in of the 2.0 series for the Apache HTTP Server, we would say,  &quot;OK, we have a release candidate. We&#8217;re going to put it up on Apache.org.  We&#8217;re going to go run it for 72 hours and it can&#8217;t crash.&quot;</p>
<p>Basically that was kind of another way of doing the acceptance testing. Saying,  &quot;OK, we can run it on a site that gets this much traffic. It didn&#8217;t crash  so it&#8217;s probably going to be OK for you.&quot;</p>
<p><strong>Scott</strong>:  Are there tests specifically looking for vulnerabilities like buffer overruns,  or is that really outside of the scope&#8230;</p>
<p><strong>Justin</strong>:  &nbsp;In the past when there&#8217;s been some type of buffer overflow, or some type  of CDE vulnerability, generally you write and check in a test to make sure it  won&#8217;t show back up in regression.&nbsp; I  think that basically depends on if we can come up with an easy reproducible  test case.</p>
<p>But I think you won&#8217;t see some test cases there that are typically for the  vulnerabilities.</p>
<p><strong>Scott</strong>:  &nbsp;A while back we talked to Michael Howard, who&#8217;s a security guru at  Microsoft.&nbsp; There&#8217;s a lot of things they  do, but one in particular was banning certain APIs like strcpy because they  were just inherently vulnerable.</p>
<p><strong>Justin</strong>:  &nbsp;Yeah. Basically we do some things and put them in Apache 2.0 with the APR  path <span class="style1">(code base). [sp]</span> <br />
  If  somebody actually tries to call these functions, it&#8217;s going to expand onto,  &quot;Why are you trying to do this?&quot; There have been some cases where we  put it in the file to say, &quot;Don&#8217;t do this. Don&#8217;t call this.&quot; Or say,  &quot;Oh you&#8217;re going to call this? Well then we&#8217;re going redirect you to a  safer version.&quot;</p>
<p>  But, we don&#8217;t have the flexibility of say a Microsoft, and say, &quot;Oh we  want to have this new security API in the operating system.&quot; That&#8217;s not  something that we have influence on.</p>
<p>We generally have to look into the constraints of the operating system and work  with that.<strong></strong></p>
<p><strong>Scott</strong>:  &nbsp;Sure.</p>
<p><strong>Justin</strong>:  &nbsp;Over the past few years, I think there have only been one or two cases  where there were remote root exploits, and that speaks well for us.</p>
<p><strong>Scott</strong>:  &nbsp;When people are posting patches, are the security implications discussed  on the mailing list?</p>
<p><strong>Justin</strong>:  &nbsp;Oh, absolutely. You&#8217;ll get people saying, &quot;Hey there&#8217;s something  with this vulnerability, or this will break this or that.&quot;&nbsp; So, yeah there&#8217;s this constant vigilance for  the security.</p>
<p><strong>Scott</strong>:  &nbsp;Are there a lot of security-related tests that are put in proactively? I  hear about things like &quot;fuzz testing&quot; and other proactive ways to  probe the surface area for vulnerabilities. Does that kind of thing happen&#8230;.</p>
<p><strong>Justin</strong>:  &nbsp;There are security product providers, Coverity is the one that pops to my  mind. They&#8217;ll say, &quot;Hey, we ran our tool on your code and here&#8217;s a report  of vulnerabilities.&quot; We take a look at the reports and say, &quot;Thank  you very much.&quot; And then analyze them ourselves. </p>
<p>  But it&#8217;s really triggered by what the committers are interested in. We&#8217;ll see  committers who are very interested in conformance to the protocol specs. We&#8217;ll  see people who are interested in security, people who are interested in  performance, etc.</p>
<p>But we don&#8217;t tell the committers what to be interested in from the top&#8209;down.  It&#8217;s more like, &quot;John is interested in security so he&#8217;s really focused on  tying up all the security issues.&quot;</p>
<p><strong>Scott</strong>:  &nbsp;I&#8217;ve bumped into companies like Coverity that use open source to market  their tools because open-source provides a large, free code base they can throw  at their tool.</p>
<p><strong>Justin</strong>:  &nbsp;Absolutely.<strong> </strong>Yeah, I remember when we first looked at Coverity, the  amount of false positives were generally high.&nbsp;  We&#8217;d look at the code and determine, &quot;No, there isn&#8217;t a  vulnerability there. What the tool is reporting can&#8217;t actually happen.&quot;  There were maybe a handful of actual things that we said, &quot;Yes this is an  issue&quot;.</p>
<p>They may not have been as severe as what the tool was claiming, but we said,  &quot;OK, we&#8217;ll clean this up.&quot;</p>
<p><a name="horizon"></a><strong>Scott</strong>:  What do you see on the horizon for the Apache Web server?</p>
<p><strong>Justin</strong>:  &nbsp;The IETF is forming a new working group to do an editorial revision of  the HTTP stack. Their work might lead to the next generation of the HTTP  protocol. And I think that is something that we will be very much involved  with.</p>
<p><strong>Scott</strong>:  &nbsp;What about in the incubator?&nbsp; </p>
<p><strong>Justin</strong>:  &nbsp;Every Board meeting we&#8217;re graduating things like ServiceMix which is an  ESB and component suite based on the Java Business Interface. One that is going  to be new, probably the next board meeting, is a standard C++ library, which  we&#8217;re getting from RogueWave. There&#8217;s things like Abdera, which is an Atom  feed. We&#8217;re seeing a lot of things like ActiveMQ which is event&#8209;based  messaging.</p>
<p>What you probably see a lot in Apache are low&#8209;level infrastructure type things.  You&#8217;re not going to see things like, say, OpenOffice. You&#8217;re going to see  things that people can pick and choose to build larger applications. I think  that&#8217;s what our niche really is.</p>
<p><strong>Scott</strong>:  &nbsp;What&#8217;s your sense for what happens to an Apache Web server release  between the time you&#8217;re done with it and it gets distributed by a Red Hat,  Oracle, Solaris , etc?</p>
<p><strong>Justin</strong>:  &nbsp;We have contributors from Red Hat. A lot of the people who are doing  distros and ensuring that it gets in front of the users are involved in our  community. Our philosophy has been why are you making this huge patch set for  this particular product? Get it upstream, get it back to us, we want to take  it. I think generally, for the most part, you will see that there isn&#8217;t a lot  of variation when it gets into the distribution because these people have been  working with us.</p>
<p><strong>Sean</strong>:  &nbsp;Let me do a follow&#8209;up on that. Some say the strength of a closed source  project is that the company may be able to provide more of an integrated stack.  You take a look at something like Microsoft ships  and they might say, &quot;You should use this because it&#8217;s an integrated stack,  and there&#8217;s a single vendor you go to for support.&quot; Obviously there are  some projects that are tightly coupled together, such as Suversion and Apache. What  would you say to that from the open source side? </p>
<p><strong>Justin</strong>:  &nbsp;Right.</p>
<p><strong>Sean</strong>:  &nbsp;It seems like in open source, the communities are not isolated.&nbsp; There&#8217;s a fair amount of core maintainer  communication that&#8217;s going on.</p>
<p><strong>Justin</strong>:  &nbsp;Yeah, I think you see that. I think that&#8217;s why you see a number of  committers in multiple communities. As you get used to it, you start to follow  the dependency chain, and you get into those communities and say, &quot;Hey, I  just broke this for you over here, but here&#8217;s the patch to fix it.&quot; You  tend to see a lot of that happening. <strong></strong></p>
<p><strong>Sean</strong>:  &nbsp;Are there things you see in other open source projects that look  interesting and might influence Apache?</p>
<p><strong>Justin</strong>:  &nbsp;I like what Ubuntu has been doing, where they say, &quot;We&#8217;re doing a  release every six months. (no matter what), we&#8217;re going to have a  release.&quot; That&#8217;s a very hard thing to do. That requires some of the  dynamics that Canonical has with their contributors. That&#8217;s something that I  think they do really well. </p>
<p>  Generally  our philosophy has been, &ldquo;we&#8217;re releasing when it&#8217;s ready&rdquo;, and some think  that&#8217;s a good philosophy. You don&#8217;t want to promise something, but then you  think, &quot;Well it&#8217;s been so long since the last version.&quot; There are all  these changes that sit there and keep getting improved upon. But if you have  the regular release cycles, I think that&#8217;s a good thing.</p>
<p><strong>Scott</strong>:  &nbsp;Justin, we&#8217;re out of time, but this has been a great conversation.&nbsp; Thanks for taking the time to chat with us.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=128&type=feed" alt="" /><!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark this:</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+I" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+I" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+I" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/&amp;title=Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+I" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.sphere.com/sphereit/http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/" rel="nofollow" title="Add to&nbsp;SphereIt"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/sphereit.png" title="Add to&nbsp;SphereIt" alt="Add to&nbsp;SphereIt" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Interview+with+Justin+Erenkrantz+%26%238211%3B+President+%26%238211%3B+Apache+Software+Foundation+%26%238211%3B+Part+I+@+http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://howsoftwareisbuilt.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://howsoftwareisbuilt.com/2008/01/24/interview-with-justin-erenkrantz-president-apache-software-foundation-part-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
