<?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; open source</title>
	<atom:link href="http://howsoftwareisbuilt.com/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://howsoftwareisbuilt.com</link>
	<description></description>
	<lastBuildDate>Fri, 25 Jun 2010 19:53:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<copyright>2006-2007 </copyright>
	<managingEditor>scottswigart@technologyevangelism.com (How Software is Built)</managingEditor>
	<webMaster>scottswigart@technologyevangelism.com (How Software is Built)</webMaster>
	<ttl>1440</ttl>
	<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>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary></itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>How Software is Built</itunes:author>
	<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" />
		<item>
		<title>Interview with Stefano Fornari &#8211; CTO &#8211; Funambol</title>
		<link>http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol/</link>
		<comments>http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol/#comments</comments>
		<pubDate>Thu, 07 May 2009 21:03:56 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[protocols]]></category>
		<category><![CDATA[synchronization]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Stefano Fornari In this interview we talk with Stefano the CTO of Funambol. In specific, we talk about: Defining synchronization as a core technology for the future of mobile computing The protocols underlying synchronization scenarios Various mechanisms used to initiate synchronization Characteristics of the open source community specific [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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><strong>Interviewee: </strong>Stefano Fornari</a></p>
<p>In this interview we talk with Stefano the CTO of Funambol. In specific, we talk about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol#define">Defining synchronization as a core technology for the future of mobile computing</a></li>
<li><a href="http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol#protocols">The protocols underlying synchronization scenarios</a></li>
<li><a href="http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol#mechanisms">Various mechanisms used to initiate synchronization</a></li>
<li><a href="http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol#open">Characteristics of the open source community specific to mobility</a></li>
<li><a href="http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol#conventions">Conventions that govern contributors and contributions</a></li>
<li><a href="http://howsoftwareisbuilt.com/2009/05/07/interview-with-stefano-fornari-cto-funambol#core">Core technical problems in synchronization</a></li>
</ul>
<p><span id="more-220"></span></p>
<p><b>Sean Campbell:</b> Give us a little bit of background on you and on the company.</p>
<p><b>Stefano:</b> All right. I am a cofounder as well as the current CTO of Funambol (the company). We started out in Italy at the end of 2002, and a while later Fabrizio, the CEO, relocated to the US to found the corporation, where the headquarters of Funambol is currently located. I am the current CTO.</p>
<p>Before that, I worked for a couple of years in a company called ATG, which at that time developed an application server. I was based in Reading, which is a little town close to London, and I acted as consultant for the region.</p>
<p>Before that, I had a very short experience with Compaq in Italy, during a period when they wanted to branch out into professional services on the software side. It was a very good experience for me to get familiar with mobile devices such as PDAs and so on, and I quickly became a reference for that kind of technology within Compaq in Milan.</p>
<p>Before Compaq, I worked at a software house in Italy that developed websites and stuff like that. That company was co-founded by Fabrizio, and I was actually an employee there.</p>
<p><b>Scott Swigart:</b> Tell us a little bit about the open source project that you&#8217;re working on and what the software does.</p>
<p><a name="define"></a></p>
<p><b>Stefano:</b> When I was working in ATG, Fabrizio and I had been thinking about what technology would be most important in the next five to ten years. We wanted to start a company that would innovate around that technology.</p>
<p>We wanted to be innovative in many ways&#8211;not only in terms of the technology itself, but also about how to develop software, and about the business model. Of course, one of the most evident technology directions at the time was mobile computing.</p>
<p>When we started to think about mobile computing and requirements we could meet to help drive its future, it became evident to us that mobile phones need to have local data storage to run their applications.</p>
<p>A very simple example is the address book, because at that time, but even today, you want to make sure that your phone applications continue to work smoothly, regardless of whether or not it has network connectivity. You must also make sure that your application doesn&#8217;t break dramatically if you run out of battery.</p>
<p>Thinking along those lines, we recognized that most applications will be mobilized, so we need a framework to make it possible for those applications to have a local database on the mobile phone, and that they can synchronize with a server.</p>
<p>The server, then, can in turn synchronize data with many other things, including Outlook, CRM, or an enterprise application server. As we moved forward, the first thing I researched was whether there was already a technology or a product to provide this service, or whether we should start from scratch.</p>
<p>At that time, the SyncML protocol had just kicked off, which is basically a synchronization protocol that attempted for the first time to standardize data synchronization among different sources.</p>
<p>After a while, that protocol was adopted by the OMA&#8211;the Open Mobile Alliance&#8211;which is one of the most important standardization bodies in the mobile area. Since there was already a protocol in place, we decided not to start from scratch and reinvent the wheel. We just needed to implement that protocol, so we focused on how we wanted to do that.</p>
<p>Open source was starting to become more visible and prevalent, and Fabrizio and I had always been very supportive of open source, so we decided to go that route to implement the protocol.</p>
<p>That was the real origin of the product, and today, the open source project has two primary parts. There&#8217;s a synchronization platform with a server side component that we like to call a mobile application server, and there&#8217;s a client component for the devices that have a SyncML client on board.</p>
<p>On top of these, we developed over time a more complete application suite, and today we have what we call a MobileWe, the open source and multiplatform MobileMe. It is a kind of Apple Mobile Me, but open source, with support for a very broad variety of devices.</p>
<p><b>Scott:</b> You mentioned a client side portion. Does it include a client type database or is it really more focused on the sync protocol on the server side?</p>
<p><b>Stefano:</b> Today, we are most concerned with synchronization. That is the reason we mainly took the approach of trying to integrate with existing applications on the mobile phone.</p>
<p>We synchronized the data that those applications already stored in the database. There is one remarkable exception, which is a J2ME email client,which instead implements a full email client for Java mobile; in this case, we could not count on an existing application into which we could plug in, and we developed the storage too.</p>
<p><a name="protocols"></a></p>
<p><b>Scott:</b> What are some of the key applications?</p>
<p><b>Stefano:</b> Mostly the PIM and email applications that are on the phones&#8211;calendar, email, tasks, and usually also notes.</p>
<p><b>Scott:</b> Tell us a little bit about the server-side component of this and what that synchronizes out to.</p>
<p><b>Stefano:</b> SyncML is a data-agnostic synchronization protocol, so you can really synchronize everything you want with that one protocol. In fact, our SDKs&#8211;both on the server side and the client side&#8211;also allows you to begin an application from scratch that is able to synchronize with whatever you want.</p>
<p>In a complex server deployment, the server will consist of many blocks. First of all, we have the data synchronization service, which is physically the block that receives the SyncML requests. This component also includes the synchronization protocols, the synchronization logic, and the connector architecture that allows us to delegate to connectors the actual access to the data.</p>
<p>This allows developers to develop their own connectors, without knowing anything about synchronization or mobile phones. They just implement a very simple Java interface that will be called when the synchronization takes place.</p>
<p>This connector architecture allows the decoupling of synchronization logic from the data access logic technology. We implemented our own connectors for our PIM personal information management database and email.</p>
<p>These will be enough for a simple synchronization scenario.</p>
<p><b>Scott:</b> I imagine that synchronizations become much more interesting when you introduce the push side of the synchronization.</p>
<p><b>Stefano:</b> That&#8217;s correct. This aspect allows us to make the synchronization completely invisible to the user. It means that if the user changes something on the device, the change is automatically synchronized to the server. If something changes on the server, the change is automatically synchronized to the device. That&#8217;s the part that is more interesting.</p>
<p>These are what we call the client server push, which is automatic synchronization from the client to the server, or server to client push, which is the synchronization from the server to the client. In order to achieve this synchronization, we need additional components that are able to detect that there are changes into the backhand.</p>
<p>We call these component listeners, and out of the box we provide the ready made email listener, which we call the Inbox Listener Service. This service is able to monitor user&#8217;s inboxes and detect when there are new emails.</p>
<p>There is another service called the PM listener service, which detects changes in our PIM database. When one of these two listeners detects a change, they know to which user the change relates, and they tell the Data Synchronization service to notify the clients used by the user, that there is something new to synchronize. This notification could be done in many ways. It&#8217;s very dependent on the kind of device, because different devices and operator networks have different capabilities.</p>
<p><a name="mechanisms"></a></p>
<p><b>Scott:</b> What are the mechanisms that initiate these server-to-client push actions?</p>
<p><b>Stefano:</b> We have three ways of doing it. The first is through SMS. If you are an operator, you already have a way to send SMSs, so we can send an SMS as a trigger to start a new synchronization.</p>
<p>Most of today&#8217;s mobile phones have a SyncML client on board, so we don&#8217;t have to install any software on them. They work out of the box with SyncML and usually also have this kind of notification implemented.</p>
<p>When this type of solution is not implemented, as in the case of Windows Mobile to take a very common example, we provide our client software that is able to address the other two types of server to client push: connection oriented push and connectionless oriented push.</p>
<p>Connectionless oriented push is when the device is able to start in a TCP/IP listener on a particular port and the operator network gives to the device a routable IP address: in other words, an IP address that the server is able to access directly.</p>
<p>If this is possible, then the server connects to the client and delivers the notification. This is our preferred way of doing push, because it&#8217;s least demanding on the battery since it doesn&#8217;t keep any connection open. When there&#8217;s something new, the server connects to the client and tells the client to start the synchronization.</p>
<p>The drawback of this method is that the IP address of the client must be addressable from the server, and not all networks give devices an IP address that is routable. It may not be a public IP address, there might be a firewall in the middle, or in the case of a WAP connection, there might be a gateway in the middle.</p>
<p>In those cases, you are not able to connect the device directly, so our client starts a connection to the server and keeps it open, so that the server can write the notification package when there is something new. The client keeps the connection open in a read mode, and when it reads the notification sent by the server, it can start the new synchronization.</p>
<p>In order to do this, there&#8217;s an additional component called the Connection oriented push service, which the client connects to.</p>
<p><a name="open"></a></p>
<p><b>Scott:</b> Now that we have that architectural description in place, let&#8217;s switch gears a bit and talk about the open source nature of the project. How much of it is developed by you as a company versus by the community? What benefits do you get from having the project be open source?</p>
<p><b>Stefano:</b> We get many benefits from the open source community, particularly with regard to the mobile space. We serve a big variety of devices and operators in different countries and so on.</p>
<p>One of the most important benefits that we get from the community is people using the software all over the world. They test our software in many countries, and they report issues and successes.</p>
<p>In a more traditional company, you would have to either test in every country or pay a lot of money to one of those mobile testing houses that have a pretty good coverage of the many different environments.</p>
<p>Another area of benefits, of course, is to the code itself. We have gotten very significant contributions, even though I would say that the majority of the code is still from employees.</p>
<p>Of course, that fact is partly because in many cases, people make those contributions after we&#8217;ve hired them, using the project as a sort of recruiting mechanism. It&#8217;s been a great help in finding and selecting people that want to work with us.</p>
<p>We had very remarkable contributions from developers that wanted to develop something on their own and found something useful in our software, so they contributed to our software&#8211;in particular on the client side&#8211;to improve the client SDK for example, or to port it to different platforms.</p>
<p>We also get great contributions from companies that are using our software and that want to contribute back code that they have built; they want to work to develop features together with the community.</p>
<p>So you see, the benefit is not only the code that is being contributed, but it is also building an ecosystem around the core of the project. We have a whole architecture that includes the connectors and so on, so people can build different applications based on some pieces of our code.</p>
<p>When people who use our software help us to validate it in another environment, we also consider that a contribution. They use it; they test it, and they help us improve it.</p>
<p><b>Scott:</b> One of the areas where open source does really well is where there are lots of variables such as different devices and carriers. It would obviously be very difficult, if not impossible, for one software company to support all of those combinations.</p>
<p>You&#8217;ve got a great community that really helps test all of those different cases and contribute to the code, and of course, a lot of times it isn&#8217;t a major change to get it to support something else. Do you find that someone can contribute a lot to the project by doing just a little bit of work to get it to work better for a particular device?</p>
<p><b>Stefano:</b> Absolutely, that&#8217;s the way we see it, and at Funambol, we try to encourage that as much as possible.</p>
<p>For example, we launched a program that we call the &#8220;device sniper,&#8221; where we give a very small amount of money to people to test a specific device based on a test script that we provide and to report back to us. This approach has worked well, and we have found a number of issues.</p>
<p><a name="conventions"></a></p>
<p><b>Scott:</b> When someone contributes a patch, how is it looked at to determine whether it is of sufficient quality to be included?</p>
<p><b>Stefano:</b> For small contributions, patches, and stuff like that, we ask people to file the bug and attach the fix as a patch file (a diff) so that it can be reviewed and then maybe integrated into the trunk.</p>
<p>The core developers review the patch, and if it&#8217;s good, they just include it into the trunk; if not, they ask the contributor to make the changes that they think are needed.</p>
<p>For larger changes, the process could be similar, but in that case, the core team will be more interested in having the contributor stay around and maintain it. In some cases, that type of contributor even becomes one of the core developers of the project.</p>
<p>In cases of those larger changes, we need to work much more tightly with them, and so they have to be much more active. They have to present their proposed changes more deeply, and they have to discuss with the other developers the associated design and architectural changes.</p>
<p>When they have developed the trust of the core developer team, we give them the write access to the code repository so they become part of the enlarged team that works on the code, and they can contribute directly into the trunk.</p>
<p>It is a very meritocratic process. Once we see that someone is really committed to the project, and that we share a common set of goals, they can make the transition to become core developers.</p>
<p><a name="core"></a></p>
<p><b>Scott:</b> Synchronization in general is a hard problem. There&#8217;s a lot of logic that goes into synchronization, especially to handle issues like what to do if the same thing has been changed on both ends. Talk a little bit about some of those challenges.</p>
<p><b>Stefano:</b> I&#8217;m glad you ask, because I think that some people have the perception that synchronization is an easy thing. Assuming it works properly, of course, at the end your address book in Outlook matches the address book on your phone, and so you take it for granted. Working seamlessly just means that it works well, though, and not that it is simple.</p>
<p>There is actually a great deal of complexity in doing this well, because you must not lose data nor create duplicates. Some challenges are related to the protocol itself, and others are due to different interpretations of the protocol or even with bugs that the phones may have.</p>
<p>In order to address this challenge, we implemented what we call the synclet technology. Before incoming SyncML messages get processed by the synchronization engine, they pass through what we call an input synclet pipeline.</p>
<p>The pipeline is basically a pipe of synclets that are executed based on the specific phone that is synchronizing. It gives us a hook to attach specific processing for a specific device. Thus, for example, if we know that a particular device has a bug in handling the addition of new items, then we can fix some of those things into a synclet.</p>
<p>We basically can do the same in output for outgoing messages, so we have an output synclet pipeline as well, such that if we send a message to a device and we know that a particular device, for example, interprets the protocol differently from others, we can fix the message before it gets sent to the mobile.</p>
<p>The same is true for the representation of contacts, for example, or events. There are standards, but there are also different interpretations, as well as bugs. For instance, a vcard may work on one phone but not be accepted by another phone. We fix this kind of thing in our pipeline.</p>
<p><b>Scott:</b> What about issues around the actual data on the phone? For example, what if I have the contact &#8220;Stefano&#8221; on my mobile phone and &#8220;Stefano&#8221; in Outlook?</p>
<p><b>Stefano:</b> That does happen, and moreover, when you synchronize different devices into a single address book, we need to detect what is actually the same information, even if there are different data.</p>
<p>That&#8217;s challenging, because for example, you may detect a person that has the same or a very similar name, but they are not the same person. You might also have different data for different people, such as a home phone number and a mobile phone number. </p>
<p>There are a number of challenges here that people usually don&#8217;t see, but that are quite interesting.</p>
<p><b>Scott:</b> Synchronization has always struck me as a very complicated engineering challenge with a lot of problems that there aren&#8217;t necessarily great answers for. Thanks a lot for taking the time to chat with us about what you do and about the project.</p>
<p><b>Stefano:</b> Thank you.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=220&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F&amp;title=Interview+with+Stefano+Fornari+%26%238211%3B+CTO+%26%238211%3B+Funambol" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F&amp;title=Interview+with+Stefano+Fornari+%26%238211%3B+CTO+%26%238211%3B+Funambol" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F&amp;title=Interview+with+Stefano+Fornari+%26%238211%3B+CTO+%26%238211%3B+Funambol" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F&amp;title=Interview+with+Stefano+Fornari+%26%238211%3B+CTO+%26%238211%3B+Funambol" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F" 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+Stefano+Fornari+%26%238211%3B+CTO+%26%238211%3B+Funambol+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2009%2F05%2F07%2Finterview-with-stefano-fornari-cto-funambol%2F" 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/2009/05/07/interview-with-stefano-fornari-cto-funambol/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interview with Mik Kersten &#8211; President &#8211; CTO &#8211; Tasktop Technologies &#8211; Member Eclipse Board of Directors</title>
		<link>http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors/</link>
		<comments>http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 16:49:41 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[Commercial]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Mik Kersten. In this interview we talk with Mik. In specific, we talk about: Building a commercial offering on an open source foundation Extending and evolving programmer tools for non-programmers Defining a task-oriented information-management paradigm Bridging academic, open source, and commercial models The roles of open and proprietary [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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><strong>Interviewee: </strong><a href="http://howsoftwareisbuilt.com/about-mik-kersten-president-cto-tasktop-technologies/">Mik Kersten</a>.</p>
<p>In this interview we talk with Mik. In specific, we talk about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors#building">Building a commercial offering on an open source foundation</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors#evolve">Extending and evolving programmer tools for non-programmers</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors#defining">Defining a task-oriented information-management paradigm</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors#bridging">Bridging academic, open source, and commercial models</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors#roles">The roles of open and proprietary information in spurring innovation</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors#economics">The economics and ethos of open source and proprietary methodologies</a></li>
</ul>
<p><span id="more-184"></span></p>
<p><b>Sean Campbell:</b> To start, can you give us a little bit of your background and then blend that into Tasktop and the Mylyn effort?</p>
<p><b>Mik Kersten:</b> Sure. I’m the president and CTO of Tasktop Technologies and the lead of the Eclipse Mylyn open source project. What I really enjoy doing and getting lost in is building tools. I&#8217;ve been doing that ever since I got involved with the AspectJ project as a student back in &#8217;98. This cool new aspect-oriented modularity technology was emerging up from Xerox PARC, and I started implementing a web-based desktop UI with it.</p>
<p>I&#8217;d just made the switch from Emacs to Visual J++ 6.0, which wasn’t the easiest transition. But Visual J++ had code completion and integrated compilation, which I quickly became addicted to since they accelerated my ability to code. That was the first time that I realized the amazing potential of tools to make us more productive. A few years later, I had dinner with Anders Hejlsberg and the product manager from the VJ++ 6.0 team and had the opportunity to thank them personally for that amazing product. I also had to take that opportunity to gripe about its very restrictive extensibility API.</p>
<p>While finishing my bachelor’s degree I had extended Visual J++ with some rudimentary support for aspects, which got the attention of Gregor Kiczales, who was leading the AspectJ team at Xerox PARC. So I joined the AspectJ team and created the first AOP tool support, in the form of a common tool framework and extensions for JBuilder, NetBeans, VisualStudio, and even Emacs. But with each of those integrated development environments (IDEs) I kept hitting major barriers, because none of their APIs were open or extensible enough to support a new programming language. Then came along Eclipse, which finally gave our tool support efforts a feasible path.</p>
<p>As the AspectJ project transitioned from research to an established technology, I moved with Gregor Kiczales to join Charles Simonyi at Intentional Software. We were trying to build on the practical ideas that had made AspectJ work and incorporate them into Charles’ new domain-specific language workbench. But thanks to some great exposure to user interface innovators at PARC, I kept having these ideas that statically typed OO languages were good enough, and that the real problem facing software development was a mismatch between the tool paradigm and the way programmers work. The bug that all the IDE tools seemed to have is that of taking the compiler’s point of view and overloading the programmer with structural slices of the entire modularity of the system. That works fine for toy examples and demos, but not when you’re debugging a multi-million line web application. I wanted to better understand what it would mean for tools to take a more user-centric point of view. So I left industry, went to the University of British Columbia to do my PhD with the amazing Gail Murphy, and made this thing that&#8217;s now called the task-focused interface. It shifts the tool paradigm from being structure-centric, where you get to see the same structure as the compiler and the execution environment sees, and making it task centric instead. What you see is what&#8217;s relevant to the work that you&#8217;re doing as your building the system. </p>
<p>Gail and I validated the implementation of that with the Mylyn open source project, by monitoring how the day-to-day productivity of 100 programmers in industry was affected by the task-focused interface. I saw that there was a statistically significant increase in productivity. After that, the magic of open source communities kicked in, Mylyn became a part of the default Eclipse distribution, and it now has hundreds of thousands of users.</p>
<p>I got very excited about the potential of this new task-focused approach to user interfaces and wrapped up my PhD by showing that this technology also works for non-programmers. Just over a year after defending my thesis we released Tasktop 1.0, which is starting to bring the same productivity benefits to a growing number of non-programmers. </p>
<p><a name="building"></a></p>
<p><b>Sean:</b> Is Tasktop a commercial enterprise on top of Mylyn?</p>
<p><b>Mik:</b> Yup. Eclipse Mylyn is an open source project that provides the framework and APIs for the task-focused interface, as well as reference implementations that can be used by programmers. There&#8217;s integration with Java programming and with plug-in development, as well as with Bugzilla issue tracker.</p>
<p>Tasktop and other extensions to Mylyn integrate that framework and that way of working with other commercial products and services. For example, Tasktop has commercial and for-pay extensions of Mylyn to make it work with Outlook email and tasks, Gmail, and Google Calendar, as well as its new take on the web browsing experience. Similarly, the Spring Tool Suite, which uses the task-focused interface for enterprise Java development, is built on Mylyn and Eclipse, and is another closed source offering that offers these productivity benefits.</p>
<p>There are quite a few of examples of this sort of split between open source framework and closed source product within the Eclipse ecosystem. An interesting dynamic of the Eclipse ecosystem is that the frameworks are vendor neutral. Anyone can contribute to them, including competitors, and then individual companies provide closed source offerings on top of the open source.</p>
<p><a name="evolve"></a></p>
<p><b>Scott Swigart:</b> You mentioned that you&#8217;re targeting not just developers now, but information workers. Talk a little bit about that.</p>
<p><b>Mik:</b> Sure, but let’s start with a quick overview of the developer side of the tool space, since that’s how the Tasktop technology evolved. The trend of IDEs and other development tools over the last few decades has made files the central unit of what you work on.</p>
<p>Files are where you browser your classes, whether it&#8217;s C# or a Java. They’re where you put your XML descriptors, and your interaction is around files. That worked great when our systems were composed of dozens or maybe hundreds of files, but if you look at an enterprise application, you&#8217;ve got hundreds of thousands to millions of lines of source code broken up across countless files and libraries.</p>
<p>While machines have no problem dealing with buiding systems that large, thanks to incremental compilation, fast processors, and lots of memory, our monitors just can&#8217;t fit all that information. And even if they could, we couldn&#8217;t process it.</p>
<p>The idea of the task-focused interface is to make tasks the core unit behind everything we work on. Consider that for any bug that programmers fix or any feature that we add, we only care about the subset of the system that&#8217;s relevant to the task. Mylyn has made tasks just as primary a part of the IDE as files are. Since that time, we&#8217;ve seen some task integration in other IDEs, although Mylyn&#8217;s taken the concept to another level and re-aligned the entire user experience around it. When working with Mylyn, you activate a task, and as you write and navigate your code, everything that you touch becomes a part of the context for that task. You can multitask with a single click by activating a different task, and now you see all of the Java files and methods and XML you were working on last week. Instead of manually managing the set of open files and classes, the task context is actively managed for you to highlight the most relevant parts of the system and hide everything else. Task switching is almost instant, which is important for those of us who are constantly multitasking. On the Mylyn open source project, every single bug that we have has a task context attached to it, so that if someone wants to start working on it to help us resolve that bug, they can pick up exactly where we left off. This capability lets us apply dozens of patches a month from numerous contributors.</p>
<p>We realized early on that the problems of information overload and multi-tasking overhead were not just something that affected programmers. It&#8217;s a very obvious problem for programmers who worked on very large sets of structured data. But the problem is similar for anyone who needs to access dozens of files and web pages as part of their workday. We end up making shortcuts, losing things, having multiple copies of documents and manually managing email attachments. Early on I started using Mylyn’s task-focused interface for managing my open source, consulting, and PhD work. We then ripped out all the programming specific extensions, made the framework more generic, and started to prototype integration for non-programmers. For people using Microsoft Outlook, we brought their email and tasks into the task-focused interface. For those using web applications, we also integrated Gmail, Google Calendar and other key task and time management apps. We embedded a web browser so that all the most frequently and recently accessed web documents would be instantly restored when you returned to a task. In my PhD thesis, I kept referring to the result as the task-focused desktop. A few days after wrapping up that thesis, we founded Tasktop Technologies. We are still sticking with our programming roots and have a programmer version of Tasktop for Eclipse users as well as a standalone Windows application for everyone else.</p>
<p>Since we build on a large body of open source frameworks and tools, we made a very clear split between Mylyn, which is a framework and a free reference implementation for programmers, and Tasktop, which provides a fully supported product and integration with proprietary applications and web services. </p>
<p><b>Scott:</b> So if it&#8217;s SharePoint integration or Outlook integration, then that&#8217;s fairly obviously going to be a Tasktop implementation. On the other hand, if it&#8217;s the generic framework and that kind of stuff, then that goes into Mylyn.</p>
<p><b>Mik:</b> Exactly. We want the framework to be vendor neutral, because it is the first implementation of this new technology, and by keeping it open we have been encouraging the integration that has made it a de facto standard for tasks in Eclipse. </p>
<p>We continue to put considerable effort into making it easier to build on the Mylyn APIs. I think we&#8217;re getting close to two dozen different integrations form various companies that range from Atlassian’s JIRA issue tracker to CodeGear’s JBuilder. There are also various open source projects building on the same APIs to integrate them with their own task, bug, and project management tools. And the neat thing about these integrations is that once the task repository has been integrated, all of the benefits of the task-focused interface just work. This includes additional features of Tasktop, such as to-the-minute time tracking and reporting.</p>
<p>One of our top priorities is supporting this rich ecosystem integration, because we know that Tasktop cannot provide integration to the countless task management systems out there. We&#8217;ve also helped bootstrap some of the companies on the integration, with consulting services to companies including Spring Source, CollabNet, Rally, and Atlassian. One of the neat things about our ecosystem is that even though there are competitors within it, everyone benefits from the common goal of improving and refining the open source framework. This helps provide incentive for patches and other contributions.</p>
<p><a name="defining"></a></p>
<p><b>Scott:</b> What led you down the path of thinking that maybe tasks were the right way to handle this problem of information overload?</p>
<p><b>Mik:</b> Actually, a few things happened at once. I was getting RSI from spending too much time coding AspectJ releases during crunch times. I was trying everything short of cutting my workweek in half, but nothing worked long term. As I analyzed what was going on, I realized that mouse clicks were the biggest part of the problem, and that I was repeatedly clicking to find and re-find the same information.</p>
<p>Most IDEs and productivity tools are typically optimized for showing you one place in document. We often try to structure our work around one folder, package, or directory in order to make relevant information easy to access. But what we learned from aspect-oriented programming is that no matter how we set up a hierarchy, for some tasks we will need to access information that crosscuts the hierarchy. When programming, we often need to refer to methods that span a call stack. When writing a proposal, we often need to access historical versions as well as related spreadsheets and online documentation. The end result is that with a conventional user interface, we spend an inordinate amount of time searching and clicking around to get at the information we need. To reduce this clicking, we need a user interface that puts everything you need on the screen so that it is only a click away.</p>
<p>To test this approach to reducing clicks, in 2004 I made a visualization toy that showed you only the editors that you were touching, and the relationship between them. I integrated the core ideas with Eclipse, started using it myself and did a small user study on some professional developers at IBM. What most of the study subjects indicated was that the work they doing was chunked. As your work populated the visualization, you wanted built up a valuable set of documents that you may want to recall later or share with a co-worker. The remaining question is what defined the boundaries chunks?</p>
<p>With programmers, it was pretty clear that people were using issue trackers, bug trackers, and other project management tools to define their chunks of work and the related document context. Since the user knows best when they’re about to start working on a particular task, I implemented a facility for indicating which task context should be active, and a task list for switching between tasks. There was a fair amount of backlash in terms of my thesis committee and others saying, &#8220;No, no. People will never proactively indicate what they&#8217;re working on, it’s too much effort.&#8221;</p>
<p>In response, we focused on making the user interface simple and streamlined, to the point where it only took a single click to indicate what you were working on and return to it later. You end up seeing an immediate benefit and the gratification of a focused workspace. In the end, after working on only a few tasks in this way, people get hooked.</p>
<p><b>Scott:</b> How does that integrate with different methodologies, such as agile or a test-driven development methodology? </p>
<p><b>Mik:</b> As information workers, whether you’re a programmer or a project manager, you work on tasks. How you define a task depends on our development process and company structure. &#8220;Task&#8221; is just a short and nice word that we chose to describe all these things ranging from bug reports to marketing events.</p>
<p>For example, when using Tasktop with Rally, a web service for agile project management, your tasks are user stories, and the subtasks under those stories are defects and actually things called tasks. This is the agile scheme for tasks, which fits very nicely into the tool. Once you return to a use case, you see all the relevant requirements and documentation opened instantly. As another example, with a click in Mylyn, you can make a task from a JUnit failure. So if you&#8217;re trying to make some component work, you&#8217;ve get pen test failures and you can easily make tasks or subtasks out of those and start fixing them. In a bug tracker like Bugzilla, your tasks are bugs. In Tasktop&#8217;s Gmail integration, your tasks are email threads. The rich client provides you a single UI for managing all this information, and caches it all on your desktop machine in order to speed up task opening and to support offline work.</p>
<p><a name="bridging"></a></p>
<p><b>Sean:</b> Let me ask you a question in a different area. You went from a project that had its genesis in some academic work toward a commercial model. What did you look to for inspiration there? </p>
<p><b>Mik:</b> What became evident from my research is that the way we&#8217;ve been working now is way slower than it should be. That it’s way too cumbersome to collaborate, and that there&#8217;s a way to fix that.</p>
<p>That was really the seed of the whole thing, and then the user studies gave me and Gail enough confidence that this method had merit. Seeing a statistically significant result in improving study subjects’ productivity also helped.</p>
<p>So we knew that that there was value. But we also understood that this new approach was trying to change the way people work. No one asked to work on tasks instead of documents, and no one asked to have to activate tasks.</p>
<p>In order to deliver this value to developers and others, we had to make the technology incrementally adoptable. At the same time, we needed test it further in as realistic a manner as possible. We didn’t have the resources to reinvent a widget set and application framework, so the extensibility of Eclipse was very appealing.</p>
<p>We just wanted to get the technology into the hands of users, and the best way of doing a broader validation in the field was to put it out there as open source. That did leave us with a business question. If we released the core technology as an open source, would we be giving away too much?</p>
<p>I always wanted to commercialize this technology, because I believe that a company is the best vehicle for delivering the whole vision that we have for transforming the way that people work. We need a lot of programmers working on it, we need a rich ecosystem, and we need partners to get it broadly adopted.</p>
<p>On the flipside, I learned from my own experiences extending tools that frameworks should be open source. So we put all of these lessons together and came up with the current split between Mylyn, the Eclipse ecosystem, and the Tasktop products. The split has allowed us to innovate very quickly and to have the benefit of a constant stream of user feedback for improving the fidelity and integration of the task-focused interface.</p>
<p><b>Sean:</b> You mentioned that you felt that a company was the best way to do this. It&#8217;s interesting to consider where technologies get born and what is the right pairing for them, to accelerate them at different points in time.</p>
<p>What were the key reasons for thinking that taking it commercial would be the best thing for it?</p>
<p><b>Mik:</b> If you want to deliver tools that provide a transformation productivity increase, you need significant resources to create that technology and deliver its value. You can put in countless volunteer hours and try to pool a community of like-minded volunteers to help out. We&#8217;ve seen that work over and over, in Apache for example, for creating implementations that are fairly well specified, because you can have all kinds of people hacking in their spare time to make a web server or a kernel extension work&#8211;a different implementation of something that&#8217;s already appeared.</p>
<p>But for a genuinely new idea, my experience is that reducing the time to impact means having people working closely together, whether they&#8217;re remote or in the same room with a whiteboard. It is rare for volunteer-only efforts to create and support a genuinely new technology. What the typical user wants is a polished and supported product, and I believe that a company is the best vehicle for delivering that. </p>
<p>I felt like I had two choices. One was to try to take the task-focused interface into an existing company and make it work there, and the other choice was the startup route.</p>
<p>I had two key concerns with the startup route. One is whether we would be able to dedicate enough funding to the open source portion of the effort, especially given that we are bootstrapping the startup. The other concern was the fact the task-focused interface is something of a disruptive technology, which means that we needed to invest a tremendous amount of effort in the user interface and integration in order to make it easy to adopt without forcing people to give up their existing tools.</p>
<p>But Christensen’s “innovator’s dilemma” dictates that big company customers do not ask for tool vendors to deliver them genuinely new technologies. Disruptive technologies end up growing organically around some community of users that adopt it, and can grow quickly if a tight feedback loop is established with those early adopters. I don&#8217;t think there&#8217;s any better mechanism to bootstrap a community than open source. With Tasktop, we have been able to deliver a cool new tool, support an open source community, and bootstrap a startup.</p>
<p>I believe that a mixed closed and open source approach is a much cheaper way of bring new technologies of this sort to market, since it both leverages the community efforts and gives back to it. In the end, it means that we are able to deliver a solution that’s both better and less expensive. It also means that we get to have fun being closely engaged in constant design discussion with some of the great minds in the Eclipse community.</p>
<p><a name="roles"></a></p>
<p><b>Sean:</b> What do you think about the role of innovation when it comes to open versus closed source projects? It&#8217;s one of those sticks that both sides like to use to beat the other up with, I think.</p>
<p>One side says, &#8220;We&#8217;re more innovative, because we have a community.&#8221; The other side says, &#8220;Because we can pay people and do things that somebody normally wouldn&#8217;t spend time on, we can create new things out of the ether that would never have been born otherwise.&#8221;</p>
<p>What aspects of each community do you think lend themselves to more or less innovation?</p>
<p><b>Mik:</b> My sense is that the open and closed approaches are akin to two different tools at our disposal, and each has its own merits for delivering innovation. If you&#8217;re Apple, you&#8217;ve got a ton of value in the secrecy and the marketing buzz behind big product launches, of products that are incrementally innovative. Jobs might call the iPhone revolutionary, but it&#8217;s just an awesome packaging of a bunch of things that already existed. In 2000, while at Xerox PARC I was playing with a smaller mobile device that had an accelerometer-based UI. It&#8217;s not revolutionary&#8211;it&#8217;s an incremental innovation that takes good advantage of Apple&#8217;s knowledge about exactly how to deliver that type of innovation, and I think it can make sense to do that in a closed way, without open channels for input of an early adopter community.</p>
<p>There&#8217;s another kind of innovation, where you know the idea and the vision, but you don&#8217;t know what form it should take. And that&#8217;s been exactly the case with Mylyn and with the task-focused interface. It hasn&#8217;t been around for that long, but it&#8217;s taken major turns in how the user interface works, and how it integrates with the tools we use, and what tools it integrates with. Without a very active and engaged early adopter community, we could not have both created and refined the task-focused interface to the point where it could go from whiteboard to hundreds of thousands of users within a few years.</p>
<p><b>Scott:</b> What Apple did with the iPhone was really interesting, but it wasn&#8217;t innovation in the sense of invention. It&#8217;s innovation in the sense that they packaged up a lot of things that already existed in a really great way. They built a really great experience out of a lot of bits and pieces.</p>
<p>But if you don&#8217;t necessarily know exactly how you&#8217;re going to get there, if what you&#8217;re doing requires a lot of invention, and if you&#8217;re looking at shifting people to a whole new paradigm, then having people go off and work for 18 months in a dark room isn&#8217;t necessarily the best way to go.</p>
<p>It sounds like what you&#8217;re saying is that open source allows you to be iterative in a way that you just can&#8217;t be if you&#8217;re trying to do a closed source non-transparent release every nine months. </p>
<p><b>Mik:</b> That&#8217;s exactly where I&#8217;ve come to with this thinking about using open source as a tool for invention. Actually, I don&#8217;t think it has to be open source&#8211;it can be openness in general. For example, the way the GUI evolved at PARC is that there was a rich community with a lot of open interaction of engineers in Palo Alto, who were talking to academics, and they built up all this amazing expertise.</p>
<p>Maybe if you assume you can get exactly the right mix of people into an ivory tower and motivate them to come up with something that&#8217;s a really transformative technology, you can succeed. But it seems a lot harder, because either the world will have changed while they were hidden away, or you they will have missed some unforeseen conversations that open the project to new lines of thinking.</p>
<p>Open conversations have really helped the trajectory of Tasktop, ranging from the academic dialog to threads on bug reports. They help us understand what’s feasible with the technology and what future directions are most relevant. For example, we&#8217;re now building more on the web experience, so we&#8217;re monitoring more of the way web applications work in order to extend the reach of task context, and we&#8217;re having more conversations with people doing web apps in Ajax and RIAs. And those are just invaluable for understanding where we can go next. </p>
<p>Another type of conversation that I think is incredibly important is with the people actually using the technology, particularly since Mylyn is a technology that’s designed for collaborating and managing discussion and feedback.</p>
<p>User feedback for us takes the form of tasks, and on the open source project in the past year, we&#8217;ve processed 1,500 of these feedback tasks. Some have had discussion threads hundreds of comments long. That collective knowledge tells us where the tool and technology should be heading over the coming years. With a short release cycle, we&#8217;ve given people enough incentive to continue giving us their feedback, since they are rewarded with an impact of the tool. We can’t incorporate all the feedback, and a bit part of my job is keeping the UI consistent, but we always encourage interested users to contribute an implementation when a particular feature does not fit within the committers’ priorities. And often enough they do.</p>
<p>The fact that a community can shape an idea and integrate it with the way they work, instead of just our own preconceptions of how it should work, means that in the end, you can reduce the time to impact of the technology from a decade to the three year time frame we&#8217;ve been seeing with Mylyn.</p>
<p><b>Scott:</b> It sounds like Mylyn is continuing to do that innovative, &#8220;we don&#8217;t know exactly where it&#8217;s going to go&#8221; kind of work. At the same time, a lot of the commercial stuff that you&#8217;re building on top it, like the Gmail integration or the SharePoint integration, are maybe a little more like logical extensions. </p>
<p>Would you say that those things don&#8217;t necessarily require that same level of collaboration and brainstorming that the core Mylyn framework needs?</p>
<p><b>Mik:</b> You&#8217;ve hit that nail on the head. We don&#8217;t need that integration between the framework and SharePoint or Google Calendar to be open source, because it&#8217;s just integration. It&#8217;s got really neat things in the way it works, it&#8217;s got some neat UIs, but it&#8217;s more about creating a smooth user experience than invention.</p>
<p>At the same time though, we see an interesting effect because of the fact that we use same feedback process for bug reports and enhancement requests within the Mylyn user interface that we use with Tasktop.</p>
<p>An interesting thing that we didn’t predict is that that same openness and open dialogue with users has been working on the closed source tool. We did not expect to get the rate of bug reports and enhancement requests that we are getting on Tasktop. It&#8217;s on the same trajectory as the Mylyn rate, even though Tasktop has only been out since March. It’s in part because we have put a lot of effort into feedback facilities in Tasktop. In other words, we’re bringing the same open dialog that we’ve been spoiled by in open source into the closed source tool.</p>
<p>It is interesting that you can get some of the openness and dialogue with users, as long as you provide them enough incentive. I think the key is that they have to know that they can affect change, that their input means that down the road they&#8217;ll get a version of the tool that&#8217;s more tailored to the way that they work.</p>
<p>So that begs the question, what needs to be open source?</p>
<p><a name="economics"></a></p>
<p><b>Scott:</b> Maybe what open source gives you essentially is a way to augment your development team, because you&#8217;ve got people who can actually code on the product and submit patches and things like that.</p>
<p>But that same level of collaboration and transparency and input isn&#8217;t necessarily a function of open source. Open source requires it, but maybe you can get that same level of collaboration without open source. What you can&#8217;t get is that kind of volunteer developer pool.</p>
<p><b>Mik:</b> Right, and we can consider this decision from the point of view of economics&#8211;do you think you&#8217;re going to get more out of casual contributors working in their spare time than you will from proprietary ownership of your source code?</p>
<p>If you’re building a framework, you may want to use open source in order to establish it as the de facto standard. If you’re in a space where a standard requires agreement from multiple vendors, the right vehicle for this could be a vendor-neutral ecosystem like Eclipse. </p>
<p>Consider Tasktop Technologies. We are a startup, so it is a big advantage for us to be delivering a solution on top of a de facto standard that we created, and the volunteer effort helped make that implementation viable. So open source has been a very clear win for us.</p>
<p><b>Scott:</b> There are obviously a lot of philosophies out there in open source and free software, but one voice is the free software philosophy that there should basically be no closed source. I could see some people objecting to the approach of using free development tools and the open source community to create a de facto standard that you can sell software on top of.</p>
<p>From your perspective, there&#8217;s got be commercial backing and people making money and getting paid. But do you ever run into that thinking that everything should be free and open? That basically software isn&#8217;t the &#8220;right&#8221; way to make money.</p>
<p><b>Mik:</b> Yeah. And I think that&#8217;s a really interesting point. While I really like the dynamics of open source software development, I haven’t really had the luxury of subscribing to the free software philosophy. I’m more oriented to pragmatic open source. You touched on this a moment ago: there are very important things that open source enables in software development, including ease of collaboration. It makes it super easy for us to collaborate and exchange information.</p>
<p>Open source helps us collaborate on and exchange intellectual property that makes sense to have in the Mylyn framework. The commercial-friendly Eclipse Public License allows us to sit down in a room with some developers from our partners, create a solution, and put it into Mylyn for our mutual benefit, without having to get lawyers or contracts involved. It eases collaboration not only for volunteers but for partner companies.</p>
<p>This is in part why I&#8217;m convinced that frameworks and APIs are more effective being open source. The rapid adoption and evolution of Apache, Spring Framework, and Eclipse APIs attests to this.</p>
<p>So I think open source is great for all these things, but in the end, as a tool builder all I&#8217;m trying to do is make people more productive, by making their work day easier, making them less stressed, and making it faster for them to get things done. What that means is that I just want to find the most effective combination of open source and closed source mechanisms to accomplish that.</p>
<p><b>Scott:</b> There are also some people who believe everything is moving from closed to open, as a natural progression, but it doesn&#8217;t necessarily seem like that&#8217;s borne out. It seems more like there&#8217;s a progression from both sides toward a hybrid middle, with an open base and companies building proprietary stuff and adding value on top of it.</p>
<p>IBM builds WebSphere on top of Apache. CMS systems and a lot of other systems have some kind of a community version that&#8217;s free and then there&#8217;s a for-pay version.</p>
<p>Would you agree that maybe the best thing for users, the community, innovation, and moving a software product forward fast is this blend of an open source foundation with proprietary functionality built on top of it? </p>
<p>That basically allows companies to drive the open source base forward, because they have a way to generate the revenue to pay people to work on it.</p>
<p><b>Mik:</b> I think that kind of mixed model is a very healthy thing for our industry, because it allows companies to invest in open source without cannibalizing their business model. </p>
<p>We&#8217;ve bootstrapped the Tasktop startup on revenues while investing a large proportion of our development efforts into the Mylyn open source project. The mixed model enables that, and it’s very rewarding for all involved.</p>
<p>The fact that you have very talented developers who are bored working their day jobs, and who are contributing to all these open source projects as volunteers, to me, is amazing and I really like being engaged in it. It can also be a good hiring vehicle because it selects people who are fundamentally interested in the technology. On the flipside, open source can attract opportunists interested in padding their resume and being motivated by credit and not contribution, but we have found that to be the exception and not the norm.</p>
<p>But for these concentrated efforts where you&#8217;ve really got to build up intellectual property, and you design and figure out how to deliver that, having a mixed model is amazing. You can both fund it and still leverage the collaboration benefits of the open source and the amount of bandwidth that you can get from early adopters.</p>
<p><b>Sean:</b> We should probably watch the time, but is there something you think that&#8217;s really interesting around this conversation that we didn&#8217;t ask about?</p>
<p><b>Mik:</b> I think it’s interesting to consider the various ways that we pay for the software we use. We were just chatting about free software volunteerism. But what we&#8217;ve noticed with Mylyn and Tasktop is that there&#8217;s a category of people who care about the mechanics and benefits of open source, but there&#8217;s also a huge category of people that just want to try software that’s free.</p>
<p>They pay in various ways. Some of them pay Google with their eyeballs by watching ads. We try to get people on Mylyn to pay for the fact that they&#8217;re using Mylyn for free by having them comment, give us feedback, and give us patches. We&#8217;re always encouraging that. If they find something confusing in our documentation, we talk to them to update the documentation.</p>
<p>I think we&#8217;re getting into this interesting mixed world where it&#8217;s becoming clear that the open source frameworks are a great delivery method, and a great way to collaborate. Now these different ways of paying are getting ironed out. We&#8217;ve got the mixed source approach that IBM is doing, as well as other models where you pay for web services built on open stacks.</p>
<p>You alluded to things like SugarCRM, which has a community version and a commercial version, which, I think is excellent. It stimulates investment by both larger companies and startups in open source. It means that we&#8217;ll have that much more in this commons of open source framework in the future for new innovations to come up, and it opens up the space for integrations, since open source tools are easier to integrate with.</p>
<p>Mylyn and Tasktop would never have happened if not for the fact that IBM made a tremendous investment in playing the mixed source card by making Eclipse open source. It allowed us to leverage the internals of the IDE and the internals of the way that they integrate with OSes like Windows in order to deliver this new way of working. Duplicating that effort, or attempting to create our own widget toolkit like many web apps are being forced to do, would have meant that we would wouldn’t have had enough time to focus on our core competency, which is innovation. </p>
<p><b>Scott:</b> Well, this has been a fantastic interview. Thanks for taking the time to chat with us.</p>
<p><b>Mik:</b> All right. Thanks a lot, guys.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=184&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F&amp;title=Interview+with+Mik+Kersten+%26%238211%3B+President+%26%238211%3B+CTO+%26%238211%3B+Tasktop+Technologies+%26%238211%3B+Member+Eclipse+Board+of+Directors" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F&amp;title=Interview+with+Mik+Kersten+%26%238211%3B+President+%26%238211%3B+CTO+%26%238211%3B+Tasktop+Technologies+%26%238211%3B+Member+Eclipse+Board+of+Directors" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F&amp;title=Interview+with+Mik+Kersten+%26%238211%3B+President+%26%238211%3B+CTO+%26%238211%3B+Tasktop+Technologies+%26%238211%3B+Member+Eclipse+Board+of+Directors" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F&amp;title=Interview+with+Mik+Kersten+%26%238211%3B+President+%26%238211%3B+CTO+%26%238211%3B+Tasktop+Technologies+%26%238211%3B+Member+Eclipse+Board+of+Directors" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F" 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+Mik+Kersten+%26%238211%3B+President+%26%238211%3B+CTO+%26%238211%3B+Tasktop+Technologies+%26%238211%3B+Member+Eclipse+Board+of+Directors+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F09%2F26%2Finterview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors%2F" 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/09/26/interview-with-mik-kersten-president-cto-tasktop-technologies-member-eclipse-board-of-directors/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Interview with Leon Shklar &#8211; EVP &#8211; Media Technology &#8211; Reuters</title>
		<link>http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters/</link>
		<comments>http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 00:05:14 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Leon Shklar In this interview we talk with Leon Shklar &#8211; EVP of Media Technology for Reuters. In specific, we talk about: Moving Reuters.com to an open source stack Choosing and supporting open source software Making code changes to open source packages Licenses and governance in open source [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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><strong>Interviewee: </strong><a href="http://howsoftwareisbuilt.com/about-leon-shklar-evp-technology-reuters/">Leon Shklar</a></p>
<p>In this interview we talk with Leon Shklar &#8211; EVP of Media Technology for Reuters. In specific, we talk about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters#moving">Moving Reuters.com to an open source stack</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters#choosing">Choosing and supporting open source software</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters#changes">Making code changes to open source packages</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters#licenses">Licenses and governance in open source projects</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/26/interview-with-leon-shklar-evp-media-technology-reuters#perception">The perception and reality of open source companies</a></li>
</ul>
<p><span id="more-151"></span><br />
<b>Sean Campbell:</b> Leon, could you introduce yourself?</p>
<p><b>Leon Shklar:</b> Sure. I am EVP of Technology for the Media division of Reuters (now Thomson-Reuters Markets).  </p>
<p>I hold a PhD in Computer Science from Rutgers, and I have been doing some part time teaching there as well. That came in handy in team building – the team includes some of the former Rutgers students and other people working together through a couple of startups and other jobs. </p>
<p>I have been at Reuters for a little over two years. Prior to that, I was responsible for the technology side of the Wall Street Journal Online. I am pretty proud of what our team accomplished both at WSJ.com and here at Reuters so far.</p>
<p>To wrap up on the history, I worked for Belcore from 1990 to 1996. Before that, I worked with a small software company, called Computer Corporation of America, which made DBMSs for IBM mainframes.</p>
<p>In 1996, I took the plunge into the world of startups. We started a small company in &#8217;96, and then it got acquired in &#8217;99. Then everything went up in 2000 and came crashing down in 2001. When things started going south, I joined Dow Jones, and was responsible for the Wall Street Journal Online, from summer 2002 to spring 2006, which is when I went to Reuters.</p>
<p>On a related subject&#8211;with a friend who worked with me together in a couple of jobs, we wrote a book on Web Applications Architecture that came out in its first edition in 2003, by Wiley. The second edition is supposed to come out later this year. </p>
<p><b>Sean:</b> It looks like it has some really good reviews. Scott and I have actually been lead authors on three technical books too. The joke my CTO gave me once was that &#8220;All authors like the act of having written. The act of writing, though, they are not so sure about.&#8221;  I&#8217;d have to say I agree with that.</p>
<p>Tell me a little bit about the technology stack that Reuters sits on, in terms of how you guys use open source, what are the major products, and how that underpins the organization. </p>
<p><a name="moving"></a></p>
<p><b>Leon:</b> The responsibility of our team includes both consumer web sites and business-to-business media products. The former include the family of Reuters.com web sites–eighteen of them to be precise, for different countries and regions. The latter include text, pictures, and video products distributed over the Internet and via satellite. Overall, quite a mix of current and legacy systems, and not all of them are compatible. Our team is on a mission to bring all of media systems to a common platform.</p>
<p>Over the last two years, we migrated Reuters.com sites from Microsoft .NET technologies to the open source stack. There is some similarity in what we have done back at Wall Street Journal Online and here. When I started at Wall Street Journal Online, there were a bunch of disjointed pieces. The site itself was based on Vignette, there were some scripts, and there was a pretty big buy-in on the company side into Solaris and Sun and commercial tools. The company already had licenses for WebSphere and Oracle, which of course are pretty expensive.</p>
<p>I don&#8217;t think the open source components were as robust in 2002 as they are today, and the migration there was away from Vignette, heterogeneous scripts, and all kinds of obsolete CGIs and stuff like that, to a cohesive platform based on the Oracle tier, WebSphere, and a bunch of applications built on top of that.</p>
<p>The OS platform was Solaris. It wasn&#8217;t a cheap environment to run, because Solaris systems weren&#8217;t cheap. The Oracle licenses and WebSphere licenses are not cheap either, in terms of maintenance and upgrades. But we ultimately got the system to be pretty solid, by the time I left in 2006.</p>
<p>When I interviewed for the job at Reuters, the main question that I was asked, well, can you fix the site? It is not standing up. </p>
<p><b>Sean:</b> Tell us a little bit about that. Was the issue page load times, or that users felt the site wasn&#8217;t responsive; what was the real issue? </p>
<p><b>Leon:</b> It was a combination of problems. Response time was not very good, and the site wasn&#8217;t able to sustain the load at peak times. The other problem was that the implementation of changes was very slow.</p>
<p>The site was implemented as one big blob. To make even small changes, you pretty much needed to deploy the whole code-base. </p>
<p>That was a very difficult thing indeed. I am not religious about open source versus Microsoft, but one thing that&#8217;s true is that the bar for doing good work with open source is much higher. You need much better people. To build simple things with .NET is pretty straightforward. So you may have lower average technical levels on the team, when the requirement is just to write to code according to a functional spec. My personal feeling is that .NET by its nature is too permissive to bad coding practices. </p>
<p><b>Sean:</b> Where do you feel .NET is too permissive in terms of coding practices, by comparison to open source? </p>
<p><b>Leon:</b> Ultimately, all the door-opening in .NET is done through tools. There is not reasoning from first principles. You write functional code in tools and it gets compiled and then it all theoretically comes together. .NET is designed to do things for you, and that is a perfectly good thing when you&#8217;re building simple web sites. </p>
<p>It becomes not necessarily such a good thing when you&#8217;re building complex and scalable applications. By the way, that&#8217;s part of the reason why .NET is so successful&#8211;80% of sites are rather simple, and they don&#8217;t have an incredible requirement in terms of performance flow and even the frequency of changes. So for those, it&#8217;s perfectly good.</p>
<p>It&#8217;s not a very high bar that you need to pass in order to be able to write code for .NET. And it&#8217;s much easier to hire people, which means the team is not as expensive.</p>
<p>All that&#8217;s fine&#8211;it&#8217;s just when you get to something like 10-20% of the general population of sites, that you start running into real challenges in using .NET. I&#8217;m convinced that you can write good software in anything, and I expect that the implementation of MSN.com, for example, is done well (though you never know). I would guess that the people who are doing it have good expertise and knowledge of that technology.</p>
<p>Unfortunately, that is more of an exception rather than the rule. On average, the expertise level of .NET web development teams I&#8217;ve seen is considerably lower than the expertise of open source teams. With open source, you have a big challenge in building a really strong team. The advantage is that you have full control over the platform that you&#8217;re building, and ultimately, when you have a problem, you can reason from first principles.</p>
<p>I have seen the best .NET sites with very annoying intermittent errors in them, and nobody knows how to find them. The reason for that is, if the tools do help, there is not much you can do. It&#8217;s very difficult to look at elements of the code; it&#8217;s very difficult to trace HTTP messages through and to figure out, &#8220;Well, it&#8217;s this missing header that&#8217;s really causing this strange behavior.&#8221; </p>
<p><a name="choosing"></a></p>
<p><b>Scott Swigart:</b> Talk a little bit about the infrastructure that you guys are built on now. Are you on sort of a LAMP stack? </p>
<p><b>Leon:</b> It&#8217;s LAMJ. </p>
<p><b>Scott:</b> So it&#8217;s Java instead of PHP or Perl. </p>
<p><b>Leon:</b> Right. We have Linux boxes with Apache fronting Tomcat. The backend is MySQL with master-slave replication.</p>
<p>We have a number of application components that we built on top Struts. Of course, we built our own platform with our own application components, but we tried our best not to reinvent the wheel. </p>
<p>The content management system is something we had a lot of pain and discussion over two years ago, but we were not able to find the one that everyone liked. I&#8217;ve seen a number of commercial products, and generally, the problem with them is that the amount of effort to customize and support them is close to that of building your own. </p>
<p>Drupal was not there yet, and we ended up building a content management system, which is specialized to support our custom applications. Because it is specialized, it doesn&#8217;t pretend to be generic, and users are quite happy with it. </p>
<p><b>Scott:</b> Mark Frons expressed the same kind of thing&#8211;he sees that as an area that&#8217;s ripe for some open source project to coalesce around, because right now everybody seems to be building their own CMS to some degree. </p>
<p><b>Leon:</b> That&#8217;s true, and there are not very good commercial products either, that I know of. Vignette was trying to build a content management system; I don&#8217;t think they succeeded. There are a bunch of other companies like Documentum and Interwoven that have content management systems. They&#8217;re very generic, and they don&#8217;t appear to be very robust in what we need.</p>
<p>So what ends up happening is that if you use one of those, the effort involved in installing, supporting, and customizing it is as high (or higher) as the effort for building a very custom system of your own. </p>
<p><b>Scott:</b> In terms of the stack that you&#8217;re built on top of&#8211;MySQL and Linux and things like that&#8211;do you rely on your own expertise and the community and things like that for support and figuring out problems? Do you get support from a vendor?</p>
<p><b>Leon:</b> I would say that 95% of the time we rely on our own expertise and we rely on the information that&#8217;s available in the community. When we were first deploying MySQL, we didn&#8217;t have enough expertise, so we had to get help from MySQL. All the tuning they did for us was very, very useful.</p>
<p>We have a support agreement through UNISYS that covers MySQL, Apache, and Tomcat. We almost never contact them with questions regarding Tomcat, Apache, or MySQL, but when we need it, we have this backup. </p>
<p><b>Scott:</b> One aspect of the value from their acquisition by Sun that MySQL talked about was that they had been looking at doing an IPO in a fairly turbulent market. And with Sun, they felt that Fortune 500s would feel safer about using MySQL if it is backed by another Fortune 500. I would be interested to get your take on that, as a MySQL customer with long-term involvement with open source products.</p>
<p><b>Leon:</b> I am not necessarily excited about it. This is conjecture, but when I heard about Sun acquiring MySQL, it didn&#8217;t make sense at first. The only context in which it does makes sense is that Sun starts distributing MySQL with Solaris, because Sun is trying to gain acceptance for Solaris, as an alternative to Linux. </p>
<p>My concern with that, and one of the reasons we went with Linux to begin with, is that the open source tools are built for Linux first, and only then ported to Solaris. </p>
<p><b>Sean:</b> It&#8217;s the LAMP stack, not the SAMP stack. </p>
<p><b>Leon:</b> Exactly. So if MySQL is going to become part of the SAMP stack, sooner or later they are going to start doing development on Solaris and porting it to Linux. </p>
<p><a name="changes"></a></p>
<p><b>Sean:</b> Some people say, &#8220;Hey, the great thing about Linux, and Apache, and a lot of these kinds of things are that they are open source, so if I really run into a problem, I can get into the code and fix it.&#8221;</p>
<p>But other people say, &#8220;Well, I have no interest in doing that. I don&#8217;t want to run my own private fork of Linux or Apache. I use those as a product. There is value in the fact that they were built using an open source methodology, but they are not something that I am going to really go in and muck with.&#8221;</p>
<p>What&#8217;s your take on all of that? </p>
<p><b>Leon:</b> It is not a good thing to create your own branch of an open source product. That said, if we are in a critical situation, it&#8217;s not completely out of the question to go into the code and put a fix in, and then submit it, and make it part of the community so that it goes into the next release. Ultimately, when the next release becomes available, you replace this little emergency fix that you made.</p>
<p>But going into the code is the last resort, and you would only do that if there is no other way. We have people that know (or can analyze) the code for open source products pretty well. At the same time, we do have support agreements with Unisys and MySQL, and we would rather they did that, if deemed necessary. </p>
<p>If need be, we can work with them to figure out what the problem is, and try to come up with some temporary fix or workaround. It is clearly not a sustainable scenario to constantly make changes to open source components. To be specific, making changes to Apache, Tomcat or MySQL code is not a good idea, except as a short-term measure. </p>
<p><b>Sean:</b> It sounds like, in a practical sense, those situations just don&#8217;t really come up very often. The products that you are building on are mature, and you are not doing such exotic stuff that you are taking them into a use case where they have never been used before.</p>
<p><b>Leon:</b> We try not to. These are fairly sophisticated products. When we first deployed our system, we ran into the kinds of bugs that required people to go into the code. Not to make a change, but to understand the code and to find a workaround.</p>
<p>Most of the time, if you have an exotic error, you don&#8217;t have to fix the code. Once you understand the implications, you probably can come up with a workaround. </p>
<p><b>Sean:</b> So you are talking about having a really high bar for your staff, if people have to be able to trace into the code of the web server, and things like that. But on the other hand&#8211;like you said&#8211;the scale of the stuff that you guys are doing is way outside of that 80% kind of case for web sites. </p>
<p><b>Leon:</b> Yes, it is. And let me put it this way. I don&#8217;t remember a scenario where we actually had to change Tomcat code. We never changed the base Apache code either, but then there are plug-ins that are distributed with Apache. We did change those, even the ones that are considered part of the standard distribution.</p>
<p><b>Sean:</b> I suppose that the plug-ins are a little more special purpose than the core web server, and they are not necessarily used by everyone the same way. </p>
<p><b>Leon:</b> I would also say that they are not as mature, because not so many people are using them. The number of people using Apache is enormous; the number of people using a particular plug-in can be two orders of magnitude lower. </p>
<p><b>Sean:</b> Many times, people are using a lot of open source stuff around the LAMP stack, like components, unit testing tools, automated build systems, and libraries. </p>
<p><b>Leon:</b> We use that as well&#8211;we use Subversion as the versioning system, we used Maven, and we used to use Ant. That&#8217;s pretty much the primary environment. </p>
<p><a name="licenses"></a></p>
<p><b>Sean:</b> How do you evaluate which open source projects to bet on? If you just go to SourceForge, there is a lot of stuff there, some of which is kind of abandon-ware, whereas some is very actively maintained and being worked on. </p>
<p><b>Leon:</b> You try not to use the libraries that don&#8217;t have a lot of activity around them. You also need to look very carefully at their license; you don&#8217;t want to use a viral license. </p>
<p>There are a couple of different licenses, as I am sure you know, for open source. One type lets you do whatever you want. Another type lets you do whatever you want, but you can&#8217;t resell it. Then there are a number of really bad licenses, where you use the code as you wish, but all the code that you write becomes open source.</p>
<p>And those, we don&#8217;t want to use. </p>
<p><b>Sean:</b> We had an interesting conversation with the president of the Apache Foundation, and he talked about some of their tenets. One of them is that any Apache project has to have maintainers from at least three different companies, so that no one company can force the direction of the project a certain way.</p>
<p>Which is a little different from how MySQL works, or a lot of the Sun stuff works, where it&#8217;s very much corporate governance versus community governance.</p>
<p>The other thing that he talked about was that they strive for a very commercial-friendly license, where you can embed stuff with the Apache license in commercial software and you&#8217;re not required to open source your derivative works. </p>
<p><b>Leon:</b> That&#8217;s critical.</p>
<p><b>Scott:</b> On one hand, you&#8217;ve got open source, and then a sub-community of that is the Free Software Foundation, which is very much ideologically oriented around the idea that &#8220;the world would be a better place if everybody released their source code for everything.&#8221; </p>
<p><b>Leon:</b> I don&#8217;t buy into that. I&#8217;m very much in favor of the commercial model, and I guess my conviction is very close to that of MySQL, because they do derive commercial benefit from open sourcing their code. They made a conscious decision; and they&#8217;ve got many people in the community contributing to the evolution of their code. At the same time, they obviously invested a lot of money.</p>
<p>In the end, their revenue is not coming from licensing&#8211;it&#8217;s coming from services, and they&#8217;re the primary experts on the database. Consequently, they have the ability to charge premium money for those services. I&#8217;m totally in favor of this sort of approach to open source where software is a commodity, and you get interested parties to contribute to its evolution. </p>
<p><b>Scott:</b> On the closed source side, if you&#8217;re using Microsoft stuff or VMWare stuff or stuff from Adobe or whoever, do you feel like you feel like you have to look at the EULAs to the same degree? </p>
<p><b>Leon:</b> With open source, you do have to pay more attention to the licensing. With commercial software, generally I haven&#8217;t found it to be a problem.</p>
<p>As a side issue, open source and closed source are not born equal. I wouldn&#8217;t use an open source component in a Microsoft environment. If I were forced to use a Microsoft environment, I would probably get a commercial database. If I had to build a system on the Microsoft OS, I would use SQL Server. I would not use one of open source projects, because I don&#8217;t feel they&#8217;re robust enough. There are not enough acceptances. There is not enough power and attention from the community. It&#8217;s very, very limited. </p>
<p>I would rather not run MySQL on Windows in production. I would most definitely not run one of those open source databases built for Windows, which are not MySQL. I don&#8217;t want to name them, but there are a number of them that were built for Windows and are considered open source projects, and they&#8217;re not so good. </p>
<p><b>Scott:</b> For open source that only runs on Windows, the community is probably a magnitude smaller than open source that primarily targets Linux.</p>
<p><a name="perception"></a></p>
<p><b>Leon:</b> That&#8217;s one consideration, and the second consideration is that Microsoft is not the primary environment that attracts the open source community. I don&#8217;t want to sound like a bigot, but I do believe that the average expertise level of developers that work on Linux is higher than the average expertise level of developers that are working in Windows. And it&#8217;s not because Windows is not good and Linux is good. Windows is an excellent operating system that went through a couple of evolutions.</p>
<p>It&#8217;s just a completely different scenario. It&#8217;s relatively closed, and the conscious decision that Microsoft made at different times was to build something that targeted 80% of the development community, and it&#8217;s done well for them. </p>
<p><b>Sean:</b> One of the reasons that I like my Macbook is that I can run any OS on it that I want at this point.</p>
<p>Yet they&#8217;re a closed source company, by and large. And they&#8217;ve got this massive innovation that they&#8217;re driving. I just saw the iPhone sales numbers this morning. Yet you take another example of a big company like Google, who gets a lot of credit for being open source, but they&#8217;re not really in a sense.</p>
<p>They&#8217;ve built their business on open source and they have some projects, but it&#8217;s not like they turn around and say, &#8220;Well, here are all the algorithms we use. Just go deal with them.&#8221; And then you&#8217;ve got companies like MySQL, that are purely open source, and they&#8217;re out to make a profit.</p>
<p>So I&#8217;m curious, as you look out across these different vectors, how do you think innovation plays into that? Because from my perspective, when I look at open source products, the more technical the product, and the more the product is by developers for developers, the more innovation seems to stream out.</p>
<p>But when they get into more commercial products like Open Office, to be frank, does it really have the same innovation level? That&#8217;s not to say that I&#8217;m in love with Outlook. I&#8217;ve got my problems with that too.</p>
<p>From the standpoint of acquiring technology in your role, when you&#8217;re looking for stuff that&#8217;s innovative, do you see a similar sort of breakdown, where the more technical the open source project is, the more likely it is to be innovative?</p>
<p><b>Leon:</b> First, there is something very interesting that you said that I was kind of itching to respond to immediately. Think of Google, think of Apple. They&#8217;re not open source. But there is a perception of open source. </p>
<p>I&#8217;ll give you an anecdotal example from real life. We started using the Google appliance for search, and we were planning to deploy it and they had a bug that was preventing us from going live. And they actually guard their code and algorithms quite closely.</p>
<p>So we said, &#8220;All right guys, when are you going to fix the bug.&#8221; And they said, &#8220;Oh, the next release is in three months.&#8221; But that doesn&#8217;t work for us. We went back and forth and in the end they said, &#8220;You know, guys, we understand. We can&#8217;t release it sooner than that, so here is the code.&#8221; </p>
<p>I put a lot of value in that. It&#8217;s a different philosophy. Yeah, it&#8217;s closed, but Microsoft would never in their life do that. </p>
<p><b>Sean:</b> Microsoft actually does make the Windows source available to certain customers, governments, etc., but I don&#8217;t think that&#8217;s widely known. </p>
<p>About the second part of the question, is there an innovation continuum in open source, where certain projects have innovation that is arguably better than in a closed source model, whereas in others maybe it struggles to really hit the mark and bring things forward? </p>
<p><b>Leon:</b> You definitely have a strong point, and you gave an example before. I don&#8217;t think Open Office is necessarily innovative. I don&#8217;t use it. It has kinks still, and it&#8217;s too much trouble. </p>
<p><b>Sean:</b> That&#8217;s an easy one to throw a stone at in terms of its innovation, but I want to get your sense as someone who has to acquire and find the right technology, where you think the soft spot is.</p>
<p>For example, the Mac is amazing for UI innovation and fidelity of user experience. On the other hand, go try and find a really good database product for the Mac. </p>
<p>On the flip side, I don&#8217;t&#8217; think people have seen Vista as the paragon of great UI innovation, you know what I mean? </p>
<p><b>Leon:</b> Just to elaborate a little bit on this example of Open Office, I don&#8217;t believe it&#8217;s quite fully an open source project. It&#8217;s heavily sponsored by Sun, and if it was strictly an open source project, the community would not spend this much effort in building an office product.</p>
<p>So there is a difference in an open source project that is supported by the community and a company deciding to open source something. When Sun open sourced Solaris, it didn&#8217;t suddenly become an open source operating system in the full definition of the word.</p>
<p>The fact that something is not closed source doesn&#8217;t make it open source. There is also a community element. </p>
<p><b>Scott:</b> Right&#8211;who&#8217;s allowed to contribute and who controls the direction of it. </p>
<p><b>Leon:</b> I believe that open source projects with strong community interest in them and strong community participation in them are all pretty innovative. Not all projects that are based on public code are innovative open source projects.</p>
<p>The other part of that is, taking Apple as an example, it is proprietary, but at the same time I can take an Apple laptop and open a command window and I can type my Linux command. </p>
<p>As far as business decisions go, catering to 80% of your audience is good, but it has a price. In the case of Windows, you don&#8217;t get a very strong following on the side of cutting edge developers. Because developers don&#8217;t love Windows machines. I don&#8217;t know a single one. </p>
<p><b>Scott:</b> Oh, I know some extremely passionate .NET developers.  </p>
<p><b>Leon:</b> Ok, maybe it&#8217;s my bias coming through…</p>
<p>[laughter]</p>
<p><b>Sean:</b> As usual, we have a lot more questions we wish we could have asked, but I want to be sensitive to the time, as we&#8217;d scheduled an hour, but thanks for taking the time to chat.  This was a great conversation.</p>
<p><b>Leon:</b> Thank you. </p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=151&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F&amp;title=Interview+with+Leon+Shklar+%26%238211%3B+EVP+%26%238211%3B+Media+Technology+%26%238211%3B+Reuters" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F&amp;title=Interview+with+Leon+Shklar+%26%238211%3B+EVP+%26%238211%3B+Media+Technology+%26%238211%3B+Reuters" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F&amp;title=Interview+with+Leon+Shklar+%26%238211%3B+EVP+%26%238211%3B+Media+Technology+%26%238211%3B+Reuters" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F&amp;title=Interview+with+Leon+Shklar+%26%238211%3B+EVP+%26%238211%3B+Media+Technology+%26%238211%3B+Reuters" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F" 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+Leon+Shklar+%26%238211%3B+EVP+%26%238211%3B+Media+Technology+%26%238211%3B+Reuters+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F26%2Finterview-with-leon-shklar-evp-media-technology-reuters%2F" 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/04/26/interview-with-leon-shklar-evp-media-technology-reuters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Jamie Thingelstad &#8211; CTO &#8211; Wall Street Journal Digital Network</title>
		<link>http://howsoftwareisbuilt.com/2008/04/02/interview-with-jamie-thingelstad-cto-wall-street-journal-digital-network/</link>
		<comments>http://howsoftwareisbuilt.com/2008/04/02/interview-with-jamie-thingelstad-cto-wall-street-journal-digital-network/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 20:50:10 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/04/02/interview-with-jamie-thingelstad-cto-wall-street-journal-digital-network/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Jamie Thingelstad In this interview we talk with Jamie Thingelstad &#8211; CTO of the Wall Street Journal&#8217;s Digital Network. In specific, we talk about: Open and closed-source technology stacks at WSJ The technology evaluation process Intersections between open source and commercial entities Security considerations with open and closed [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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><strong>Interviewee: </strong><a href="http://howsoftwareisbuilt.com/about-jamie-thingelstad-cto-wall-street-journal-digital-network">Jamie Thingelstad</a></p>
<p>In this interview we talk with Jamie Thingelstad &#8211; CTO of the Wall Street Journal&#8217;s Digital Network. In specific, we talk about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/04/02/Interview-with-Jamie-Thingelstad-CTO-Wall-Street-Journal-Digital-Network#stacks">Open and closed-source technology stacks at WSJ</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/02/Interview-with-Jamie-Thingelstad-CTO-Wall-Street-Journal-Digital-Network#evaluation">The technology evaluation process</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/02/Interview-with-Jamie-Thingelstad-CTO-Wall-Street-Journal-Digital-Network#intersections">Intersections between open source and commercial entities</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/02/Interview-with-Jamie-Thingelstad-CTO-Wall-Street-Journal-Digital-Network#security">Security considerations with open and closed platforms</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/04/02/Interview-with-Jamie-Thingelstad-CTO-Wall-Street-Journal-Digital-Network#value">The value and liability of owning code</a></li>
</ul>
<p><span id="more-144"></span></p>
<p><b>Sean Campbell:</b> Jamie, thanks for taking the time to chat.  Could you give us a little background on your role at Dow Jones?</p>
<p><b>Jamie Thingelstad:</b> Sure. I&#8217;m chief technology officer for the Wall Street Journal Digital Network, which is comprised of WSJ.com, MarketWatch.com, Barrons.com, and a number of our smaller web properties. I&#8217;ve been in this role for about a year and a half. Prior to that, I was the CTO for MarketWatch.com inside Dow Jones, after we were acquired by Dow Jones. </p>
<p>Going back further, I was CTO and one of the early founders of Bigcharts.com, which is a premium charting website. BigCharts was acquired by MarketWatch in 1999, and I became CTO of MarketWatch after the acquisition. We acquired a few companies, and then Dow Jones acquired MarketWatch. </p>
<p><a name="stacks"></a></p>
<p><b>Scott Swigart:</b> You mentioned a number of digital properties that Dow Jones has. Tell us a bit about the infrastructure behind those and the kind of volume that those properties have to handle. </p>
<p><b>Jamie:</b> Since they&#8217;re all news sites, there&#8217;s a certain unpredictability to the traffic volume. For instance, the market can drop at any second, and that can drive huge amounts of volume to our web sites.</p>
<p>The two largest sites that we run, WSJ.com and MarketWatch.com, are fairly different. WSJ.com is built in a Java environment using WebSphere, making a slow migration to Tomcat. It&#8217;s built in a fairly rigid framework, but it is very robust and very scalable. It&#8217;s stable, but also not quite as flexible as we&#8217;d like it to be.</p>
<p>The MarketWatch platform is a bit different. MarketWatch is built in a Windows environment and uses .NET. It was originally built in ASP and has been migrated to .NET in bits and pieces. It follows a &#8220;hundreds and hundreds of servers&#8221; approach, where no one server is doing all that much, so it is a bit more agile, and we can typically deploy things a little bit faster. It also has a slightly different performance characteristic. It can have the equivalent of a brown out more often than say, WSJ.com. </p>
<p><b>Scott:</b> That&#8217;s pretty fascinating that you&#8217;ve got several high volume, critical sites and yet their underpinnings are so different from each other. You mentioned moving the Wall Street Journal site to an Apache open source back end, but the MarketWatch site is on a proprietary Microsoft stack. </p>
<p>What can you tell us about the decision-making process as different organizations evaluate technology choices? It looks like these two groups took pretty different approaches to solve similar goals </p>
<p><b>Jamie:</b> The lesson to be learned there is that you can build large-scale sites to be stable, reliable, and highly available in either of those platforms. There is nothing about one versus the other that inherently makes it unable to build and provide those kinds of solutions. Good developers working in either one can get the job done, and do it elegantly.</p>
<p>The historical context is that the Journal web site as it exists now is the descendent of an engagement with IBM Consulting many years ago, and they obviously wanted to build in a WebSphere environment. </p>
<p>All this predates my being part of Dow Jones, but my understanding is that the decision was more about who to partner with than how to get to a specific architecture. In this case, IBM came to the table with WebSphere. In the MarketWatch example, that&#8217;s the platform that we built over the course of many years starting with BigCharts, and the platform actually started in a very different place.</p>
<p>In the very early days, before it was MarketWatch, when it was the platform that ran BigCharts, it was Sybase. It was Perl and CGI in Apache. And it was an ANSI C++ program that we had written to serve charts, that could actually be compiled on both the Win32 library as well as in Unix, at the time Solaris. And so, we had this sort of cross-platform environment. We made a decision around 1996 or &#8217;97 that we were spending too much effort building plumbing code and decided that we needed to move to something else.</p>
<p>At the time, we evaluated CORBA and COM, and our conclusion was that COM was better suited to the type of solutions that we were trying to build. We rewrote the entire system into a COM model and then switched our front-end production environment from Solaris to Windows NT. The net benefit of all that was that we stopped writing a lot of code that was about glue and plumbing, and focused all of our code on business requirements and functions and features that our customers wanted. </p>
<p><a name="evaluation"></a></p>
<p><b>Scott:</b> Can you walk us through how you think about the technology evaluation process? And, as a follow-up, broadly speaking, what are your observations about the pluses and minuses of building on top of a community-supported open source stack, versus going with more of a partner, like IBM or Microsoft?</p>
<p><b>Jamie:</b> I think you have to start with your team. If you&#8217;re able to build your own team, it&#8217;s less of an issue, but if you&#8217;re walking into an environment where the team is well-versed in one tool set or one part of the stack, you shouldn&#8217;t fool yourself into thinking that you can then choose some alien technology and that the team will just flow with it.</p>
<p>I don&#8217;t know many Java shops out there where you could just walk in and say, &#8220;Well, you know what? We&#8217;re going to do the next project in Windows&#8221; and have that be just fine. Independent of culture, independent of bigotry, I think it&#8217;s a matter of skills and capabilities, and some of those skills don&#8217;t transfer easily.</p>
<p>But if you take the team out of it, then I think it&#8217;s a pretty interesting angle. My view is that there really is little value that a proprietary platform like the Windows platform gives you. If I were going to start, green field, building my own shop, I would be heavily biased towards free platforms: some Linux distribution, likely something like Apache.</p>
<p>I would also be very biased towards an interpreted environment. I think there have been great advances in the compiled environments for the web, and .NET has made huge leaps in performance and capability. Similarly, so has Java. But it&#8217;s interesting that the sites that I see doing the most “out-there” stuff, that are the examples of innovation, are typically not running a compiled environment on the front end. WordPress, Twitter and Facebook come to mind.</p>
<p>I hate to suggest that there&#8217;s an either-or situation where either you are innovative and you&#8217;re on an interpreted environment, or you&#8217;re not and you run a compiled environment. I don&#8217;t think it&#8217;s quite that simple. But I do think that there is some real merit to the lightness that you get with something like PHP, with a robust framework, or Ruby on Rails.</p>
<p>In fact, we&#8217;ve tried to have our cake and eat it, too. One of the most recent products that we released on the MarketWatch site is a product called MarketWatch Community. And that project was actually built using the MonoRail framework from Castle Project, which is essentially the Rails framework laid on top of C#. It&#8217;s an interesting way to get the benefit of having a team that understands tools like Visual Studio, and wants to have that very robust debugging environment, but wants to also take advantage of the flexibility that Rails offers. We have been able to have it both ways, if you will. </p>
<p><b>Scott:</b> I think there has been a resurgence in the last few years of dynamic languages or interpreted languages. That programming model seems to be making a pretty strong comeback. When I got started with Unix, way back in the day, they were used for a lot of administrative things, and there were things like Tcl, Tk and some of that kind of stuff. Then it went very compiled. Now it seems to be going back towards more of a dynamic language approach. </p>
<p><b>Jamie:</b> It seems we always have the same problems, but we want to solve them in different ways. We try to find performance and optimization in different parts of the stacks. People have been arguing for decades: could you make an interpreted environment that&#8217;s as fast as a compiled environment just by doing JIT-based compilation?</p>
<p>Maybe you can, maybe you can&#8217;t&#8211;I don&#8217;t know. That&#8217;s pretty academic. At the end of the day, you can&#8217;t get away from the fact that Facebook is written on PHP. There are very large sites like Twitter that do an extreme amount of requests per second, and it was build on Rails. I don&#8217;t think that you can state emphatically anymore that those environments do not scale. Clearly, they can, even if it takes a different set of tools.</p>
<p><b>Scott:</b> There was an article I read a couple of years ago that was called &#8220;The Hundred Year Language,&#8221; or something like that, where somebody was speculating about what we&#8217;re going to be using to program in 100 years from now. His conjecture was it will be just insanely inefficient, but it won&#8217;t really matter.</p>
<p>Because we would all write in assembly, if we wanted to wring the most performance out of it. Whether you have to buy 100 servers or 200 servers to run it, if it&#8217;s very agile in terms of being able to scale, then scale out and focus on supporting change rapidly and those kinds of things. That&#8217;s a lot more important than just wringing every drop out of the CPU. </p>
<p><b>Jamie:</b> One of my professors in college, John Reidl, and this was the early &#8217;90s so I think he was a little ahead of his time, would say that CPU, memory, bandwidth and disk all scale to infinity. The only thing that doesn&#8217;t is programmer time. At the end of the day, the most important thing is to understand your code and to be agile with your code. Hopefully, you can solve everything else through other innovations. </p>
<p><b>Sean:</b> One thing I&#8217;m curious about is usability, whether that&#8217;s from a management perspective, a development environment perspective, or an end user perspective. </p>
<p>When you&#8217;re thinking about acquisitions is it less about scalability, and more about usability? Do you feel like the open source community is best to drive things that have a high degree of usability and utility? Or do you feel that that&#8217;s the place where maybe they&#8217;re striving to, or they have limits that are inherent in the model?</p>
<p><b>Jamie:</b> Well, I guess it depends on what level you define that usability. Some of the most opaque projects around are open source projects. The code is all available, but unfortunately, you have to actually look at the code to figure out how to do anything with it. </p>
<p>And the result of any question is, &#8220;Well, you&#8217;re an idiot. Go look at the code.&#8221; That&#8217;s the extreme, but I think that&#8217;s one of the places that the open source model puts an additional obligation on somebody like a CTO, or a VP of engineering. </p>
<p>With proprietary software, you can somewhat base the viability of the product on its market acceptance, and you get the benefit of the fact that either these other people have bought it or they haven&#8217;t. And they have reasons why they bought it or they haven&#8217;t bought it. And bad products die naturally, out of lack of adoption. In the open source model, that&#8217;s not necessarily the case. You can have a product that is great and just doesn&#8217;t get picked up, or vice versa, so it requires a vetting that&#8217;s a little bit different. What&#8217;s the velocity of the project? How many people are truly committed to the project? How willing are you to commit to the project?</p>
<p>I couldn&#8217;t tell you how many corporate CTO types I&#8217;ve talked to that would love to use open-source projects, but would never give anything back. And, if that&#8217;s your position, I think you should question the ethics of using open source software and just being a parasite. If you&#8217;re not willing to give back your additions, which in some cases is the requirement, that&#8217;s not good.</p>
<p>The Mac also has an interesting dichotomy. I&#8217;m an old-school Mac guy, and I&#8217;ve recently returned to the platform when they switched to Intel. I have commented to many developers that they need to go get a Mac, because I think that, in many ways, the most innovative software that is being built right now is being built on the Mac. In some cases, it&#8217;s just wacky programs like WriteRoom. </p>
<p>A great example is QuickSilver. QuickSilver re-defines how you would interact with your computer. It&#8217;s clear to me that the most innovative development right now is happening on the Mac. Yet at the same time, the thing that bothers me about the Mac is that it is positioned as the computer for the rest of us. It&#8217;s portrayed as the people&#8217;s computer, when in fact; it&#8217;s the most closed platform out there. You can&#8217;t build one. </p>
<p>I have always felt that people&#8217;s computer needs to be a computer that the people can build. So there&#8217;s this dichotomy. But it&#8217;s a great ecosystem. Really great software is being built on Macs. I don&#8217;t know if I have ever seen a Rails screencast that was done on a PC. It&#8217;s very clear that Apple has successfully gained mindshare in that developer community, and they&#8217;ve gotten a lot of market share as a result.</p>
<p>I doubt you&#8217;ll ever see any volume of Macs in server rooms. But at the end of the day, it&#8217;s Unix underneath, and that&#8217;s what gives it the credibility to be able to do things like Rails development. </p>
<p><a name="intersections"></a></p>
<p><b>Sean:</b> It seems like there are a lot of open source acquisitions and even some open source projects that have a single voice at the maintainer level. Sun gets criticized for this a lot. You see a lot of companies put an open-source bumper sticker on their product.  The &#8220;free&#8221; version is open-source, but that&#8217;s just to get some market share and up-sell you to the paid version.  Do you see a trend that direction, or do you see it going a different way? </p>
<p><b>Jamie:</b> I think one of the great examples there is Red Hat. I don&#8217;t want to say that they&#8217;re not fully imbued with open source in their blood. They are. But Red Hat Enterprise is as expensive as Windows. You come to the table with this idea that it&#8217;s Linux, so it must be cheaper, but in fact, no it&#8217;s not. That proves out that technology teams still need support. No matter how good the teams are or how deep your team is, from time to time, most teams are going to need support from an expert. So there&#8217;s a market to be made there in providing that support.</p>
<p>It also highlights that the traditional software business model is still valid. Microsoft&#8217;s and Oracle&#8217;s models are valid, and are a proven way to run a business. These companies are successful doing that. One other thing concerns me&#8211;Sun buying MySQL makes me wonder about the future direction of MySQL. Is MySQL going to continue to be a viable platform for the kinds of projects that it has been, or are they going to try to move it into a different market space?</p>
<p>And even MySQL, prior to Sun buying it, is an interesting example. I&#8217;ve noticed that SQLite has really made a lot of headway. And what&#8217;s happening, from my perspective at least, is that SQLite is picking up where MySQL has abandoned. MySQL decided to go more up-market and tackle bigger problems, and build in some features that are going after the Oracles and the Microsoft SQLs of the world. And that left a space for a much lightweight SQL engine, so SQLite is filling that gap.</p>
<p>So you could argue that, maybe, that&#8217;s how it should work, that when a void is created, there&#8217;s a new open source project that will fill it. But I do think that this need for an enterprise version of these various packages is really just a reflection on the support needs of organizations.</p>
<p>The big thing that they sell all that stuff on is FUD. When there&#8217;s a security issue, you want the verified Red Hat patch, so you&#8217;re going to pay a thousand dollars a year per box, or something like that. </p>
<p><b>Scott:</b> When you look at the spectrum of open source projects, you&#8217;ve got some projects that are very, very old school. You&#8217;ve got Linux. You&#8217;ve got Apache Web Server and some of that stuff. They&#8217;ve been around for a long time. Extremely mature communities, high-quality code, and ubiquitous.</p>
<p>And then you&#8217;ve got kind of this next-generation of open source, to some degree&#8211;PHP, MySQL, Xen&#8211;a lot of these kind of companies, where the main driver behind the code base is a single company. And some of them are really what I&#8217;ve heard people call an aquarium model&#8211;like MySQL&#8211;where they don&#8217;t really have outside contributors. You can look at the code, but unless you work for MySQL, you&#8217;re probably not a contributor. A lot of Sun&#8217;s stuff is that way, too, although I think they&#8217;re actually working to get more outside contributors.</p>
<p>And so the question is, if you&#8217;re going to launch an open source project today, how do you take the world by storm with it? Take a look at Ubuntu building on top of Debian. It seems like the ones that catch fire are the ones where there is a revenue model and there is a business around the code base. What are your thoughts on that? </p>
<p><b>Jamie:</b> I think you&#8217;re right, although it&#8217;s hard to know what&#8217;s the cause and what&#8217;s the effect. Is it successful because there&#8217;s this revenue model, or is there this revenue model because of something else? Are there examples of very, very successful open source frameworks that are not built around a commercial endeavor? Could you say Rails? Rails is fundamentally the creation of 37signals, and they&#8217;re doing commercial things with it. </p>
<p><b>Scott:</b> Debian comes to mind; they&#8217;re not commercial. But then again, Debian caught fire to some degree when Ubuntu used it as their basis. There seems to be a bit of an uneasy relationship between the two communities. I think Debian is thankful for the attention that Ubuntu brought, but at the same time, the philosophies of the projects are different. Going the other direction, Canonical is very happy to say, &#8220;we&#8217;re built on this rock solid distribution. It&#8217;s a distro you can trust, but we also have got our own ideas.&#8221;</p>
<p>One of the things that I look at is that we are in this first wave, so you&#8217;ve got PHP, which has the chief sponsor Zend. You have Xen, whose chief sponsor is XenSource. Red Hat acquires JBoss. And now as these acquisitions start to happen, I wonder what the landscape will look like in five years. MySQL gets acquired by Sun, which has promised to open source everything, so they are moving toward an open source model. </p>
<p>XenSource gets acquired by Citrix, which doesn&#8217;t have an open source history and ethos. JBoss gets acquired by Red Hat, that&#8217;s sort of open from the beginning. Then maybe some of those companies get acquired by other companies. To me, it will be interesting to see how much of the projects will remain tied to the companies.</p>
<p>And what happens if Citrix ends up not being a good steward of Xen? Will they end up having bought nothing because there will be a fork that emerges? </p>
<p><b>Jamie:</b> The other challenge that presents itself in those cases is, how many open source contributors want to contribute to Citrix? Probably not a lot. Once you tie projects into these corporations, the culture may resist it and go off in a different direction. </p>
<p>I think it will be a true test over the course of the next two years to watch the legal pushes on the GPL and the various software agreements out there. Will companies be able to weasel themselves out of that, or just identify ways to break the requirements of the GPL or the Apache license?</p>
<p><b>Scott:</b> It&#8217;s interesting too that MySQL had a way of unlocking the GPL, so if you didn&#8217;t want to buy into the GPL but you wanted to redistribute MySQL with your proprietary code, you could just pay MySQL for that right.</p>
<p>On the other hand, if you wanted to adopt a GPL license yourself, then you could redistribute without paying MySQL the licensing fee. It&#8217;s a very kind of Wild West feeling. Everybody is trying a different model and a different way. I wonder if that&#8217;s the way it will stay, or whether things will consolidate over the course of a decade. How much does this disparity of business models and licensing for open source projects weigh on your decision making? </p>
<p><b>Jamie:</b> It weighs a lot. It concerns me greatly that we would be leveraging an open source framework that could potentially die or be acquired by the wrong company. Of course, the acquisition angle can happen no matter what. Products can be acquired by companies that you&#8217;re not really excited about, so I don&#8217;t think you&#8217;re protected from that in any model.</p>
<p>But the bigger issue, in my book, is the longevity and the velocity of the project. For example, I think Ruby on Rails has an incredible amount of velocity right now. There are a lot of people working on it, there&#8217;s a huge developer community out there. But I ask myself questions like, &#8220;Will I be able to find a Ruby developer in 10 years?&#8221; I don&#8217;t know. Will I be able to find a Ruby developer in a year? They&#8217;re not out there at the same volume as other skills.</p>
<p>So in that case, the fallback is, how hard is it to teach people? If it&#8217;s a fairly transferable thing and it&#8217;s something that an average engineer who knows a few languages could easily pick up, then I don&#8217;t think there&#8217;s a high amount of risk. But if it&#8217;s something very esoteric, I wouldn&#8217;t touch it. The other question to ask is, at what layer of your architecture does that system live?</p>
<p>There is a certain level of the architecture where I would be concerned about the ability of an open-source project to provide that level of always-on availability. I have to admit that that goes in the face of Linux itself, since in many cases, Linux is the underlying OS. But it&#8217;s at a little bit of a different layer in the stack. Knowing the complexity of that layer of development and knowing that it&#8217;s something that companies have a very hard time pulling off, I would be hesitant to use an open-source load balancer. </p>
<p><a name="security"></a></p>
<p><b>Sean:</b> Given that a lot of the work you do is with financial data, I can only imagine you&#8217;re an interesting target for a variety of folks out there who have malevolent intent. You&#8217;ve got two stacks&#8211;one that&#8217;s predominately a closed-source base and one that&#8217;s predominately an open-source base. What do you think about security issues around those platforms? Lately, this is a really, really hot topic. It always is, but it seems to ebb and flow. </p>
<p><b>Jamie:</b> Maybe I&#8217;m too much of a technologist to look for it, but whenever somebody says their platform is more secure than everybody else, to me it&#8217;s just a bunch of crap. There are really very few platforms that have truly iron-clad security. And by and large, those are the platforms that have been around for so long that they&#8217;ve just been exposed to many, many tests. When you think of the Unix kernels themselves, some of them have not seen significant modifications for a decade. And those are probably pretty secure.</p>
<p>But the reality is, if you&#8217;re regularly modifying and releasing code, you&#8217;re going to have security issues. So we protect all our systems with counter-measures in the front and make sure that we have compensating systems to defend against all of that. So I wouldn&#8217;t go one way or the other based on this promise of security. In fact, I think it&#8217;s a little slimy for Red Hat to use security as the push toward getting people to buy Red Hat Enterprise. I think you should be selling based on features and not fear, but I think it&#8217;s a wash between the various platforms. </p>
<p><b>Scott:</b> There are organizations that are building things on top of Linux or Apache, and they&#8217;re not being hacked right and left. Like you said, it may not have that much to do with the platform itself. It may have to do with the expertise of the organization like yours. You actually do the implementation and know how to build these perimeters of defense and that kind of stuff. Do you have an opinion on the notion of many eyeballs as it relates to security? </p>
<p><b>Jamie:</b> My general opinion is there is some difference between the number of the eyeballs and the quality of the eyeballs. Just having thousands of developers looking at your code certainly is not going to qualify it as secure unless they really are qualified to say it is secure. I do think there is a benefit to that. At the end of the day it gets to these bigger issues, like what is the right way to develop source?</p>
<p>We know that in medicine, for example, it is not good for one doctor to just do everything themselves. They should consult and review their findings with other doctors and come to some conclusions. We certainly would not let one engineer build a bridge without ever having another engineer look at the code. In technology, we have this belief that it is our intellectual capital. The source code is the family jewels, and that is where the intellectual capital is located.</p>
<p>I don&#8217;t tend to really follow that idea. I tend to believe more that the intellectual capital is the engineers that are writing that code. I have actually gone on record many times saying that your source code repository is not intellectual capital, it is a liability. If you look at it on your balance sheet, you should be putting it on your balance sheet as a liability. The only thing you have to offset it is the intellectual capital you have in your engineering team. All code is just waiting to break. It is just a matter of time. </p>
<p><a name="value"></a></p>
<p><b>Scott:</b> I have heard people say that code is like maintaining inventory. You have a warehouse full of stuff. </p>
<p><b>Jamie:</b> Every line has a cost. In the future, is the fact that your code is open source really going to matter much to your business model?</p>
<p>You could argue that companies like Red Hat and MySQL are showing that it&#8217;s not the case&#8211;that you can have a very normal business model and have an open source code base underneath that. </p>
<p><b>Sean:</b> Right. Someone would have to treat MySQL very, very badly for somebody else to do a meaningful fork, because nobody else is going to staff 200 developers on it. </p>
<p>I think Sun is going through that transition, where they&#8217;re realizing the value of Solaris is not necessarily the code itself. It is the fact that they have x-hundred number of Solaris developers that know how to work on it. I think Microsoft could do the same thing, if they open-sourced Windows.</p>
<p><b>Jamie:</b> You could argue, what would happen if Microsoft just open-sourced Windows tomorrow? </p>
<p><b>Sean:</b> I don&#8217;t think it would change very much at all. Again, nobody is going to fork that in a way that Dow Jones would trust this competitor to enhance, patch, and build the next version of Windows more than they would trust Microsoft to keep going. </p>
<p>The expertise is in the people&#8217;s expertise around that code base. That seems to be fundamentally what a company is acquiring. As long as they are reasonably good stewards of the code, I don&#8217;t think companies have to worry about losing control of a project just because it is open source. </p>
<p><b>Jamie:</b> It is interesting, because I am a believer in this kind of long view of computer science. What I mean by that is it is still an incredibly immature field. It is much more art than it is science. We have not figured out the basics to our craft to the extent that people who build bridges have figured it out. We may find 20 years from now that the best practice is for all the code to just be out there and that is just how you do it.</p>
<p>Part of the benefit of that is the many eyeballs. Or part of the benefit is automated agents that are scanning code on the behalf of third parties, looking for things. It is hard to know exactly what that would be. In general, I do think this belief that your code is a huge asset you have to keep locked in a big safe is terminal. I do not think that is going to be the path forever. </p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=144&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F&amp;title=Interview+with+Jamie+Thingelstad+%26%238211%3B+CTO+%26%238211%3B+Wall+Street+Journal+Digital+Network" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F&amp;title=Interview+with+Jamie+Thingelstad+%26%238211%3B+CTO+%26%238211%3B+Wall+Street+Journal+Digital+Network" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F&amp;title=Interview+with+Jamie+Thingelstad+%26%238211%3B+CTO+%26%238211%3B+Wall+Street+Journal+Digital+Network" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F&amp;title=Interview+with+Jamie+Thingelstad+%26%238211%3B+CTO+%26%238211%3B+Wall+Street+Journal+Digital+Network" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F" 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+Jamie+Thingelstad+%26%238211%3B+CTO+%26%238211%3B+Wall+Street+Journal+Digital+Network+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F04%2F02%2Finterview-with-jamie-thingelstad-cto-wall-street-journal-digital-network%2F" 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/04/02/interview-with-jamie-thingelstad-cto-wall-street-journal-digital-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Marc Frons &#8211; CTO &#8211; New York Times Digital &#8211; Part 2</title>
		<link>http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2/</link>
		<comments>http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 17:38:19 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[corporate citizenship]]></category>
		<category><![CDATA[journalism]]></category>
		<category><![CDATA[Marc Frons]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[open source licensing]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Marc Frons In this second interview with Marc Frons, CTO for the New York Times digital operations, we discuss the Times use of open source in their infrastructure. In specific, we talk about: WordPress and blogging at the New York Times New York Times investment in open source [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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><strong>Interviewee: </strong><a href="http://howsoftwareisbuilt.com/about-marc-frons-cto-new-york-times-digital-operations/">Marc Frons</a></p>
<p>In this second interview with Marc Frons, CTO for the New York Times digital operations, we discuss the Times use of open source in their infrastructure. In specific, we talk about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2#wordpress">WordPress and blogging at the New York Times</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2#investment">New York Times investment in open source</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2#licensing">Licensing issues and corporate citizenship</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2#support">How they address open-source application support and evolution</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2#CMS">The role of content management systems</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2#future">The future of corporate investment in open source</a></li>
</ul>
<p><span id="more-135"></span><br />
<a name="wordpress"></a></p>
<p><b>Sean Campbell:</b> Thanks for taking the time to chat. In our earlier conversation we talked about some of your digital media initiatives at The New York Times, and one thing you mentioned was blogging. Talk a little about your blogging infrastructure.</p>
<p><b>Marc Frons:</b> Sure. About 99.9 percent of our blogs are on WordPress and have been for the past year or two.</p>
<p><b>Sean:</b> What else did you guys evaluate besides WordPress &#8212; or was WordPress just an obvious choice?</p>
<p><b>Marc:</b> We had some of our blogs on Moveable Type. At a certain point we decided to move over to WordPress. The move predates me, but I think one of the reasons was just the personal preference of the developers. WordPress has a lot of plug-ins available. I think it was about the same time The Times acquired About.com, which was also a big user of WordPress, so that might have tipped the scales.</p>
<p><b>Sean:</b> There&#8217;s some recent news about The Times and WordPress. Tell us a little bit about what&#8217;s been happening there.</p>
<p><b>Marc:</b> Sure. I think that over time the relationship between WordPress and The New York Times has deepened, and we&#8217;ve gotten closer to that company and the principals. We recently announced an investment in WordPress and took part in one of their second rounds of financing in WordPress and Automatic, which is the commercial end of the WordPress.org organization.</p>
<p>We&#8217;re very excited about that. As part of that deal, we&#8217;re working very closely with WordPress on NYTimes.com blogs and some special things for The New York Times that WordPress is going to help us with.</p>
<p>Some of our blogs today are not on our own infrastructure and are fairly customized. One of the things we&#8217;re going to do is have WordPress help us move our blogs to our own infrastructure, and do them the right way    meaning a more standard configuration. We had customized them for various reasons, for scalability within our environment as opposed to scalability overall, so they are going to help us do that.</p>
<p>We are also working together to marry the New York Times taxonomy to the larger taxonomy of the blogosphere, so it&#8217;ll be easier for us to find relevant posts that have surfaced on blogs posted by WordPress.com, and to integrate those posts into our own site. We&#8217;re doing a little bit of that right now with another tool we own called Blog Runner. </p>
<p>WordPress will probably be helping us with some training and documentation for our newsroom, so any of our journalists who are new to blogging or really don&#8217;t understand what it&#8217;s all about can 1) learn how to use the WordPress system more easily, and 2) learn a little bit more about blogging in general and how to use these tools.</p>
<p>And finally, I think we&#8217;ll probably be working on some things around security for our environment, and some plug ins around that.</p>
<p>Our intention in all these things is to give back whatever we can to the community and keep it open source.</p>
<p><a name="investment"></a></p>
<p><b>Sean:</b> I&#8217;m just curious &#8212; and forgive my ignorance on this because I just don&#8217;t know &#8212; has The New York Times contributed in a financial way to an open source project prior to this, or is this the first time? </p>
<p><b>Marc:</b> To my knowledge, this is the first time that we&#8217;ve invested in a company that started with an open source model.</p>
<p><b>Sean:</b> So what&#8217;s the thought process behind it?</p>
<p><b>Marc:</b> I think there were a couple of things. One is knowing the principals of the company. We&#8217;re very comfortable with them as business people and as technologists. It’s not often you get the opportunity to invest in an exciting Internet company or a growing software business at a reasonable multiple or any multiple that you can afford.</p>
<p>Finally, our confidence in the WordPress platform and what WordPress stands for as a company, and aligning its values with our own, was something that really attracted everyone here to this particular deal.</p>
<p><b>Sean:</b> Talk about how you see their values aligning with yours, compared to just any open source project. </p>
<p><b>Marc:</b> I think there&#8217;s a real commitment from the WordPress team for quality, for openness, for an exchange of ideas, but in a way that is respectful. The meetings we&#8217;ve had with them have led us to believe that this is a company that cares about quality, that cares about its customers, that has an evolving platform, and that&#8217;s tapping into the community but being smart about it.</p>
<p>One of the things a WordPress founder said was, &#8220;We listen to our customers very closely, but we don&#8217;t do everything they say.&#8221;</p>
<p><b>Sean:</b> Right.</p>
<p><b>Marc:</b> I think that&#8217;s really important for every company to think about. That really resonated with me, because I think that no matter what, you still need a filter on what you&#8217;re doing. There can be good communities and bad communities    communities that are smart, and some that are smarter than others.</p>
<p>I think it&#8217;s up to the people leading a project, and especially an open source project, to be smart about what gets promoted into the code base    what features and functionality one concentrates on and what one doesn&#8217;t. Often a special interest group can hijack a project, in a sense. That hasn&#8217;t happened at WordPress, as far as I&#8217;m concerned.</p>
<p><b>Sean:</b> I know what you&#8217;re talking about, because we&#8217;ve always had a philosophy, just from an entrepreneurial standpoint, that to be effective you have to turn down certain opportunities. In business, you&#8217;ll be offered work that technically you could do, but that&#8217;s just not a smart direction for your company to go. I get really worried when I&#8217;m dealing with another company and I feel like their motto is &#8220;Say yes to anything.&#8221;</p>
<p>It seems that open source projects might be under the same pressure, where someone says that a certain direction will add thousands of users or enable a scenario they feel is critical, and someone on the project has to have the maturity to say, &#8220;Yes, that direction would benefit us, but it would cost us in other areas, and those costs outweigh this one benefit.&#8221; It sounds like you&#8217;re saying the WordPress folks really get that.</p>
<p><b>Marc:</b> I think that&#8217;s true. And I think you should talk to the WordPress guys about that, if you haven&#8217;t already. It would be fascinating to understand their process of deciding what makes it into the core and what doesn&#8217;t.</p>
<p>I mean, one of the things that they said was, &#8220;Look, we have an architecture that allows you to build any kind of crazy plug in you want. But when something becomes really popular and a lot of people find it useful, it becomes part of the code base.&#8221;</p>
<p><b>Sean:</b> Kind of like what they did with tagging recently.</p>
<p><b>Marc:</b> Right.</p>
<p><b>Sean:</b> They didn&#8217;t fold in the Ultimate Tag Warrior plug-in, they didn&#8217;t do every last thing they could do with tagging. They basically said, &#8220;We&#8217;ll support tagging. If you want something fancier, that&#8217;s what the plug in community is for.&#8221; </p>
<p><b>Scott Swigart:</b> Sometimes people are skeptical when they hear about corporate sponsorship of open source. How would you respond to someone who says, &#8220;Does that mean The New York Times has become a special interest that WordPress now has to cater to, even if what the Times wants isn&#8217;t necessarily what the broader community wants?&#8221;</p>
<p><b>Marc:</b> Well I don&#8217;t think we own enough of WordPress to really influence it that much &#8212; we&#8217;re a minority investor. Even if we owned a majority stake or the company outright, the values of the founders and the principals of the company are such that I don&#8217;t think they would let that happen    where they would say, &#8220;The next release of WordPress will be totally customized for partner X or partner Y, and we don&#8217;t care about this community we built.&#8221; That would truly be shooting themselves in the foot, because their community of users is always going to be much larger than any single company. It would also be bad business for any company that acquired them. </p>
<p><b>Scott:</b> Sean and I are both political junkies, so it sounds to me as if a politician explains a contribution by saying, &#8220;This contributor isn&#8217;t asking me to go in a different direction. He&#8217;s supporting me because he agrees with what I do.&#8221;</p>
<p>You&#8217;re saying the interests of The New York Times and the interests of WordPress were already in alignment, and it&#8217;s not about changing their direction.</p>
<p><b>Marc:</b> Right. It&#8217;s not like WordPress was a turnaround situation and we said, &#8220;Gee, we&#8217;re just going to go in there and clean this place up and change their strategy. And, you know, they should be focusing on a different market, and building everything a different way.&#8221; We said, &#8220;We love what you guys are doing, and we&#8217;d love to be a part of it. Since we&#8217;re already using your product, we&#8217;d like to be closer together, both to have more input in what you&#8217;re doing and to hear more about your ideas for our business.&#8221;</p>
<p><b>Scott:</b> Well, let me flip it around too. Let me be a crotchety New York Times shareholder who says, &#8220;Look guys. Focus on the news business. There are all these open source beauty pageants going on. Don&#8217;t get caught up in the hype. Show me how I&#8217;m going to see a return on my investment.&#8221;</p>
<p><b>Marc:</b> We invested in a company that just happens to have an open source model. And as we&#8217;ve talked about before, I don&#8217;t think it&#8217;s accidental that that&#8217;s a reason for their success    or one of the reasons for their success. But I think we primarily invested in them because we think they&#8217;re a good company with a very good sense of their market and their product and their audience, and of how they&#8217;re going to continue to grow and improve.</p>
<p>And I think the fact that open source is a part of that is a really good thing, but if they didn&#8217;t have a clear idea of themselves it wouldn&#8217;t matter whether they were open source or not. So when we look at The New York Times and our strategy from here on in, it&#8217;s really about treating ourselves as a multiplatform content, news, and information company. </p>
<p>If you think about it, we have a newspaper, we have a Web site, we have a mobile site. We have various means of publishing. We have our own internal content management system. We have blogs that are on WordPress. We may have other types of user-contributed content that might be hosted on WordPress or in a WordPress content management system. We have our content on more advanced devices, and we have an R&#038;D group that experiments all the time, that looks around corners and asks, &#8220;What&#8217;s coming next?&#8221;</p>
<p>So for us, the fact that they are open source is terrific, but it is incidental to who they are in terms of our investment.</p>
<p><b>Scott:</b> Right, WordPress is a leader in that space. Obviously, a media company that has a connection to that kind of media infrastructure, a media company working with the people who are working on key underpinnings of the blogging infrastructure, makes perfect sense.</p>
<p><b>Marc:</b> We certainly thought that. And look, it&#8217;s not like they are the only ones out there. There are a lot of good companies doing open source blogging platforms. But I think what impressed us about WordPress is the velocity of its growth, as well as WordPress.com, which I think has come on quite strongly in 2007 and continues to grow nicely as the company really focuses on that mission of providing a robust blogging platform for all kinds of users.</p>
<p><a name="licensing"></a></p>
<p><b>Scott:</b> Let me ask you a question in a completely different area. When it comes to licensing open source projects, there are a number of different licenses a project can use. Does licensing affect your decisions about what open source projects to use or how you use them? Does it matter whether it&#8217;s GPL v3 or v2, or something more commercial friendly like Apache? Do you look at things in-depth or is it just something that sort of floats through in the middle of the decision making process?</p>
<p><b>Marc:</b> I would say the latter.</p>
<p>We don&#8217;t worry about it as much right now because we&#8217;re not producing software in that way. We were working with another company and were interested in licensing the product they&#8217;d built, and then one of the lead developers called me and said, &#8220;Look, we just have to talk to the lawyers because this includes some open source software and we have to make sure that we have all the licenses right and can reuse it in a commercial product, et cetera, et cetera.&#8221; And I said, &#8220;OK, you work that out with the lawyers.&#8221; But generally, it&#8217;s not an issue.</p>
<p><b>Sean:</b> When you mentioned build software on top of open source, it made me think of something I&#8217;ve been wanting to get a perspective on. Google is an interesting example because it is considered an open source company, but it hasn&#8217;t really open sourced any of its significant IP.</p>
<p>With that in mind, do you see a time when The New York Times would potentially open source part of the effort you are building now? You&#8217;ve obviously built a high end Web portal for a very large media outlet. On top of that, The Times has a willingness to engage with the community that maybe a Google    a pure for profit company    doesn&#8217;t have to the same degree.</p>
<p><b>Marc:</b> Sure. Just as Google has &#8220;do no evil,&#8221; one of the core values of The New York Times is to &#8220;enhance society.&#8221; That phrase is in our mission statement. And I think we touched on it a little bit last time. One of the things we did about six months ago was end Times Select, our pay product. Almost the entire Times Web site is now free of charge, or totally advertiser supported.</p>
<p>We think of that as an open model in terms of content. The next step for us is building APIs and applications that leverage our content, and then opening those APIs to the developer community at large so that others can display our content and applications in new and useful ways.</p>
<p>We are actively building those tools, and also thinking about additional ways to pursue that strategy. So on the Times site, we have a blog called &#8220;Open&#8221; that&#8217;s all about our open source efforts. Right now it’s largely if not exclusively written by our developers. We&#8217;re hoping to have our first New York Times developer day later this year. It would be modeled after the Google and Yahoo hack days. Before we do that, however, we’ll distribute a set of our content APIs so that developers outside The Times can create applications that combine our content with functionality they devise &#8212; and basically create open source applications using our technology and our content. So we take the effort very seriously. We think of it as part of our overall strategy of having a positive impact on society as well as improving our own Web site and our own news and information platform.</p>
<p><b>Scott:</b> I&#8217;d also be interested in your perspective on two of the licensing models that exist in open source. On one end of the spectrum, you have Apache foundation licensing, which is very commercial friendly. You can take anything under the Apache license and build on top of it.</p>
<p><b>Marc:</b> Right.</p>
<p><b>Scott:</b> You can include it in your product, bundle it with commercial software, and you are not required to open source your derivative works.</p>
<p>At the other end of the spectrum you have the Free Software Foundation with GPL licensing. Its goal is to &#8220;infect&#8221; projects with its idea of licensing, such that if you extend GPL code, you have to open source your work.</p>
<p>This is in part because the Free Software Foundation takes the view that all source code should be free and should be open. You should not be able to take open source software and derive from it, essentially building on the shoulders of giants, and not give back. You also shouldn&#8217;t be able to patent software, the same way that you can&#8217;t patent a mathematical equation.</p>
<p>So with that in mind, what is your view on intellectual property in general? Do you have any sort of philosophical viewpoint about what&#8217;s right between those two extremes?</p>
<p><b>Marc:</b> On the one hand, I can certainly see the FSF&#8217;s point: if you&#8217;re using open source code you shouldn&#8217;t turn around and try to make it proprietary &#8212; you should give back to the community. But I favor the Apache Foundation&#8217;s approach because I believe it actually encourages more innovation. In other words, if I know I can use open source code to create something new and am not restricted in terms of how I can profit from it, I&#8217;m more likely to use it and hence more likely to create something innovative. But if I have too closed a model, it&#8217;s likely someone will come along with an open one that works better. The marketplace is going to influence the business model.</p>
<p>I think individuals and companies should decide what to make open and what to keep proprietary. But open source as a movement has caught on because as an alternative it’s proving to be a faster path to innovation than closed models. The minute it stops being that, it stops being useful. </p>
<p><a name="support"></a></p>
<p><b>Scott:</b> I&#8217;d also be interested in knowing how you guys get support for the open source software that you use. Obviously you&#8217;ve been able to build a highly scalable, functional Web portal, with lots of different features. Obviously you haven&#8217;t been stopped by any significant issues such as &#8220;This doesn&#8217;t seem to be working right&#8221; or &#8220;I don&#8217;t know how this is supposed to work.&#8221;</p>
<p>Obviously you guys have been able to work through any issues. With that in mind, do you use any paid support options from open source vendors? Or do you just go with the model of, &#8220;We&#8217;ve got really smart people and they&#8217;re able to use the resources at hand and figure stuff out?&#8221; How does that work?</p>
<p><b>Marc:</b> We&#8217;ve used MySQL support in the past, and MySQL consultants. But you could argue that any number of ways. You could say that&#8217;s a consultant who just happens to work for MySQL. Or we could hire a really smart guy who knows MySQL really well. We chose the former because of expediency. </p>
<p><b>Sean:</b> I am curious, though, if you have ever been confronted with an &#8220;abandonware&#8221; scenario. Obviously you are working on very stable projects in terms of Apache, WordPress, etc.</p>
<p>And of course you can have the equivalent of &#8220;abandonware&#8221; with closed source as well. For example, with Vista, companies were concerned that XP would no longer be supported past a certain date. In a closed source company it&#8217;s usually not that it&#8217;s abandoned, it&#8217;s just that support ends, which can have the same effect.</p>
<p>With that on the table, I’m curious about how you analyze an open source project to ask yourself the question, &#8220;How stable is this?&#8221; What elements of the project do you look at to say, &#8220;This project looks stable. It looks like it&#8217;s not going to disappear some day&#8221;?</p>
<p>Because sometimes open source projects disappear for political or organizational reasons that have nothing to do with their technical strength. I am curious how you go about that evaluation process.</p>
<p><b>Marc:</b> I think that we have, by and large, stayed with very mainstream pieces of the open source stack. We haven&#8217;t really looked at anything too esoteric where you really have to worry about, &#8220;Is this going to go away?&#8221; or &#8220;If it goes away, I&#8217;ll never get any support and I&#8217;ll never understand this.&#8221;</p>
<p>We have closed source products in the house that we haven&#8217;t gotten vendor support on for five years because the vendor&#8217;s gone out of business. But we don&#8217;t change them very much, and they still work. In some cases they don&#8217;t, but it&#8217;s not that big a deal because we&#8217;ve moved on.</p>
<p>So I tend to not worry about it too much, because I consider the lifespan of most technologies to be fairly short. </p>
<p><b>Scott:</b> So just to say that back in my own words, your model is to prepare for the fact that all technologies are built on somewhat shifting sand?</p>
<p><b>Marc:</b> Correct.</p>
<p><b>Scott:</b> So you do not plan on something being there for 10 years. You assume that you&#8217;re going to be constantly evolving your technology base; you&#8217;re going to want to rebuild using new technology. And that is just part of the way you guys do things.</p>
<p><b>Marc:</b> That&#8217;s right. Because our main goal is to come out with great features and functionality, and the best news and information for our customers. Technology is the means to that end, not an end in itself. We will use what endures and if it doesn’t we’re not going to worry about it.</p>
<p><b>Scott:</b> Right. And you are in the midst of that right now. You mentioned in our earlier conversation that you had developed your own architecture and language, and you are evolving off of that. And from your perspective evolution will just continue and continue and continue.</p>
<p><b>Marc:</b> That&#8217;s right. As long as that language is serving us well in certain areas and is not a problem, we can keep that alive indefinitely. But we&#8217;re always trying to look ahead as far as possible and anticipate what our needs will be. </p>
<p><a name="CMS"></a></p>
<p><b>Scott:</b> Are there open source projects that you currently are not using but are interesting to you? Something that perhaps you might see being used over the next year or so?</p>
<p><b>Marc:</b> When I talk to my peers in the publishing technology space, I find that one of the things everybody complains about is content management systems. It&#8217;s so core and fundamental to what we do, and it was a space that was and still is dominated by few vendors.</p>
<p>Over the last couple of years, you&#8217;ve seen a lot of open source players come on. I&#8217;m not so much thinking of companies like WordPress here, although that is a kind of CMS, but I&#8217;m thinking more along the lines of Druple, Alfresco, and a few other systems. </p>
<p><b>Sean:</b> So you’re talking about the typical competition between products like SharePoint, Alfresco, Druple, and other CMS systems?</p>
<p><b>Marc:</b> Right. I see a lot of movement in the CMS world toward open source solutions. And I think that&#8217;s very exciting, because these sorts of reusable components and frameworks can help an entire industry build better systems much faster than it could before.</p>
<p>A lot of people saw CMS as a competitive advantage, and I&#8217;m not so sure it is. It&#8217;s one of those tools you use. And in the publishing industry, it&#8217;s something that is ripe for collaboration among people who have similar interests and needs, who may be competing with each other for advertisers, but there&#8217;s no discernable reason they should be competing on that level. </p>
<p><b>Scott:</b> So are you seeing publishers actively collaborating with the open source in the CMS area?</p>
<p><b>Marc:</b> It happens sometimes, but not in an open source way necessarily. Somebody will build a system and somebody else will say, &#8220;Hey, I&#8217;ve just spent X million dollars on this system,&#8221; and maybe it&#8217;s with vendor X and maybe we&#8217;ve done it ourselves. &#8220;Do you want to buy it? Do you want to license it?&#8221; And sometimes the answer is no and sometimes the answer is yes, depending on what&#8217;s going on.</p>
<p><b>Scott:</b> Are you seeing these open source CMS players reaching out to publishers at all? Or is it just that the industry sees what the CMS players are doing as interesting?</p>
<p><b>Marc:</b> I think it&#8217;s kind of the latter, because publishers are all over the map. You have a handful of large newspapers like The New York Times that have very specific needs, and then you have a whole bunch of smaller newspapers that have a whole set of other needs. And then you have magazines and blogs and everything in between.</p>
<p>If I&#8217;m an open source CMS provider, I have to sort of figure out where my target audience is first. </p>
<p><b>Scott:</b> Maybe they go after the corporate intranet because they can make the case that every corporate intranet should be looking at their stuff. Whereas publishers are, like you said, a more specific niche. For example, MySQL does quite a bit of nonrecurring engineering to meet the needs of specific clients.</p>
<p><b>Marc:</b> Correct.</p>
<p><b>Scott:</b> These CMS vendors might find themselves in kind of the same situation, where people need certain things to be a certain way for their business.</p>
<p><b>Marc:</b> Yes, and that&#8217;s the last thing you want to get into. I don&#8217;t think an open source solution is writing one custom piece of your program, for one particular company or individual, that doesn&#8217;t have much reuse. </p>
<p><a name="future"></a></p>
<p><b>Scott:</b> That makes me think back to where we started this conversation. The New York Times is investing in WordPress, Citrix bought XenSource, Sun bought MySQL AB. I&#8217;ve seen people predicting that this trend will continue. What are your thoughts?</p>
<p><b>Marc:</b> I think we will see more established companies investing in open source companies for a couple of reasons. The major one is that entrepreneurial software companies have proven that an open source model is a rapid path to innovation. They have also proven that they can find ways to make money from the growth of that model through services..</p>
<p><b>Sean:</b> So how does a company like yours look at the Sun acquisition of MySQL? Does that somehow limit choice? Do you think people have concerns for what this will mean for MySQL, which so many depend on?</p>
<p><b>Marc:</b> Well, I think there&#8217;s always a concern when a big, established company buys a smaller company. The smaller company&#8217;s agenda and what made it special is going to be subsumed by the agenda of the larger company.</p>
<p>And certainly, you have to look at who the acquirer is and say, &#8220;Does this company have a history of treating its acquisitions well and giving them room to breathe?&#8221; And I think Sun&#8217;s track record there has been kind of mixed.</p>
<p>But I think one interesting thing that has happened at Sun in the last couple of years is that it has, in its own way, embraced open source to a much larger extent. It used to be everything was Solaris or bust, and Solaris was a closed OS. But Sun has opened that up and done a lot of other things    embraced Linux, embraced x86. The company is trying to be much more innovative in that way.</p>
<p>So I&#8217;m a little less concerned about it than I would be if a company with a history of proprietary only technology decided it was going to buy this company and then just make it part of the Borg.</p>
<p><b>Sean:</b> Which brings us to the Microsoft offer for Yahoo! I was really surprised that mainstream media, CNN for example, picked up on the fact that Yahoo! is built up on a bunch of non-Microsoft technology.</p>
<p>What do you think that means when you marry those two business units? Do you have thoughts, predictions, comments on what some people might think is a difficult combination? </p>
<p><b>Marc:</b> I think that if they are really smart about it, they&#8217;ll make the merger work by stressing interoperability and really thinking through the ad network issues. It depends on whether they are going to keep the Yahoo! identity alive, which certainly I would if I were them.</p>
<p><b>Scott:</b> Marc, thanks for taking the time to talk.</p>
<p><b>Marc:</b> Thank you.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=135&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+2" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+2" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+2" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+2" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F" 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+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+2+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F03%2F12%2Finterview-with-marc-frons-cto-new-york-times-digital-part-2%2F" 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/03/12/interview-with-marc-frons-cto-new-york-times-digital-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Interview with Scott Densmore &#8211; Microsoft&#8217;s CodePlex and Patterns &amp; Practices</title>
		<link>http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/</link>
		<comments>http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 22:56:33 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[codeplex]]></category>
		<category><![CDATA[enterprise library]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[patterns and practices]]></category>
		<category><![CDATA[scott densmore]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/</guid>
		<description><![CDATA[In this interview, we talk to Scott Densmore about Microsoft&#8217;s CodePlex and the Patterns &#038; Practice&#8217;s work on the Enterprise Library Version 4: Forking the Enterprise Library How Microsoft product teams are using the CodePlex repository for open-source code. How CodePlex is different from SourceForge Favorite CodePlex projects How CodePlex itself is community driven Scott [...]]]></description>
			<content:encoded><![CDATA[<p>In this interview, we talk to Scott Densmore about Microsoft&#8217;s CodePlex and the Patterns &#038; Practice&#8217;s work on the Enterprise Library Version 4:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/#entlibfork">Forking the Enterprise Library</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/#prodcodeplex">How Microsoft product teams are using the CodePlex repository for open-source code.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/#difffromsourceforge">How CodePlex is different from SourceForge</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/#favprojects">Favorite CodePlex projects</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/#codeplexcommunitydriven">How CodePlex itself is community driven</a></li>
</ul>
<p><span id="more-131"></span></p>
<p><strong>Scott  Swigart</strong><strong>:</strong> We talked to some  people in Patterns and Practices about the Enterprise Library, which is probably the biggest piece of color that Microsoft released under an  OSI-approved license. I think, if I remember right, you had your own sort of  fork of the Enterprise Library and were rewriting some pieces of it. Is that  correct?</p>
<p>
  <strong>Scott  Densmore</strong><strong>:</strong> This is true, yes.
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> Talk about that a  little bit. The Enterprise Library is out on CodePlex. P&amp;P had gone a certain direction with it, and you decided to fork it.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong><a name="entlibfork"></a> When we built version  1 and version 2 of the Enterprise Library, we made some decisions. After a  while you start thinking, &quot;Maybe it&#8217;d be easier if we did things a  different way.&quot; One of the things that came up a lot, just reading the  forums and talking to customers, was why don&#8217;t we have a container model? How  do you manage the dependencies between these libraries? 
</p>
<p>When  we designed it, we thought about how to do dependency injection. Dependency injection  has a lot of different pieces, and one of the ways you can do it is through  factories. That&#8217;s the way we did it in Enterprise Library 1 and 2.
</p>
<p>After  that, I started thinking about some of the stuff we did in CodePlex and some of  the things that we did with Object Builder. I started wondering how we could  put a container in here and have all these libraries tied together through some  container mechanism, rather than through all these configuration files and  factories. 
</p>
<p>I  wanted to make a proof of concept and build a container on top of Object  Builder, and use that container to tie all those libraries (caching, loggings,  data access, etc.) together through that container. Instead of having huge  configurations and having all those dependencies managed through a  configuration file, I wanted to do it through a container. That would make it  easier to plug in and out different implementations of logging, for example. If  I wanted to use something different than what comes with Enterprise Library but  still wanted to use some of the Enterprise Library functionality, I could do it  with a container. That was the basis of having that fork of Enterprise Library.
</p>
<p>After going through a couple of alterations, I also wanted a way to implement  the container and not change the external API of Enterprise Library. This  wouldn&#8217;t break people who are using the Enterprise Library, but it would let  you use it inside the container. The container would be an independent thing.
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> Because the Enterprise  Library was open source and was available on CodePlex, anybody could have done  this, right? The work you were doing on the Enterprise Library you didn&#8217;t have  to be a Microsoft employee to do. Anybody could go out there and make a fork  and maintain it, and even try to build community around their fork.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> In my first version, I  basically did a rewrite to remove a lot of the factories and make it smaller.  And I had a couple of people who were very interested in that and used it,  saying this was an interesting way to solve the problem.
</p>
<p>I have also talked to other people who&rsquo;ve said, &quot;Oh, we did this too, and  we forked our own version.&quot; Anybody in the community can do this. You  don&#8217;t have to be a Microsoft employee, although some of the Microsoft teams  that use the Enterprise Library have forked it and maintain their own version.
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> Now you&#8217;re back with  Patterns and Practices and working on version 4. You&#8217;ve said you hope this will  be the last version, because ultimately you just want it to be part of the  platform. You want it to be part of the .NET framework class libraries, I am  guessing.
</p>
<p>What do you think is the advantage of doing it that way versus the other  direction you could go, which is that it stays a library and actually becomes  owned by the community and would have committers on it who aren&#8217;t Microsoft  employees?
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> When I say that it  should be in the platform, I think there are two pieces that go into that. I  don&#8217;t think everything will go into the platform. I think it is interesting to  have the platform own the infrastructure pieces that make it easier to build  these assets. But the assets themselves I would love to see out in the  community, and to have them be built by the community. It would be interesting  to have the community own it because they are the ones working with the  Enterprise Library every day. We here at Microsoft build it, and we use it, but  we don&#8217;t necessarily use it in the same way as our customers do. 
</p>
<p>They  would actually be able to contribute to it more often than the Microsoft plan  probably allows us to. We have a cycle we have to ship on and we have  commitments that we have to keep. It is much easier for the community to do  that themselves and be able to drive it themselves than it is for us to do it.
</p>
<p>We can provide the infrastructure to make it easier for them to drive it, but I  think it is awesome that they can drive it themselves. When I say I don&#8217;t want  to ever do another version of Enterprise Library, I envision it as driving some  of the infrastructure into the platform, and then letting the community take  the rest of it on. 
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> I don&#8217;t think Microsoft  has ever done what you are talking about. On the one hand, companies want to  have community involvement in their stuff, but on the other hand, they don&#8217;t  necessarily want to lose control over it.
</p>
<p>If you take a look at something like the Linux kernel, you will have employees  at IBM, Red Hat, and other places who are staffed full time writing code. But  it is not entirely up to them whether or not their code makes it into the  kernel. It has to pass this community bar, it has to pass the bar of these  maintainers, who probably aren&#8217;t IBM or Red Hat employees.
</p>
<p>If you look at the way an Apache project is governed, for example, each of the  60 Apache projects has to have maintainers from at least three different  companies, so that no one company ultimately owns it.
</p>
<p>If you take a look at the way that Sun does it, on the other hand, it is  exactly the opposite. For some Sun open source projects, the governance  documents say that it has to be controlled by Sun employees. If those employees  leave the company, then the people governing the project would be replaced by  people who work for Sun.
</p>
<p>Across open source projects, there are a lot of different ways that projects  can work. Can you foresee a day when projects like the Enterprise Library have  people in Microsoft who are contributing to them but the actual maintainers  might not be Microsoft employees? They might actually be people in the  community, people in other companies who&#8217;ve invested in this, and so Microsoft  would just be a contributor like everybody else.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> That is hard to say.  It would be nice to see that, but unfortunately, since I am not a lawyer, I  don&#8217;t know all the realities of it. I don&#8217;t even play one on TV. But I do  believe that there is this idea that Microsoft can help foster the community. 
</p>
<p>I think Microsoft can help foster that and help put that in place. Microsoft  could help recruit some of those people, just like we have the MVP nominations.  That could help build a community around these projects and we could say that  these people are probably the best initially at governing the project. 
</p>
<p>The project gets started, and it is put out there, and we need to think about  how you build the community and get everybody involved, and make sure that  everything is up and running. As you send it on its way, it is not going to  just fall on its face. Or if it does, it happens on the merits of the project,  not because you didn&#8217;t give it a chance.
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> There are a lot of  examples of that, where people just throw the source code out there and say,  &quot;Well, we hope somebody in the community picks it up,&quot; and nobody  does. There is definitely a right way to do those kinds of things.
</p>
<p>Let&#8217;s switch gears. We mentioned CodePlex, but talk about it more broadly for  people who don&#8217;t know what CodePlex is, don&#8217;t know what kind of a playground it  provides for people interested in working on open source projects.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> CodePlex is a great  collaborative development environment. CodePlex is a way for you to go out,  start a project, and then try to build a community around your project. You can  interact with other projects that are on the site and be able &ndash; through  tagging, your forums, and other things &ndash; to build that collaborative  environment.
</p>
<p>For example, if I want to start a project, I can relate it to another project  through my own taxonomy of tagging. I can let other people contribute to it.  There are no ads on CodePlex, it is not like SourceForge with ads. Not that ads  are a bad thing, but CodePlex is just clean and easy to use.
</p>
<p>CodePlex is big about building the community around your projects. That is the  biggest focus you see. CodePlex itself is very community-driven. I think the greatest  thing we have is that I can create an issue, and then people can vote on it.  CodePlex really listens to those, and that is what drives the site. If you put  something out there and people vote on it, we look at that and say, &quot;Wow,  people really want to have this feature; we should do this, because it is the  highest voted item.&quot;
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> What are some examples  where CodePlex has influenced official Microsoft products?
</p>
<p><a name="prodcodeplex"></a><strong>Scott  Densmore</strong><strong>:</strong> I know with SQL Server  and SharePoint, a lot of different teams are using it as a way to build a  community around specific deliverables that are not necessarily pure product  features. 
</p>
<p>The product groups are still learning how to do this, but they want to build a  community around their products, and around some of the things that they ship  out of the regular release cycle. Look at the AJAX Control Toolkit. They have  people who are non&#8209;Microsoft who commit to the toolkit. People download  and use that the toolkit everyday. <strong></strong>
</p>
<p>They  also have Microsoft people here in Redmond looking at it, triaging issues and  monitoring the forums. They built a successful community around the AJAX  Control Toolkit.
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> It is rare to find a  project that is completely disconnected from anything that came before it.  There is some level of inspiration from what existed before.
</p>
<p>When you guys started CodePlex and you looked at something like SourceForge or  Google Code, what did you look at and say, &quot;That would be great to  emulate, but this thing I don&#8217;t think they&rsquo;ve done so well, so we&#8217;ll take that  in a different direction&quot;? 
</p>
<p><strong><a name="difffromsourceforge" id="difffromsourceforge"></a>Scott  Densmore</strong><strong>:</strong> When you look at  SourceForge, and there are other things like Collab.Net, one of the things that  you think about is user experience and navigation, and what are the features  that drive you most.
</p>
<p>One of the things that CodePlex wanted to do was keep it simple. That&rsquo;s what  everybody always says, but we wanted to keep it simple enough and provide  useful features. When we looked at SourceForge, we decided we didn&#8217;t want a  bunch of ads. We wanted something that allowed you to showcase your project,  and have feature requests, and let people log issues around the project. How do  you do that in a way that&#8217;s easy to use? 
</p>
<p>We were using Team Foundation Server. That lets you connect right from the  Visual Studio IDE. We have other clients that connect to TFS. There are even  ones that work on Linux and Mac. There&#8217;s also a command line TFS client for  Windows.
</p>
<p>We wanted to let people vote for features. We wanted to provide an easy place  to put the releases that was easy to manage. We did simple things with the UI  that made the site much easier to use. We have people who come to the site  saying, &quot;Hey, I&#8217;ve heard this is a cool project. I&#8217;m not necessarily a  contributor. I&#8217;m just a user. I&#8217;m going to come to CodePlex to find it. I can  get to the default release, and I can easily find the one I&#8217;m looking  for.&quot; Project owners have the ability to customize the text for their  project. They have a wiki for the contributors and the coordinators of the  projects so that they can talk about their project.
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> Where do you think  CodePlex hasn&#8217;t quite achieved the level of success you think it could? What&#8217;s  the next step for CodePlex? 
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> I think one of the  things that would be nice is a community around CodePlex and the UI itself. I  think there are even better ways we can go about making it simple. People still  get confused and ask, &quot;How do I go to a project and post something to the  forum for the project? When I come to the home page of CodePlex, I don&#8217;t really  know how to get to the project.&quot; It&#8217;s amazing the amount of questions you  will get about Ent Lib, or the AJAX Control Toolkit, that get posted to the  actual discussion forums of CodePlex itself.
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> So it sounds like it&rsquo;s  a discoverability piece.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> Right. So making that  experience better is key. I think the other thing is building the community  around CodePlex itself: how do you get coordinators and developers in touch  with one another, how do you build that community? If I am a developer and I am  looking for projects to work on, how do I find one? Who do I talk to and what  do I do?
</p>
<p>I  think there are different kinds of personas, classifications of people, who use  open source. There are the people who start a project. There are people who  want to contribute to a project. There are people who lurk around projects.  There are people that just go, &quot;Oh, this project does what I need. I&#8217;ll  just use it.&quot;
</p>
<p>So how do you build a community around that? Maybe CodePlex could have an  online chat, or let you view the availability of people on the project. Maybe  you could use CodePlex and say, &quot;Hey, I&#8217;d like to work on a project, or I  would like to start a project. Who would be willing to help out?&quot;
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> What are some CodePlex  projects that have caught your attention?
</p>
<p><strong><a name="favprojects" id="favprojects"></a>Scott  Densmore</strong><strong>:</strong> There are two projects  that I was blown away by. One is called the Vista Battery Saver. Some guy went  through and found all the services and things that, if turned off in Vista,  help save battery power on your laptop.
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> I came across that  project when I was reading a post where some guy was complaining about the fact  that Vista just soaks up the battery when you run it in boot camp on a Mac.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> It just organically  grew, and it was the most popular project for a couple of weeks. It&#8217;s still  very popular. That one just blew me away. It is something very useful for  people, but it is not something that is like an AJAX Control Toolkit. It is not  something that is true software in terms of what I do day to day. It is more of  an end-user thing. It is not something I would have thought would have ever  made it up on CodePlex, but it did, and that is cool.
</p>
<p>The other one is &ndash; I am sure you&rsquo;ve heard of this game called World of  Warcraft?
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> Oh yeah.&nbsp; [laughs]
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> They built a Visual  Studio package for writing World of Warcraft add&#8209;ons. A Microsoft guy in  the DPE put this package out there, and I was like, are you kidding me? I can&#8217;t  believe this. It is just not something you would expect to come from Microsoft. 
</p>
<p>But there is a developer community out there for writing LUA. World of Warcraft  isn&#8217;t the only thing that uses LUA. This guy built a package for the Visual  Studio IDE, for LUA scripting. There are a lot of open source projects that are  LUA based. For example, there&#8217;s WowAce, where you can get a lot of LUA  scripting for </p>
<p>World of Warcraft. They built in pieces for using the WowAce  libraries in this Visual Studio package.
</p>
<p><strong>Sean  Campbell</strong><strong>:</strong> These seem like  precisely the types of projects that would be somewhat difficult to incubate  inside a pure closed source development environment.
</p>
<p>I mean if you look at the power management project, that&#8217;s potentially  difficult because Microsoft has OEM partnerships, you have issues with  discussing the sanctimonious nature of battery life on a given platform and how  many hours it really has. In Warcraft, that one is a little more obvious,  right?
</p>
<p>You&#8217;re not going to take some dev&#8217;s time, even if they are working on Express  or some kind of community-facing product, and say, &quot;Go build this plug&#8209;in  for Warcraft.&quot; It seems to me that&#8217;s a benefit Microsoft gets from having  an open source portal attached to a closed source company. 
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> That&rsquo;s exactly right.  I think if you look at the add&#8209;in for scripting for World of Warcraft,  it&#8217;s not something that Microsoft is interested in doing. But the fact that  someone is doing it helps promote Visual Studio as a platform for doing these  types of things. 
</p>
<p><strong>Scott Swigart</strong><strong>:</strong> How much does  the community influence the way CodePlex itself is going to get enhanced and  the features that are going to be added?
</p>
<p><strong><a name="codeplexcommunitydriven" id="codeplexcommunitydriven"></a>Scott  Densmore</strong><strong>:</strong> If you go to CodePlex,  you can create an issue for CodePlex itself and people vote on it. We can&#8217;t do  everything, but we are driven by the community. 
</p>
<p>Instead, we built command line clients, and you don&#8217;t have to have Team  Explorer installed to use those. We actually built a thing called subversion  bridge, or SVN bridge, which basically allows you to use the subversion client,  but it will take the SVN commands and convert them into something TFS  understands, so you get the best of both worlds. That&#8217;s an ongoing project  we&#8217;re doing so that people who are interested in using SVN can still use it. As  people vote on issues, we just take the highest voted issues, or if they are  bugs or anything else like that we look at that and use that, bring it in, fix  it, put it out. And since we release on a three-week schedule, that&#8217;s kind of  how the pace goes; every three weeks this is what we do.
</p>
<p>We also look at other things, like how people are using CodePlex, and how we  can help them be more community&#8209;driven and build more community around  their projects. We try to do that every day. We look at that, think about it,  and try to come up with a solution for it. By having a release every three  weeks, if we make the wrong decision, well, we can fix it in three more weeks.
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> Right.
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> It&#8217;s not something  that happens every three years. We are going to make mistakes and that&#8217;s OK,  but I think we&#8217;d rather have people give us feedback on an ongoing basis than  having them give us feedback and wait five years.
</p>
<p><strong>Scott  Swigart</strong><strong>:</strong> What are some examples  of surprises? I&#8217;m guessing there&#8217;s got to be times when people on the CodePlex  team think, &quot;Wow, I had no idea so many people would have wanted such and  such a feature, but it looks like people really do, so let&#8217;s work on  that.&quot;
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> In the beginning, we  exposed everything through RSS, and it&#8217;s amazing that people like mailing lists  better than RSS. People want mailing lists. They want to be able to do digests  and everything like that. I guess we just assumed that everybody was RSS-happy.
</p>
<p>We got a little RSS-happy ourselves and came to find out that it was not the  right decision, so we&#8217;re working on that and trying to integrate mailing lists  with the discussion forums. We have a simplified version of that right now;  it&#8217;s not the greatest in the world, but we wanted to get something out there.  And again, we like to get these things out there so people can use them and  give feedback on them, so that we can fine-tune the direction we&#8217;re going. One  of the things that surprised us was that RSS wasn&#8217;t as popular as we thought it  was.
</p>
<p><strong>Scott Swigart:</strong> Any final thoughts?
</p>
<p><strong>Scott  Densmore</strong><strong>:</strong> I would like to see  Microsoft foster more community. I think we are doing a better job. We haven&#8217;t  hit the sweet spot yet, and I don&#8217;t know exactly what that is. It&rsquo;s kind of one  of those &quot;feeling&quot; things. Once we completely get there, we will know  it.
</p>
<p>But I feel like we are moving in that direction, and I would really like to see  us build even more community, because it is about the adoption of the platform.  How do you get people out there excited about something, and then with  CodePlex, how do you build infrastructure that helps people run projects and  build their own community? CodePlex is getting better at that all the time.
  </p>
<p><strong>Scott  Swigart: </strong>Thanks for taking the time  to chat.</p>
<p><code></p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=131&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F&amp;title=Interview+with+Scott+Densmore+%26%238211%3B+Microsoft%26%238217%3Bs+CodePlex+and+Patterns+%26%23038%3B+Practices" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F&amp;title=Interview+with+Scott+Densmore+%26%238211%3B+Microsoft%26%238217%3Bs+CodePlex+and+Patterns+%26%23038%3B+Practices" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F&amp;title=Interview+with+Scott+Densmore+%26%238211%3B+Microsoft%26%238217%3Bs+CodePlex+and+Patterns+%26%23038%3B+Practices" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F&amp;title=Interview+with+Scott+Densmore+%26%238211%3B+Microsoft%26%238217%3Bs+CodePlex+and+Patterns+%26%23038%3B+Practices" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F" 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+Scott+Densmore+%26%238211%3B+Microsoft%26%238217%3Bs+CodePlex+and+Patterns+%26%23038%3B+Practices+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F20%2Finterview-with-scott-densmore-microsofts-codeplex-and-patterns-practices%2F" 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/02/20/interview-with-scott-densmore-microsofts-codeplex-and-patterns-practices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interview with David Campbell &#8211; Technical Fellow &#8211; Microsoft &#8211; Part II</title>
		<link>http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/</link>
		<comments>http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 18:57:11 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[David Campbell]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[windows server]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: David Campbell In this interview with David Campbell we talked to him about: How the development methodology of SQL Server has changed. How the changes affect the ability of customers to give feedback. How virtualization makes it easier for users to test-drive SQL Server. As products and open-source [...]]]></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/david-campbell-technical-fellow-microsoft/">David Campbell</a></p>
<p>In this interview with David Campbell we talked to him about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#sqldevmethod">How the development methodology of SQL Server has changed.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#custfeed">How the changes affect the ability of customers to give feedback.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#sqlvirt">How virtualization makes it easier for users to test-drive SQL Server.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#nottarget">As products and open-source projects grow, the developers have to realize that they are not the target user.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#mostknobs">David&#8217;s belief that the best product doesn&#8217;t necessarily have the most knobs. </a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/02/11/interview-with-david-campbell-technical-fellow-microsoft-part-ii/#sqlcommunity">Building a community around a closed-source product like SQL Server.</a></l>
</ul>
<p><span id="more-130"></span></p>
<p><strong>Scott  Swigart:</strong> David, thanks for taking the time to chat with us again. One of  the things you mentioned in the first interview was the common engineering criteria.  I&rsquo;ve seen that mentioned in a number of different places, but I have never seen  it explained. And I&rsquo;m guessing that the common engineering criteria impact a  product like SQL Server. It might be good to start off just by explaining what they  are.</p>
<p><strong>David  Campbell:</strong> It started in the Windows Server system. We&rsquo;ve been telling  customers that one of the advantages of our stack is that it works better  together. It does, but we started really challenging ourselves by asking, &ldquo;OK,  what are the real things we&rsquo;re doing to actually make it be better together?&rdquo;  The way I think about it is, &ldquo;What are the things that would add value for  customers who require coordination or consistency across groups that otherwise  wouldn&rsquo;t happen organically?&rdquo;</p>
<p>We started this a number of years back, when Paul Flessner was running the  Windows Server group. We have a set of requirements, which are updated every  year, and all the enterprise products within the Server and Tools Business (STB) have to adhere to those requirements. These  are things like having a best practice analyzer, having a Management Pack for  System Center before you RTM, having consistent user education, continuous publishing, a community engagement program, that kind of stuff.</p>
<p><strong>Scott:</strong> Previously when we talked, you also mentioned that SQL Server went through a  pretty big change in its development methodology between 2005 and 2008. Talk about that a little bit.</p>
<p><strong>David: </strong><a name="sqldevmethod"></a>This is something that a small group started, and it ultimately took great  effort across the division to pull off. It will never be &ldquo;done,&rdquo; but it has  been an amazing, fascinating transformation. I&rsquo;ve learned more in the last few  years about culture and change management in a large organization than probably  anything else.</p>
<p>I&rsquo;ve been working on the product for a long time. Back in the good old days, we  had something like 20 people who knew the whole server, end to end. Back then,  as you worked on things, if you had an issue you just walked across the hall,  sketched something out on somebody&rsquo;s whiteboard, and went back and coded it up.  Because things were so intimate, you could keep things moving at a rapid pace.</p>
<p>To somebody who understands the standard Microsoft development methodology, one  of the things that&rsquo;s very important is the daily build. We continuously build  and test the product, and one major vital sign is the health of the daily  build. Back when the product was small and there were 50 to 100 people working  on it, you could do the daily build live, with everyone just checking stuff in  and keeping it together.</p>
<p>But as the team grew and the size of the code base grew by several orders of  magnitude, you just couldn&rsquo;t have as many hands in the soup at the same time  and get anything that tasted good.</p>
<p>In SQL 2005, we had sort of a standard large-team, waterfall model. If we were  doing a feature that spanned several component groups, we would have one group  get together and they&rsquo;d do everything by the book. We had a process and  everyone followed it. They&rsquo;d write the spec. They&rsquo;d develop a test plan. They&rsquo;d  review the test plan. They&rsquo;d write the code. They&rsquo;d test it. They&rsquo;d check it  in.</p>
<p>Then the next component team in the sequence, maybe it was the client data  access team, would pick it up and they&rsquo;d start working with it. And they&rsquo;d go, &ldquo;Hey,  wait a minute. This interface isn&rsquo;t quite right. There is something wrong here.&rdquo;  They&rsquo;d go back to the first team and ask them to change it. Of course, the  first team had moved on to something else, so if they had to go back and do  major surgery, it was a hassle. </p>
<p>We had one feature in particular that, to be honest, we built two or three  times during the course of SQL 2005 and we still didn&rsquo;t have it right. So I  said to the program manager at one point, &ldquo;Look, either we take it out of the  product or you get everyone, end to end, involved, get them in a room and just  sit till you work it out and get the thing going.&rdquo;</p>
<p>This involved the storage engine, the language parser, the query processor, the  client data access libraries, the management tools. They had done it serially  several times. They just never had it work correctly, end to end, when  integrated.</p>
<p>They all got in a room. Of course, you know how that works. They were able to  figure it all out and get it all done. We said, &ldquo;OK, what can we learn from  this?&rdquo; We completely threw the development process up in the air and changed it  around. How do we go &ldquo;back to the future&rdquo; and try to capture the intimacy of  what we had in the &ldquo;good ol&rsquo; days&rdquo; now that the team and product are many times  larger and more complex.</p>
<p>When  we had a small team rebuilding the database engine for SQL Server 7.0, a number  of people had the whole system in their heads. Furthermore, when we did SQL  Server 7.0, we really didn&rsquo;t need to think about the market that much. We were  building a new relational database engine and introducing an OLAP system. The  playbooks were already written for these technologies and the markets were  already established. Now, we did it in a way that was different; we tried to make  the product much easier to use so we could actually grow the market and bring  the technology to a much larger base. For SQL Server 2000 and, to a lesser  extent, SQL Server 2005, we were building out on the architectural base we had  established with SQL Server 7.0. </p>
<p>The  original model worked great for several releases, but when we got to SQL Server  2005, the product was much bigger, the team was much bigger, and the market  expectations were much higher. Things just weren&rsquo;t fitting together in terms of  consistency across the product. So the other piece that we had to add for the  SQL Server 2008 process was, instead of defining the release from the bottom up  in terms of what we were going to do, we had to create a definition process  that looked both at the market, top-down, and at what needed to happen to the  technology base of the product and what people wanted to do, bottom-up, and  bring them together.</p>
<p>The way we framed it to the team was, &ldquo;Look. We want to have the PowerPoint  presentation that we&rsquo;re going to use in the keynote for the launch before we  write the first line of code.&rdquo; So we developed a set of themes for the release.  With each theme we had this notion of scenarios that were end-to-end value  propositions for customers. Underneath those scenarios, we had a number of what  we called improvements, instead of features.</p>
<p>An improvement is what we would consider an engineering transaction. The idea  is that we bring virtual teams together to work on an improvement. An  improvement team is cross-discipline&mdash;development, testing, and program  management&mdash;and it&rsquo;s cross-component. For example, the database engine, data  access, and management tools teams can come together to work on a single  improvement. So if a particular improvement needs focus from four different  components, they&rsquo;ll all come together as a virtual team.</p>
<p>We assign an improvement team lead, who&rsquo;s got a set of requirements they need  to meet to integrate the result into the source base, but we&rsquo;re not very  prescriptive about how they run the team. If they want to use Scrum and have  stand-up meetings and do a series of sprints, that&rsquo;s fine. If they want to use  a test-driven development methodology, etc., that&rsquo;s up to them. We&rsquo;ve got tools  and a playbook that we encourage them to use, but we&rsquo;re pretty liberal in terms  of how they go about it. There&rsquo;s a very strict contract in terms of what needs  to be done before it is integrated into the main branch of the product source  code, however.</p>
<p>These improvement teams work in their own separate branches in the code  management system. Once they believe that the improvement is ready to ship to  customers, then and only then will we integrate it into the product. What&rsquo;s  interesting, if you think about it from outside SQL Server, from the customer&rsquo;s  perspective the release looks much, much different than it used to look.</p>
<p>It used to be the case that&mdash;let&rsquo;s say we were going to do 300 features.  Everyone gets started on them. We put a bunch of stuff together and put it out  for Beta 1. Everything would work about 30 to 50 percent. Then we&rsquo;d keep going  for Beta 2. We realized, &ldquo;We&rsquo;re not going to be able to finish 20 percent of  these things, let&rsquo;s cut them.&rdquo; With Beta 2, things are working about 70 to 80  percent correctly. Then you have Beta 3, a bit better. And in the end, you&rsquo;re  still trimming stuff out, cutting it, and refining it to get it ship ready for  customers. </p>
<p>We  were constantly in the mode of having stuff that kind of worked in Beta and  trying to get feedback from customers. We flipped it around with the new process. What customers see  now in a particular drop is very high quality. They used to see the 120 percent  of the ultimate features in Beta 1 in some measure. Now they only see 20 or 30 percent of the features early, but they all work. We also changed the name from Beta to Community Tech Preview, or  CTP.</p>
<p>As we go through each successive CTP, more and more of these improvements show  up. They&rsquo;re baked, end to end, and they accumulate in number. What a customer  is seeing is that the quality is actually very good the whole way through, so  it&rsquo;s an interesting change.</p>
<p><strong>Scott:</strong> It seems as if the SQL Server team went through the same process the Visual  Studio team did: Instead of putting code out there that is 30 percent  functional and people can&rsquo;t really get it to work end to end, they decided it&rsquo;s  better to wait until a given feature is 100 percent even if that means  customers see it much later. </p>
<p>  But  there has to be a trade-off, because your window for getting customer feedback  is smaller, and you have potentially invested a good deal more time in the  original code before you get any feedback. Talk about that balance.</p>
<p><strong>David:</strong> <a name="custfeed"></a>That&rsquo;s a great question. One aspect of the previous releases is that we were  frankly playing catch-up in an established market. We knew what we wanted to  build and we knew how we wanted to differentiate in the market so we really didn’t need a lot of customer feedback on the feature set for SQL 7.0 because in many ways we were rearchitecting and reimplementing the existing product. This approach worked for  SQL Server 7.0 and 2000, but one consequence is that we hadn&rsquo;t built up muscle  around how to engage customers earlier in the design process for completely new features. In some sense, we  built stuff and threw it against the wall to see if it would stick. This worked  well for awhile, but it made much less sense starting in SQL Server 2005. </p>
<p>  Basically,  you could say that the old process was quite inefficient, in the sense that we  built a bunch of stuff, actually committed code, before we even knew what would  stick in the market. Now we&rsquo;re trying to do that through more concept testing,  more up-front work, spending more time with customers to look at their real  pain points. Are you going to build a set of features that&rsquo;s going to be  compelling? That&rsquo;s one piece of the puzzle. Are you building something all up  that will be valuable to your customers to you customers end to end considering they way they really work? That’s another pieces of the puzzle.</p>
<p>But then the question becomes, have you built each feature in a way that makes  sense to the customer and is useful? So it&rsquo;s less about the value proposition  of having a particular capability and more about have you designed and built  each thing correctly, on an improvement-by-improvement basis.</p>
<p>One fallacy around the Beta process, in my opinion, is that we would throw a Beta  out there, and tens or hundreds of thousands of people would download it. A  small fraction would really play with it, a smaller fraction would actually  think about how they&rsquo;d use a new feature, and a fraction of those people would  actually give us any real feedback. It wasn&rsquo;t very structured. Our TAP program tried to target specific features and scenarios but it mostly kicked in after we had written the code.</p>
<p>I believe it&rsquo;s a bit different in the Developer division, because you&rsquo;re close  to developers. One of the challenges we have with SQL Server is that, for our  real validation, you need to get closer to a production environment. And it&rsquo;s  very difficult to get the feedback from the production team.</p>
<p><strong>Scott:</strong> Right. With SQL Server, a single dev banging away isn&rsquo;t a real test. You could  get somebody banging away at the feature, but that doesn&rsquo;t really tell you  whether it will scale, whether it will be reliable, whether it will be secure.</p>
<p><strong>David</strong><strong>:</strong> Right, exactly. So what happened with  this release was, we had some teams that said, &ldquo;Oh, crap. What are we going to  do to get feedback for this really complex improvement?&rdquo; For the database  engine there&rsquo;s an improvement called a Resource Governor. It allows you to  constrain queries that consume specific resources so you can limit a particular  connection to 10 percent of the CPU, and that kind of stuff.</p>
<p>The question is the mechanics of getting the architecture and user interface  right. We think very hard architecturally about separating mechanism and  policy. In this case, the mechanism would be things like how do we keep track  of the various resources and who do we attribute the resource usage to. The  policy would be how the user describes her intent in a way that allows the  mechanism to enforce it. In the case of the Resource Governor, there&rsquo;s a  complex interaction between the policy and the mechanism, &ndash; not the least of  which is that we needed to build new mechanisms to hold and enforce various  policies. This is a great example, because what we would have done before was  stare at the whiteboard, do a design, and throw something together. We&rsquo;d ship  it out in a Beta and hear, &ldquo;No, that&rsquo;s not what we need.&rdquo; So it turns into a  rock fetch. &ldquo;No, this thing stinks. &hellip; This thing stinks. &hellip; You&rsquo;re getting  warmer &hellip;,&rdquo; etc. It&rsquo;s a pretty inefficient process all up.</p>
<p>In the case of the Resource Governor, we got together with some of our MVPs and  key customers who had a need for the improvement and did more of an outside-in  design process starting from use cases. What&rsquo;s interesting is that this outside-in  approach is completely natural for many people building applications, but for a  development team that&rsquo;s been creating low-level system software for 10-plus  years it&rsquo;s quite different. </p>
<p>The  bottom line is that we definitely needed to figure out how to engage customers  differently with our new development process, and there are opportunities for  design councils, concept testing, early prototypes, and early builds. In fact,  things like virtual machine technology allow an improvement team to create a  build of their early thinking and test it with a small group in a focused way  without having to integrate everything else that&rsquo;s in various states of  completion, like we used to do with the standard Beta process. They just create  a VHD with their bits and have some customers try it. With this model they can  iterate faster than was possible with the old Beta process. Ultimately, I think  we&rsquo;ll get better improvement feedback by finding the right 10 to 20 customers  and working closely with them rather than putting it together in Beta and  throwing it out to 100,000 people hoping they&rsquo;ll give us valid feedback. I&rsquo;m  overstating things a little bit to make the point, but the general concept  still holds, although not everyone here agrees with me on this one.</p>
<p><strong>Sean  Campbell:</strong> I&rsquo;m curious about the point you just brought up, because Scott  and I have been knee-deep in virtualization for a long time. The point you just  made about letting people evaluate it on a VM, how has that impacted the  overall development process for the SQL Server team? Has it given you the  ability to basically give, let&rsquo;s say, broken bits out earlier and get more  people working with it earlier because they don&rsquo;t have to install it, they don&rsquo;t  have to configure it? I&rsquo;m sure in the past people would try to install it on  top of whatever else they already had. You could tell them a hundred times,  right? And they&rsquo;re going to try to install it as a multiple instance on top of  what they&rsquo;ve already got. </p>
<p><strong>David:</strong> <a name="sqlvirt"></a>It has, in exactly the ways you said. These applications are so complex, and  the state that they put on the machine is so complex, and we work so hard to  make sure uninstall really uninstalls all the stuff that it put there in the  first place.</p>
<p>The other piece is that it&rsquo;s hard for us to build and test the setup and the  installation. With VHDs, we can basically handcraft them and then clone them,  and they don&rsquo;t pollute any other state on an existing machine. So it&rsquo;s much  easier to get together. The bulk of the savings is in the setup, for us to  construct both the setup and the uninstall, to make sure we don&rsquo;t pollute the  machine state.</p>
<p>So I think from that perspective, it&rsquo;s very, very helpful. I think we saw that,  but we haven&rsquo;t really perfected it as a process yet. I think we&rsquo;ll probably go  a little bit deeper on it in the next release.</p>
<p><strong>Scott:</strong> In talking to a lot of people in the open source world, especially community-driven  open source, like the Linux kernel and the Apache Web Server, I hear there is a  pretty strong correlation between your ability to request a feature and your  ability to actually code it. You will get on a mailing list and say, &ldquo;Hey, it&rsquo;d  be great if the Web server did this.&rdquo; And the response is basically, &ldquo;Yeah,  that would be cool. When will you have the code ready?&rdquo;</p>
<p>  What  you have talked about is very different from that, in terms of interviewing  customers, interviewing influencers, and putting together a team. Talk a little  bit about how a specific feature happened from end to end, how the feature was  initially conceptualized, how you validated it, the portions of the product it  touches, etc.</p>
<p><strong>David:</strong><a name="nottarget"></a> Well, I&rsquo;ll talk about it in the meta form, and then I&rsquo;ll talk about a  particular feature. It goes back to the thing I was saying about technology  evolution. And it&rsquo;s actually one of the challenges.</p>
<p>  One  of the challenges the open source community faces, and this will be a sweeping  statement that I get flamed for, is that they don&rsquo;t yet generally appreciate  the difference between the consumer and the producer. By that I mean, as a  technology matures, the gap between who&rsquo;s using and who&rsquo;s producing it becomes  greater. It&rsquo;s a challenge we face at Microsoft; we are no longer simply  building products for people like us, the engineers. In one of the talks I give  to the product development community at Microsoft, I stress, &ldquo;Look. We&rsquo;re no  longer just building products by engineers, for engineers. The PC is moving  toward a consumer electronics device for many users and we must build a product  that interacts with them on their terms, not ours.&rdquo; I then show screen shots of  Task Tray bubbles talking about &ldquo;Virtual Memory&rdquo; and &ldquo;Pagefiles,&rdquo; etc. My  friends and family shouldn&rsquo;t have to know what virtual memory is.</p>
<p>  We&rsquo;ve  seen the same thing in the database space. Twenty years ago, every DBA had to  be a wizard and needed to know how to fiddle with hundreds of knobs, figure out  how to manage raw disks, and learn all sorts of low-level details just to  create and maintain a database. When we were building SQL Server 7.0, I used to  troll the database newsgroups an awful lot. You&rsquo;d see people asking perfectly  reasonable questions and you&rsquo;d see responses like &ldquo;RTFM&rdquo; or &ldquo;You don&rsquo;t belong  here if you don&rsquo;t know that.&rdquo; So we started this campaign to fix what I called  the &ldquo;you dummy&rdquo; questions. Basically, if an expert responded to a question with  a &ldquo;you dummy&rdquo; tone, we saw it as an opportunity to address the issue by  engineering&mdash;teach the product to do it rather than teaching hundreds of  thousands of DBAs. We turned the &ldquo;you dummy&rdquo; on ourselves and did something  about it. </p>
<p>  I  don&rsquo;t have to be an expert on my automobile to keep the thing running, and that&rsquo;s  fine. If Toyota wanted to come to me, I wouldn&rsquo;t have to talk to them about  ignition advance, dwell time, and those things anymore. I&rsquo;d talk more about my  experience and what I wanted the car to do for me. I think that&rsquo;s just an  evolution, and you can certainly see it in the database space.</p>
<p>To get back to the specific feature, I think the Resource Governor is a good  one, where there was a complex set of mechanisms inside our system that we  needed to go off and engineer, but how we constructed those and how we  presented them to users was the challenge, right? What is the policy? How does  someone describe a policy around constraining resources in a particular query  or session? And then how does someone bind different policies to different  classes of users or applications or queries or times? What degrees or what  dimensions do they need?</p>
<p>Another way to think about this, from the perspective of design, is that the  software development community has not made the leap yet from expressing the  product control surface as knobs on the underlying mechanism to capturing the  user&rsquo;s intent or objective and then acting to achieve that. A simple example is:  Rather than having an administrator configure how many dirty database pages  will trigger a database checkpoint, we can capture the user&rsquo;s intent in terms of  the trade-off between fast recovery in the event of a failure, which can be  achieved by increased checkpoint frequency, or better run time throughput,  which can be achieved by fewer checkpoints. Having a control that captures how  long the administrator is willing to wait for recovery to complete in the event  of a restart looks directly at the business intent rather than fiddling at the  level of the mechanism. I mean, how many dirty log blocks can I have on a  particular database and still have it recover in 60 seconds, anyway? Instead of  publishing some equation in the documentation, capture the user&rsquo;s intent and  treat that as a constraint during run time.</p>
<p>  So  to go back to the Resource Governor&mdash;we go to the customer and ask, &ldquo;OK. What  sorts of things do you want to constrain? What dimensions are most important?  Are they applications? Are they time of day? Are they this or that?&rdquo; And then  gather all that, design something that&rsquo;s consistent from the user intent  perspective, and then figure out how we build a mechanism underneath to marry  up with it.</p>
<p>Certainly, there&rsquo;s a lot of success in the open source community, using open  source technology in consumer electronics. But I don&rsquo;t think that they&rsquo;ve gone  end to end in terms of doing a great job of user-centered design.</p>
<p><strong>Sean:</strong> Well, that&rsquo;s one of the things I&rsquo;ve talked to people about, too, and that I  personally feel pretty passionate about, innovation in the usability area.</p>
<p>I am curious, from a closed source company perspective, about what processes  you feel should be put in place in order for a development team to excel in  terms of usability. You go out and talk to people about potential features to  help make sure that a feature doesn&rsquo;t turn into engineers building it just for  engineers, and that you actually end up with something&mdash;like the Ribbon in  Office&mdash;that honestly has been a success, if only because, after release, nobody  complained about it.</p>
<p>  It&rsquo;s  the proverbial tree that fell in the forest and nobody heard it, but everybody  was freaked out about it. And I keep telling people, &ldquo;Well, think about this.  Microsoft changed the UI on the one application people use the most, on a daily  basis, and yet nobody really complained once Office launched.&rdquo; There must have  been something that really went into the thinking, in terms of usability.</p>
<p>For you guys, especially with a product like SQL Server, where I&rsquo;m sure you can  lose yourself in B-tree discussions until the end of time, how do you ensure  usability in the product?</p>
<p><strong>David:</strong> It&rsquo;s a great question and a great challenge. It&rsquo;s funny, but one of the things  I&rsquo;ve been doing for awhile that&rsquo;s had a good effect is to hold the mirror up to  the product development community at Microsoft, to get them to see that we&rsquo;re  no longer building products for people like us. </p>
<p>  I  have a set of slides that I&rsquo;ve been using for six years or so, where I have  collected some crazy error messages and I have real-life scenarios. I&rsquo;ve got a  screen shot where, in Windows XP, if it extends to your page file, you get this  balloon coming out of the system tray that says, &ldquo;Your virtual memory is low.  We&rsquo;re extending the page file. Blah blah blah.&rdquo; I came home one night and my  wife hit this and she said, &ldquo;Hey, I think my computer&rsquo;s broken. It says  something here.&rdquo; So I started describing to her virtual memory and page files,  and she said, &ldquo;Shut up! Just fix it.&rdquo;</p>
<p>  It  dawned on me that perhaps 99 percent of the people using PCs these days are not  engineers, yet we&rsquo;re still throwing these exceptions and doing these sorts of  things as if they were. And we ridicule the users instead of ourselves. I go  help my neighbors fix their machines, and they all start with, &ldquo;Oh, I feel like  such an idiot around computers.&rdquo; And I just want to say, &ldquo;No, you&rsquo;re not the  idiot. We are, because we&rsquo;re not building computers for you yet.&rdquo;</p>
<p>And so I have a set of rules, or things that I&rsquo;ve captured, that I talk about,  such as the &ldquo;principle of least astonishment,&rdquo; where a reasonable user action  should do something reasonable with least astonishment. The example I use is  another story from my wife. I don&rsquo;t know how many years ago, when I first got  her a PC, someone emailed her some pictures. She said, &ldquo;How do I look at these  pictures?&rdquo; I said, &ldquo;Just double-click on the filename right here.&rdquo;</p>
<p>So, of course, up comes the picture in the picture viewer. And there are little  buttons down on the bottom of the viewer: &ldquo;Next picture,&rdquo; &ldquo;Previous picture.&rdquo;  What do you think happens if you click on &ldquo;Next picture&rdquo;? You don&rsquo;t get the  next picture in the set of attachments. You get the next picture of whatever  the next file was in your IE cache or whatever it happens to open.</p>
<p>  And  she&rsquo;s going, &ldquo;What the hell is this?&rdquo; She gets some random icon from the temp  directory or something like that. So I started talking to her about temporary  directories, the IE cache, and blah blah blah, and again she&rsquo;s like, &ldquo;Shut up!  Just tell me why it&rsquo;s broken.&rdquo;</p>
<p><strong>Sean:</strong> She&rsquo;s saying, &ldquo;I&rsquo;m looking at photos. I want the next photo.&rdquo;</p>
<p><strong>David: </strong>Exactly. And you see that even in the database space. We&rsquo;ve taken the  market from tens of thousands of servers out to millions or tens of millions of  servers. You can&rsquo;t have every one of them require a highly skilled DBA. We just  couldn&rsquo;t do it economically. And so you have to get out of the mind-frame of an  engineer and go adopt a perspective of what the customer needs and how the  customer wants to express their intent.</p>
<p>That&rsquo;s the other sort of piece I talk about: In terms of the degrees of control  and the dimensions of control, get rid of all of those dimensions of control  that don&rsquo;t capture any user intent and figure out which dimensions of control  are orthogonal with respect to the customer&rsquo;s intent, and then figure out how  you build your system, and express things that way. That&rsquo;s been the most  effective thing I&rsquo;ve found to motivate the change.</p>
<p>The bottom line is that the software development community doesn&rsquo;t teach &ldquo;design,&rdquo;  certainly not with a capital D. Most developers believe that if they think for  10 minutes before coding up some function, then that&rsquo;s design. It&rsquo;s not. This  isn&rsquo;t a development methodology thing, but rather a cultural change that we  need to go through across the entire industry.</p>
<p><strong>Sean:</strong> That&rsquo;s great. The chief creator of a project called Quicksilver for the Mac was  giving a talk at Google, and I just saw the video of it the other day. His  theme for the project is &ldquo;act without doing,&rdquo; which has an interesting  similarity to what you are talking about. If you saw the app, you would  probably see some interesting things in it.</p>
<p>To follow along that line, I have a question about Oracle. Oracle, through the  years, treated the product as though the more complex the cockpit, the better it  was. If you walked in and it looked like an old 727 cockpit with 50,000  switches, that was nirvana. And you were paid to know every position of every  switch, right?</p>
<p><strong>David:</strong> Yep.</p>
<p><strong>Sean</strong><strong>:</strong> The open source community has, to  some degree, a similar bent, right? Not in everything, but in a fair amount of  places. But even in a product like Ubuntu, which is seen as the ultimate of end-user  experience&mdash;and it has made some great strides&mdash;there&rsquo;s a massive list of steps  just to join that machine to a Windows domain, for example, if that is  something you wanted to do.</p>
<p><strong>David:</strong> Yep, yep.</p>
<p><strong>Sean</strong><strong>:</strong> So, do you see any similarities with  this line of thought in the way Microsoft helps you to administer a database  and the way open source helps you with administration in projects like MySQL? </p>
<p><strong>David:</strong><a name="mostknobs"></a> That&rsquo;s another good question. Yes, Oracle&mdash;I think I mentioned it earlier, they  marketed our ease of use against us, frankly. They said, &ldquo;How can this thing be  a real enterprise database product? It doesn&rsquo;t have nearly as many knobs as  ours does.&rdquo; And when we left Digital&mdash;this is an interesting little story&mdash;we had  a product, RDB, that had roughly as many knobs as Oracle did at that point.</p>
<p>And like engineers, we were saying, &ldquo;Oh, shoot! Hardly anyone knows how to turn  the knobs on this thing.&rdquo; So we wrote more software, something we called RDB  Expert, which was a physical database design and some other things, to  recommend and actually turn some of the knobs for you.</p>
<p>I think the first step that you go through in this evolution is to put a facade  on it, whether it&rsquo;s a system that recommends turning the knobs or a GUI to  cover up knobs in config files. But really, at that point, you haven&rsquo;t got a  good end-to-end design, because you haven&rsquo;t, in my opinion, eliminated those  points of interaction or control. You haven&rsquo;t captured user intent.</p>
<p>It&rsquo;s like having a TV that still has horizontal and vertical control, but you&rsquo;ve  put something on the TV that can watch it and turn the knobs for you. So I  think the next step in the evolution is to have the system software itself  become more adaptive.</p>
<p><strong>Scott: </strong>That&rsquo;s true. TVs used to have horizontal and vertical knobs on the back.  They don&rsquo;t have those knobs anymore, even though TVs are much more complex, and  no one misses them.</p>
<p><strong>David: </strong>And what you wind up with&mdash;here&rsquo;s the key point, and this is something I  didn&rsquo;t understand a priori, but after the fact it really made a lot of sense.  In SQL Server 7, when we did some of the memory work to have the system  automatically adapt to the environment and adjust the amount of memory it  consumed, we changed the system so that you could adjust the amount of memory  that it was using dynamically. And the mechanism was dynamic as well, so we had  an automated policy that was a closed loop, but for those people who wanted to  get under the covers, they could change it themselves.</p>
<p>But the neat thing about the way we reimplemented it top to bottom, and not  just put a facade on it, was that the underlying mechanism itself was dynamic.  By that I mean you could change the amount of memory that SQL Server used while  it was running and not have to shut it down and restart it to get it to adopt a  new value.</p>
<p>It&rsquo;s back to the separation of mechanism and policy. We made the mechanism  dynamic, we made the policy automated, and, where it made sense to try to  capture user intent, we allowed user intent to be captured and actually  influence the policy. And that takes architecture, top to bottom. I think the  evolution is: You recognize it&rsquo;s an issue, you put a facade on it, whether it&rsquo;s  a GUI or whether it&rsquo;s some other code, and then you have to step back and  architect the thing, top to bottom, to do it correctly.</p>
<p><strong>Scott:</strong> One of the attitudes I ran into back in my C programming days was, &ldquo;Look,  programming was hard for me. It&rsquo;s hard for a reason. It should be hard. If it  isn&rsquo;t hard, anybody could do it, and that&rsquo;s the last thing in the world you&rsquo;d  want.&rdquo; I run into that attitude whenever I look at systems administration and  other technical issues, where people say, &ldquo;Look, this is complicated. It should  be hard. You should have to be a little bit of a rocket scientist, otherwise  you have no business doing it.&rdquo;</p>
<p>So one of the complaints is, &ldquo;Well, yeah, Microsoft&rsquo;s made it so that any idiot  can set up a Web server, therefore every idiot does, and they don&rsquo;t keep it  patched, and it&rsquo;s vulnerable.&rdquo; Same thing with the database: &ldquo;Sure, people  could install the database and set it up, but they won&rsquo;t create their indexes  correctly, and they won&rsquo;t keep it patched.&rdquo;</p>
<p>So there are certain people who would say you should stop more people at the  front door and not let them in. Because if you do let them in, they get farther  down the path, thinking that they know what they&rsquo;re doing, and then they run  into a disaster. What would be your response to that kind of attitude?</p>
<p><strong>David:</strong> I think it all comes down to, or goes back to, design in the sense that if you  have the means within the technology to bring it out to a broader market and  let people do the job, then I think it&rsquo;s incumbent on you to try to figure out  a way to do that. It&rsquo;s a great example and a great point around physical design  of the database&mdash;how do I design the index set? It&rsquo;s very difficult.</p>
<p>One of the things we did here is, we designed the Database Tuning Advisor. This  was work with Microsoft research where we&rsquo;ll look at a workload and actually  propose indexes based upon the workload, and do physical design that way.</p>
<p>And the way we test that is kind of interesting. We bring databases in, we  measure their response against a real user workload. Then we strip all the  indexes and we use the Tuning Advisor to rebuild the index set. More often than  not, the Tuning Advisor does a better job than the guy who gets paid a lot of  money to do it by hand. Of course we can&rsquo;t see the reporting jobs that are  running at the end of the month if they haven&rsquo;t been part of the workload, but  it does a pretty darn good job. So I think it&rsquo;s a matter of how far can you  take the technology.</p>
<p>Another sort of thought experiment here is if you go back to the TV front. Go  back to 20 or 30 years ago. Every small town had two or three TV repairmen. The  technology is more complex now than it was, but it&rsquo;s perhaps 50 or 100 times  more reliable. So you don&rsquo;t see the TV repairman in every small town anymore.  The TVs just go and go and go until you decide you want a slick new plasma one.  I think that&rsquo;s the way software is going to move as well.</p>
<p><strong>Sean:</strong> Obviously, one of the strengths of open source is the community. I think that  is one contest they tend to win hands-down, if for no other reason than that open-source  projects were driving community long before closed source companies were. But  at the same time, I know Microsoft has been making some significant efforts in  this area too.</p>
<p>You mentioned in the previous conversation about CodePlex. I knew about  CodePlex, but I have not really looked at it with an SQL Server focus before. A  brief glance at it showed me some of the activity that is SQL Server related. Talk  to me a little bit about what is happening there, how that activity is  affecting the product team, etc.<strong></strong></p>
<p><strong>David:</strong><a name="sqlcommunity"></a> I agree with you. I think I mentioned earlier that tapping into the energy of  the community is super valuable. I think of a lot of these things in terms of  closed loops and how quickly can you run the loop, how fast can you get the  feedback, and how fast can you incorporate it. Tapping into the community is a  super way to do that. There are lots of examples of closing a loop, like  Watson, to have the machine send back error information and actually close the  loop and automate things to enable continuous improvement.</p>
<p>As I think about community, absolutely I give the open source guys credit for  tapping into that phenomenon first, but I don&rsquo;t think it requires open source  in terms of the development or distribution model to engage the community. I  think about community engagement in terms of layers. With the product itself  there&rsquo;s a way of tapping into the community by harnessing their feedback to  improve the product over time. I think with the documentation content and  general knowledge around how to use the product, there&rsquo;s a deeper way of  tapping into the community. As we publish content for the product, can we allow  people to modify it, link to it?</p>
<p>Some of our content could provide a spine for community activity. For example,  we could build a collaborative site around the product error messages and allow  the community to link their responses into each error message to help one another  out when they hit a particular issue. Today much of this happens in forums and  newsgroups, but it&rsquo;s not done in a way that closes the loop effectively. If we  did it in the way I just mentioned, it would be much easier for the product  development team to review and mine the activity to improve the product going  forward.</p>
<p> I  think the next level beyond documentation would be extensions and tools. Things  that you could build around the product where the core of the product is still  in a closed source model but you could open up and distribute add-ons, add-ins,  and other sorts of tools and actually build the community around that.</p>
<p><strong>Sean:</strong> This has been a great conversation, David. Thanks for taking the time to chat.</p>
<p><strong>David:</strong> Thank you.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=130&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F&amp;title=Interview+with+David+Campbell+%26%238211%3B+Technical+Fellow+%26%238211%3B+Microsoft+%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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F&amp;title=Interview+with+David+Campbell+%26%238211%3B+Technical+Fellow+%26%238211%3B+Microsoft+%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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F&amp;title=Interview+with+David+Campbell+%26%238211%3B+Technical+Fellow+%26%238211%3B+Microsoft+%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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F&amp;title=Interview+with+David+Campbell+%26%238211%3B+Technical+Fellow+%26%238211%3B+Microsoft+%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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F" 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+David+Campbell+%26%238211%3B+Technical+Fellow+%26%238211%3B+Microsoft+%26%238211%3B+Part+II+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F02%2F11%2Finterview-with-david-campbell-technical-fellow-microsoft-part-ii%2F" 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/02/11/interview-with-david-campbell-technical-fellow-microsoft-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 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 [...]]]></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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F&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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F31%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-ii%2F" 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 [...]]]></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 &#8217;93 or  &#8217;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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F&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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F24%2Finterview-with-justin-erenkrantz-president-apache-software-foundation-part-i%2F" 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>
		<item>
		<title>Interview with Marc Frons &#8211; CTO &#8211; New York Times Digital &#8211; Part 1</title>
		<link>http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/</link>
		<comments>http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 16:36:58 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Marc Frons]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[operations]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Marc Frons In this interview with Marc Frons we talked to him about: His background with the New York Times. Their focus on the LAMP stack and Solaris. What he likes about open source. The ethos of open source and the ethos of a news organization. How pervasive [...]]]></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-marc-frons-cto-new-york-times-digital-operations/">Marc Frons</a></p>
<p>In this interview with Marc Frons we talked to him about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#background">His background with the New York Times.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#lamp">Their focus on the LAMP stack and Solaris.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#opensource">What he likes about open source.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#news">The ethos of open source and the ethos of a news organization.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#pervasive">How pervasive open source is in the New York Times business outside of the New York Times Digital properties.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2008/01/16/interview-with-marc-frons-cto-new-york-times-digital/#reporters">What the reporters use to get their job done.</a></li>
</ul>
<p><span id="more-126"></span></p>
<p><strong>Sean Campbell</strong>:  &nbsp;Marc can you lay out a bit of your background with the New York Times?</p>
<p><strong><a name="background"></a>Marc Frons</strong>:  &nbsp;Sure. I&#8217;m the Chief Technology Officer of the New York Times&#8217; Digital  Operations group. I&#8217;ve been at the Times since June of 2006. My role is to  oversee technology strategy and operations for all of our digital properties. Since  July 2007, I have been directly supervising NYTimes.com&#8217;s technology and  product development as part of my&nbsp;  responsibilities at the company in addition to looking at potential  partnerships, acquisitions, technology strategy and tactics overall.</p>
<p><strong>Sean</strong>: &nbsp;Where are the places where the New York Times has made investments in open and closed source technologies?</p>
<p><strong>Marc</strong>: &nbsp;The  history of the NewYorkTimes.com is interesting. It is one of the first  newspaper websites and now the largest newspaper website on the planet, as far  as I can tell. And for the past six years, it has been a proprietary platform  and a very good proprietary platform. The folks long before I got here wrote  their own application server, even wrote their own programming language. And  it&#8217;s highly scalable, very secure, and incredibly fast and it has served us  well for the past six years. At the same time it is somewhat inflexible in its  current form. So we made the decision a little over a year&#8209;and&#8209;a&#8209;half ago to  begin to bring more open source technologies into the shop and develop some of  our new products using open source technologies. And that was a conscious  decision to leverage the knowledge of what other folks were doing in our  industry, which would enable us to move faster and be more innovative. At the  same time, that other platform isn&#8217;t going away and we are continuing to do  some things on that as well.</p>
<p><strong>Scott Swigart</strong>:  &nbsp;Since you essentially have the world&#8217;s largest news web site with the associated high expectations that brings, how do you approach something like that? What would be your advice to another organization looking at open source, things you can take for a given with open source, and things you need to take a closer look at in order to ensure it is going to be handled?</p>
<p><strong>Marc</strong>: &nbsp;We  are making a bet, not a big bet, because we are being incremental. We are not just  saying &quot;OK, we are going to redo this entire platform that serves almost a  billion pages a month and all sorts of other things on a new platform&quot; and  just flip the switch all in one big bang.</p>
<p>  We have an architecture that allows us to experiment, hedge our bets and  be incremental. And I would advise anyone to do the same when making any  platform transition. &nbsp;Do it a little bit  at a time, try out a couple of new lower risk products, things that you can do  quickly, things that don&#8217;t get a ton of traffic, and then you move up the food  chain as you go along. Test your hypothesis; see if these things that you  thought were true really are true. </p>
<p><strong>Scott</strong>: &nbsp;So  just to make sure I understand that right, you may take some section that is  three levels down in the hierarchy and move that over. When you look at a website,  most people never really bother to understand what it is running on and so you keep  reimplementing more sections until eventually the home page is being served up  by the new technology?</p>
<p><strong>Marc</strong>: &nbsp;That&rsquo;s  pretty much our approach, because obviously your new technology is going to  evolve along the way as well. You want to try it out on the smaller pieces of  your site or smaller sites that are in your infrastructure and not do it all at  once because you are going to evolve your open source platform as you along.</p>
<p><a name="lamp"></a>: &nbsp;And  so when you say open source and you are focusing on web, what immediately  springs to mind are the LAMP stack, Linux, Apache&#8230;</p>
<p><strong>Marc</strong>:  &nbsp;That&#8217;s pretty much what we have.</p>
<p><strong>Scott</strong>: &nbsp;OK.</p>
<p><strong>Marc</strong>: &nbsp;We have  Sun Solaris in the house, OpenSolaris. But we will also be moving to Linux just  for some things; we already have Linux for some things. We will be doing some  more things on a pure LAMP stack. </p>
<p><strong>Scott</strong>: &nbsp;And some of the concerns around that I would assume are the quality of the software,  support, servicing, documentation. So what are some of the things that you  feel are really good versus things that are going to take  extra diligence on your part?</p>
<p><strong>Marc</strong>: &nbsp;Quality  is obviously important. We feel like these various pieces of the stack have reached  a maturity, certainly on the level of the operating system, that allows us to  use them more widely. &nbsp;This is not  something we have to worry about particularly much. On the database level, it  has also reached a level of maturity that for our purposes anyway is adequate.  On the web and application serving level, it is the same thing.</p>
<p>  So if you look at the various layers of the stack, these are all things  that we have increasing confidence that perhaps two or three years ago, you  might say well these products have a ways to go. I mean others like Apache were  more mature, but certainly even in the last couple of years, MySQL has made significant  strides and Linux keeps getting better and the kind of support you can get for  all of the various pieces of technology in your stack has certainly grown. The  documentation that you get with it, the cost is a big factor obviously, but these  are just attributes that make it possible to use open source software in the  first place. For us, the major factor is when talented developers are excited  about the tools they are using and the technologies they are using and are  passionate about it, you get a lot of innovative development. You can&rsquo;t  overestimate the importance of that. </p>
<p><a name="opensource"></a>: &nbsp;One  question given that you&#8217;ve built somewhat of a home brewed solution. With that in mind what do you see about the typical advantages  open source gives you to fork it, providing you complete access to the source, etc.  Is that part of the equation for you or is it just that you feel the platform has  matured to the right point?</p>
<p><strong>Marc</strong>:  &nbsp;Access to the source is nice, but I really would rather not be rewriting  the kernel.</p>
<p><strong>Sean</strong>:  &nbsp;Right. </p>
<p><strong>Marc</strong>: &nbsp;What  I like about open source is that you are leveraging the community to help you  make improvements far more rapidly than any single company could make them for  you with a vendor product.</p>
<p><strong>Sean</strong>: &nbsp;Talk  to me a little bit about that. How do you see that playing out in terms of the  rapid innovation? Do you see the New York Times eventually contributing more  actively to some of these open source projects? The Apache folks would have to  look at you guys and say, &quot;It&#8217;s a billion web pages.&quot; Whatever you would have to say about Apache you think they would  listen, etc.</p>
<p><strong>Marc</strong>: &nbsp;I  think so. This is obviously a new thing for the New York Times. So there&#8217;s a  lot of building we need to do internally. &nbsp;But our goal, in general, is to think about  ourselves as a platform&#8209;&#8209;not a technology platform so much as a news and  information platform&#8209;&#8209;and adopt some of the same ethos of the open source  community in software, when it comes to content, information, news, research  and data. So as we move forward into 2008, our goal is to create APIs not only  for our own internal consumption, but for the outside world so that you can access  the New York Times search archive and mix and match that with other data and  information and applications, and create compelling applications out of our  content and our other tools.</p>
<p><a name="news"></a>: &nbsp; One  quick follow&#8209;up to that and then I&#8217;ll turn it over to Scott. I&#8217;m just going to  pull on a thread that seemed to be underlying the previous discussion, but I&#8217;m  not sure if this is accurate or not. Would you say that, from your perspective,  there is an almost symbiotic nature between the ethos of open source and the  ethos of an organization that&#8217;s journalistic, in that you want to provide  information? You want to provide an open sense of community. You want to have  multiple eyes looking at something trying to analyze the righteousness of it.</p>
<p><strong>Marc</strong>:  &nbsp;That&#8217;s right.<strong> </strong>&nbsp;We&rsquo;ve increasingly been moving to open  NYTimes.com both journalistically and technologically. We have close to 100  blogs by our journalists and launch new ones almost every week. We allow our  reads to post comments on articles and we&rsquo;ll soon be launching additional  community and social networking functionality on the site, built, of course,  using open source technologies. Perhaps most significant, last September we  ended our paid subscription product, TimesSelect, and made virtually all of our  content free. And the response has been pretty amazing.</p>
<p>So it&rsquo;s true, open source fits nicely with how we think  about NYTimes.com as a whole.&nbsp; If you  think about the history of journalism, Journalism 1.0 maybe was the typical  &quot;who, what, when, where, why&quot; third person journalist&#8209;&#8209;just the  facts. Journalism 2.0, the new journalism, maybe is Tom Wolfe,&nbsp; Hunter Thompson and others who themselves  became the center of the story. And 3.0 is where the audience becomes a part of  the story through blogs and other forms of online community, and where the  Internet helps inform what you&#8217;re doing by enabling you to mash up other data,  other news, other points of view. So I think that&#8217;s where the New York Times as  an organization is going, and really needs to go as we become a part of not  just an isolated node on the Internet but an integral part of this vast but  still growing community. </p>
<p><strong>Scott</strong>: &nbsp;Tell  me if I&#8217;m reading too much into what you&#8217;re saying, but I don&#8217;t think I am. It seems  you&#8217;re saying if I had a team of developers and they were used to buying their  software and they were used to a proprietary model of acquiring their tools,  they may look at our business and our information in more of a proprietary way.  But if you take developers who are kind of steeped in free flow of information &#8211; openness,  taking from the community and contributing back &#8211; those people come up with  ideas. And those ideas probably infuse a lot of different things they do,  including ideas they come up with for how the New York Times could collect and  contribute information to the planet. </p>
<p><strong>Marc</strong>: &nbsp; I  haven&#8217;t really articulated that even to myself in quite that way, but I think  you&#8217;re right. I think adopting an open source philosophy tends to attract a  particular type of developer who perhaps&#8209;&#8209;and this is not true for everyone,  obviously&#8209;&#8209;but who perhaps is more engaged and more aware of the possibilities  of information sharing than someone who is very used to a single product, a  single source approach, a more closed approach. A lot of that, too, has to do  with personality and skill set and interest. </p>
<p><strong>Scott</strong>:  &nbsp;Right, right, but people who tend to work in open source kind of  gravitate that way because of their personality I would assume.</p>
<p><strong>Marc</strong>: &nbsp;Yes.</p>
<p><strong>Scott</strong>:  &nbsp;People are kind of this sort&#8230;</p>
<p><strong>Marc</strong>: &nbsp;Let&#8217;s  put it this way: it certainly couldn&#8217;t hurt, right?</p>
<p><a name="pervasive"></a>: &nbsp;[laughter] <br />
  Well, let me ask how maybe the digital business contrasts  with some of the other businesses in the New York Times. You guys are using a  lot of open source technology. Is that pervasive, do you feel, throughout the  New York Times, or is it more like look, &quot;We&#8217;ve got a lot of office  workers. They all run Office all day long.&quot; Different businesses but  not&#8230;</p>
<p><strong>Marc</strong>: &nbsp;It is  not yet pervasive, and I doubt that it will be pervasive anytime soon.</p>
<p><strong>Scott</strong>: &nbsp;On  the Web and for what you guys are doing, open source makes a lot of sense. Are  there areas where you think it doesn&#8217;t make as much sense? </p>
<p><strong>Marc</strong>: &nbsp;When  a proprietary product is so clear superior to anything you can get through open  source, then naturally you&rsquo;d go with the vendor solution. But I think for  systems and products where software does not change very much&#8209;&#8209;where you have a  vendor product that meets your needs, that allows you to run without a whole  lot of technical infrastructure, a product that gets the job done,&nbsp; doesn&#8217;t have to be particularly  customized,&nbsp; isn&#8217;t changing all the time,  where business requirements are set, where you just sort of want it to work&#8209;&#8209;because  your business really isn&#8217;t changing. You have a payroll system. You know you  have 10,000 employees. You know they get a paycheck every two weeks. </p>
<p>Unless there&#8217;s an open source product that has been battle  tested in the market and works and you can just download, install and license  it, you&#8217;re probably going to go with an established vendor, right?</p>
<p><strong>Scott</strong>:  &nbsp;Right, right.</p>
<p><strong>Marc</strong>: &nbsp;So  the same is probably true for many of your other corporate systems.</p>
<p><strong>Sean</strong>: &nbsp;Well,  let me ask a question on that, because maybe I&#8217;m right or wrong about this. I  would guess the New York Times probably breaks down into a ton of different IT buckets- three broader ones at a minimum where it might  be servicing the needs of the staff, for lack of a better phrase: the  accounting teams, and the HR teams? Then you&#8217;ve got the web presence, which is  huge. But then, I would also imagine you have the needs of the reports which is the heart of what people think the New York Times consists of in any case.</p>
<p><strong>Marc</strong>: &nbsp;Yes.</p>
<p><a name="reporters"></a>: &nbsp;So with that in mind I&#8217;m curious. Maybe for the office worker, a closed source piece of  software makes sense. Then you&#8217;ve got the Web, where you have a variety of reasons  you went with open source. How does it play out for reporters who are having to  report from almost anywhere on the planet? What type of technology stack  enables them to do what they do?</p>
<p><strong>Marc</strong>: &nbsp;It&#8217;s  a good question. And it&#8217;s actually very interesting that you mention that.  Shortly after I assumed this role and reorganized the NYTimes software group, I  created a group called Interactive News Technologies. Basically, it&#8217;s a small  team of software engineers and technically-minded journalists who sit in the  newsroom alongside the reporters, and are charged with building both tools and  very rapid development applications for news stories and news events. And  actually they are using Ruby on Rails for some of their stuff.</p>
<p>  We&#8217;re also now talking about fronting the big print publishing systems  with web forms and other tools in order to get structured data, and a lot of  the other things that we want to do that we can&#8217;t do easily in big, closed  systems. So we are beginning to use open source in that way to help our Newsroom. </p>
<p><strong>Sean</strong>: &nbsp;Well,  one question on that then; so Ruby on Rails is obviously popular and the  Basecamp guys have probably popularized it more than most. As in they are one  of the canonical apps where they focus on how easy it is to use, it has good  fidelity, etc. So just to drill into that one for a minute, why the choice of  Ruby on Rails? Because you obviously laid out a good business problem of, you  have team of reporters, and they probably have needs that are immediate. You  don&#8217;t want to be slowed up in any way. You have to have a development team that is able to  move pretty fast. And with all that in mind I&#8217;m curious why you made the choice  you did.</p>
<p><strong>Marc</strong>: &nbsp;My philosophy  is, you tend to go to a large extent with what your team is comfortable with  and excited about using. So when I was at Dow Jones, we were a big Java shop  and had Java J2EE stack with a mix of open source and vendor components. But we  used Apache, and we were moving to Linux, MySQL, and Tomcat and away slowly  from Oracle and WebSphere, as these open source pieces of the stack matured.&nbsp; That is where my guys were comfortable with.  Those were the technologies they liked. They proved to me they could make them  work. I wasn&rsquo;t about to tell them they had to use something they were opposed  to using.</p>
<p>  Our interactive news technology guys said, &quot;Listen, we&#8217;d really  like to try a Ruby platform as opposed to Django, as opposed to some other  framework.&quot; And I said, &quot;Well, go for it; show me that it will work  and start to experiment, do some things on it.&quot; So my feeling was you have  to let your people have the tools that they are comfortable with as long as you  feel that they have a chance to succeed, and you have to charge them with  succeeding.</p>
<p><strong>Scott</strong>:&nbsp; You said something earlier that I think ties  into that and, again, let me say it in my own words and see if you&#8217;d agree. It  is more important that you can build whatever you want with your choice of today&#8217;s  modern tools. And so you want your developers to be  passionate and excited, so you let them use the tools they are going to be  passionate and excited about using. Because you are going to get more  creativity, productivity, etc. if you are letting them have input into  their toolset rather than if you are simply  dictating a toolset such as, &quot;Well we are a  Java Shop, therefore everybody use Java.&quot;</p>
<p><strong>Marc</strong>: &nbsp;Yes,  exactly. The typical corporate CIO wants to consolidate systems and  technologies and have a monolithic structure because he thinks that is going to  save him money. And for some things that is true, but corporate technology is  almost always a cost center. &nbsp;Whereas for the digital businesses, IT is  integral to the growth of the business and you could argue that IT is the  business &#8212; software development. You don&#8217;t have a business if you don&#8217;t have software  developers. You don&#8217;t have one if you don&#8217;t have journalists either if you are  in the New York Times, but that is why technology and journalism are inexorably  intertwined in the digital world much more so than they have ever been before  and why they will continue to be even closer, even more intertwined as we move  forward.</p>
<p><strong>Sean</strong>: &nbsp;So  what do you see in the open source community that excites or intrigues you the  most and I guess at the same time what excites you in terms of the closed  source side of the world. As a CTO, you are looking at technology trends as  well as specific implementation issues. What seems to stand out?</p>
<p><strong>Marc</strong>: &nbsp; Let  us put it this way, there are so many open source projects, there are so many  things happening, there is so much innovation going on that it is hard to pick  and choose. I mean I think obviously the whole LAMP revolution has been  fascinating to watch. These kind of contained frameworks like Ruby, like  Tapestry are quite fascinating in that they put tools in the hands of people  who perhaps don&#8217;t have the skills of hardcore software engineers, who are busy  writing code at the base level.</p>
<p>  But what I think really excites me is the move to making a lot of these  more sort of all&#8209;in&#8209;one frameworks more scalable because if you are in the New  York Times, it has got to scale and if it doesn&#8217;t scale, we basically can&#8217;t use  it for anything really important.</p>
<p><strong>Sean</strong>:  &nbsp;Right, exactly. Yeah, a billion pages are simply a billion pages, right?</p>
<p><strong>Marc</strong>:  &nbsp;Right. Now the truth of the matter is it is not exactly evenly  distributed. I mean some parts of the site get a ton of traffic and others not  so much. So if you want to do something on Ruby, you put that on a thing where  you know it is not going get creamed. Just because it is the first time you  have really done that and it is Ruby, so you have to make sure that it is going  to work OK, but as you gain confidence in these technologies, then you begin to  roll them out in more highly visible and highly trafficked places.</p>
<p><strong>Scott</strong>: &nbsp;I  don&#8217;t know how core this is to our investigation, but it is an interesting  question to me and you might have an interesting answer to it. This is sort of  continuum, right? On one end of the continuum, you have closed source  proprietary companies who want to be very secretive about their roadmap, very  secretive about their features, not share their source code. And even that is diminishing because even they are realizing that there is business value in  transparency.</p>
<p>  And then on the other end, you have the free software foundation who  feels like all code effectively should be public. Initially they were kind of  happy with software as a service because there were people who were using open  source and building on top of it. But they might even want to go after someone  like Google and say, &quot;Hey, you benefited from open source, share your  code.&quot; Where do you think it makes sense between those two spectrums to  kind of draw the line, because it has got to make sense. You can&#8217;t kill the  goose that laid the golden egg in either direction.</p>
<p><strong>Marc</strong>:  &nbsp;Absolutely. Obviously, people need to be compensated in some way, shape  or form for their hard work.&nbsp; But there  are emerging models: Just because you are open, doesn&#8217;t mean you don&#8217;t charge  for it. Look at MySQL, you can download it but then you pay for support. It may  be cheaper than Oracle but it&rsquo;s not really free.&nbsp; The same is true for various flavors of  Linux. So I think people are finding ways to make those models work.</p>
<p>  Google, it is true, has used a lot of open source, they have also written  a lot of their own proprietary stuff that they have not given back to the  community. And I think they have done that probably because they needed to just  because of the scale of their operation. It really wouldn&#8217;t even be germane to  most other businesses, right?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=126&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+1" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+1" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+1" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F&amp;title=Interview+with+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+1" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F" 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+Marc+Frons+%26%238211%3B+CTO+%26%238211%3B+New+York+Times+Digital+%26%238211%3B+Part+1+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2008%2F01%2F16%2Finterview-with-marc-frons-cto-new-york-times-digital%2F" 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/16/interview-with-marc-frons-cto-new-york-times-digital/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Shawn Burke &#8211; Director &#8211; Microsoft &#8211; .NET Developer Platform Group</title>
		<link>http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/</link>
		<comments>http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 04:08:14 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.net developer platform]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[shawn burke]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell. Interviewees:Shawn Burke. In this interview with Shawn Burke of Microsoft we asked him about:]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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><strong>Interviewees:</strong><a href="http://howsoftwareisbuilt.com/2007/06/12/shawn-burke-interview/">Shawn Burke</a>.</p>
<p> In this interview with Shawn Burke of Microsoft we asked him about:</p>
<ul>
<li><a href=http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#personalmotivation">Shawn&#8217;s motivation for helping to make the framework source code available.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#available">Whether there are any limits on who gets access to the source code.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#internalresistance">Whether there was any internal resistance initially to providing the framework source.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#zip">Why Microsoft doesn&#8217;t just provide a zip for the source.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#writingcode">Whether Microsoft&#8217;s individual developers write code differently knowing that their actual source might be available for the world to see someday.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#other">Whether or not Microsoft is planning on making available other development artifacts such as test scripts, threat models, etc.</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/#positioned">Whether a closed source company or an open source company is better positioned to support external developers who need access to the source for a given project.</a>
</ul>
<p><span id="more-119"></span></p>
<p> <strong>Scott: </strong>All right. So if you take a second and just briefly introduce yourself, that is probably a good place to start. Then we can drill into questions specifically around the source for the.NET framework 3.5.</p>
<p> <strong>Shawn: </strong>OK. I am Shawn Burke; I am a director here at the.NET development platform at Microsoft. I run a group that we internally call the agility team. We run small high value projects to try to help deliver value to customers in agile ways. Not necessarily using agile technology, but just being agile about how we deliver.</p>
<p> <strong>Scott: </strong>:So in other words, it sounds like you are looking for sort of low hanging fruit where you can do things that are a little bit outside of the norm but would not necessarily be an enormous effort, but would deliver a lot of value to the customers quickly. Am I characterizing it correctly?</p>
<p> <strong>Shawn: </strong>That is right. Our team works a little bit outside the bounds of the typical projects and we are not  constrained by the same rules they are. We are able to do things that are more customer focused and a little less process focused way.</p>
<p> <strong>Scott: </strong>Just as a point of clarification, people have said Microsoft is &#8220;open sourcing the.NET framework.&#8221;That is not what your Microsofts intention is and not really what you are doing. You are making your source code available for reference. You are not really open sourcing it the way that, you know&#8230;</p>
<p> <strong>Shawn: </strong>Nope, some people in the community used characterization, that is definitely not what were doing.Were making the source available as a tool that helps people be more successful with the platform in its current state.</p>
<p> With this effort, my goal has been from day one, a simple scenario, which is you are debugging against an API, you are getting an exception from the API, and you cannot figure out why you are getting it. It is often very difficult to figure that out just from documentation. However, your ability to step into the API often makes it really clear what you are doing wrong.</p>
<p> <strong>Scott: </strong>Right. In the example that Scott Guthrie put up on his site, this is something I&#8217;ve run into,? At the point where you DataBind something, all kinds of stuff happens like down in the plumbing.</p>
<p> <strong>Shawn: </strong>Yes.</p>
<p> <strong>Scott: </strong>And the exception that you get, you know, you do not really have a lot of visibility and sort of what you did wrong in your code that caused the DataBinding exception. And so that&#8217;s like&#8230;</p>
<p> <strong>Shawn: </strong>Yes.</p>
<p> <strong>Scott: </strong>That&#8217;s like the key scenario that you went after. <a name="personalmotivation"></a></p>
<p> <strong>Shawn: </strong>Yes. That is like the thing that you are unableto do currently you know, because I work here I have the benefit of being able to do that a lot. Quite frequently, the amount of time it saved me , &#8220;Oh, Ill just grab the symbols&#8221; and you do and start to debug with them and immediately you&#8217;re like &#8220;Oh! Because I forgot to do this or that.&#8221; It becomes so clear that I really wanted to enable that sort of service for customers because its such a powerful thing</p>
<p> <strong>Scott: </strong>Yes. And just to back up another thing that you said, too. I never read it. I was not indicating that Microsoft was somehow trying to create the impression that they open sourcing this. I know when I looked at it, it was clear to me that Microsoft was releasing the source for reference purposes, you were not releasing it so that people could&#8230;</p>
<p> <strong>Shawn: </strong>Yes. I get it. I did not mean to sound defensive there!</p>
<p> <strong>Scott:</strong> [laughs]<br />
I&#8217;m sure it comes up a lot.</p>
<p> <strong>Shawn: </strong>Yes. That was the first thing we saw on a large website that is often not terribly pro Microsoft</p>
<p> <strong>Scott: </strong>[laughs]</p>
<p> <strong>Shawn: </strong>Fortunately many people came on there and said, &#8220;No, no, no.&#8221; They never said that, that is not what they are doing. I think most people get that now.</p>
<p> <strong>Scott: </strong>So what you are enabling is a sort of step into debugging experience where normally, as soon as you call into the API, you could not continue to drill down and step in. Now you can.</p>
<p> One of the things I was not clear on is who gets this? Is this available to all versions of Visual Studio and all customers or is there a sort a subset? Who is this available to I guess?</p>
<p> <a name="available"></a> <strong>Shawn: </strong>If you are running on Windows, it is available to anyone who can use it or to look at it.</p>
<p> As far as the Visual Studio integration, you need to have VS Standard or above. You cannot do it with Express versions. You know the express versions of Visual Studio?</p>
<p> <strong> Scott: </strong>Sure.</p>
<p> <strong>Shawn: </strong>Express does not get it for some kind of fundamental reasons.The main reason there is it just simply because Express does not expose the UI that you need to set this up or have some of the other facilities internally to take advantage of it</p>
<p> <strong>Scott: </strong>Sure. Sure.</p>
<p> <strong>Scott: </strong>Yes. The only reason I ask is that some of the people in the Microsoft ecosystem have made their source available kind of under premium plans with their customers. However, that is not the approach that Microsoft is taking with this. This is not sort of a premium thing, this is just generally available.</p>
<p> <strong>Shawn: </strong>Yes, that is Code Center Premium (CCP), this works similar to that CCP , but there you need to have an account and a Smart Card actually. And you have to go through much more security than in this system. This is a public reference release of the code, so there is really no credentials required. There is none of that.</p>
<p> <a name="internalresistance"></a> <strong>Scott: </strong>So when you sort of floated this idea internally, it sounds like it was generally well received. People kind of jumped on board and wanted to help make it happen. Just behind the scenes, what were some of the things that it took to enable this? It is more than just dropping a zip of the source out there to make this happen.</p>
<p> <strong>Shawn: </strong>Yeah. Well, yeah. It is good that you brought that up. This whole thing started quite a few years ago.  When I was on the Windows Forms team, which I was for seven years, I always felt like we should be releasing the source for many reasons. Others had done it. I felt like it was good for customers. When I was the Development Manager on Windows Forms in early 2005, I did a blog post about this, saying I wanted to make this happen and talking about some of the challenges to doing so. It was kind of justI was just kind of brainstorming aloud about different ways and what some of the challenges were. The response was enormous.Hundreds of comments.</p>
<p> A funny story, I did that blog post, and then I went down to Cabo San Lucas with my girlfriend a couple of days later. When I turned my phone on halfway through the trip, just to see if it would work in Cabo, I had a flood of text messages that said, &#8220;Please call work.&#8221;</p>
<p> <strong>Sean Campbell: </strong>[laughter] All right. So you learned a lesson of do not blog anything but &#8220;I&#8217;m going to Cabo&#8221; on the blog before you go to Cabo, basically.</p>
<p> <strong>Shawn: </strong>Yeah. I think if you would really pull it down to basics, that is it. Well, actually, I had always done tons of blog posts that no one&#8217;s&#8230;</p>
<p> <strong>Scott: </strong>Meanwhile, you created this firestorm of all these people running around going, &#8220;What have you done?&#8221;</p>
<p> <strong>Shawn: </strong>Yeah, exactly. I like to joke that it created, basically, an international incident because it got picked up by eWEEK, Mary Jo Foley, CNET, and all the rest. Quite a few people picked it up. It generated a lot of interest. That was a good impetus for me that there was a lot of excitement in the community about this.</p>
<p> If you fast forward a couple of years, I did some more ground work on this thing in 2005 and 2006, got busy with new role I&#8217;m in now, and dropped it for six or eight months, and then picked it back upI think it was late last year, late 2006and started looking at how we would get this done.And Ive been shepherding it along since then.Getting this out there really is the realization of a dream that I have been chipping away at for quite some time.I really hope Developers find it as useful as I think they will!</p>
<p> <a name="zip"></a> You guys mentioned pushing it out as a zip. One of the real problems was that I did not want to have a situation where every team that did this put a zip file or MSI out every four months, so the customer had to go download, install, and set up his little studio to use. What if you have a hotfix or different version? You know what I mean. I did not want to have a situation that was going to be cumbersome for us to ship and for customers to consume.That would kind of defeat the purpose.</p>
<p> What really got me rolling on this was I started talking with the guy who developed this technology we use internally. Internally, you can get the source and demos for almost every product we build here at Microsoft off this thing called &#8220;Source Server.&#8221; Source Server has versioning built in, making sure things do not collide so you can have side by side versioning, and it all works very smoothly. The server side piece for source server is just a web server. There is no magic there so its very simply to deploy. There really was not any barrier to making to using that technology externally.</p>
<p> So what we able to develop was a system where teams could publish source very, very efficiently. After a first source publish, they can continue to do source publishing at near zero cost to them, which is great. On the customer side, you have a scenario where a customer has a few simple set up steps. Then they kind of auto magically get source and symbols for what we have chosen to make available at that time for free. No searching around on MSDN or having to deal with where to put the stuff on the machine.</p>
<p> <strong>Scott:</strong> It sounds like, too, one of things that you are saying this accomplishes is it sort of knows exactly what the client is running and building against. If they have installed the service pack or have not installed the service pack, they get the right source. They get source that matches up with their environment.</p>
<p> <strong>Shawn: </strong>Yes, if it is on the servers they can get it. One of the decisions I made in getting this done was that, the cheater thing I did was I said, &#8220;You know what, I &#8216;m not going to define policy on this. I&#8217;m going to get a system developed where individual product groups and teams can make decisions about how often they push source.&#8221; Meaning, does it make sense to push source for every new release we do? Maybe, I dont know. Does it make sense to push it for every service pack? Maybe, I do not know. I think those might be different for different teams. I think we are going to do learning in working with the community about what really makes sense there. However, the system is set up to handle it, in any case.</p>
<p> <strong>Scott: </strong>Like you said, generally people were receptive to this. Were there internal objections that had to be overcome? Where there people who had concerns that, &#8220;Hey, this is crazy. Why would we do this?&#8221;</p>
<p> <strong>Shawn: </strong>Well, if you go back into 2005, I think I had many senior people that I knew, vice president level people that were generally supportive of this, but very cautiously supportive. For me a little bit, one of the reasons it&#8217;s been a multi year effort is I had to push carefully and let some perspective change as the industry has changed and the environment changed over the last couple of years.</p>
<p> It has gotten significantly easier. Something happened, I think, in the greater consciousness of the industry over the last 12 months or so. A lot ofI do not want to say a lotresistance is too strong of a word. A lot of the real cautiousness and kind of by-default-no talking-into-yes stuff dissipated and switched to actually a lot of enthusiasm. We need to be careful about protecting the IP that we spent billions of dollars developing. However, I think people really see the value of this now. It has been great for us and for our customers for a subset of products. Now I have seen teams are signing up to push their code out really quite enthusiastically.</p>
<p> <strong>Scott: </strong>With the.NET framework, it is in a little bit of a unique position because, on one hand, Microsoft has invested a lot in it, and generated a lot of IP. However, on the other hand, it was never really a secret what was in the framework anyways. You could use reflector and other tools to disassemble what was in the framework and sort of figure out how it was doing what it was doing. However, it did not enable this &#8220;step into it while you are debugging&#8221; experience. It did not make it super easy to learn from the framework. This might have been a little unique in that the IP was not all that protected to begin with.</p>
<p> <strong>Shawn: </strong>Well, yeah. Yeah, it is funny. The case that I built for this, with managed code in particular, definitely had that aspect to it, that our level of secrecy around how this stuff works, as well. One of the problems with reflector, using reflector, the EULA does not really allow for it.</p>
<p> <strong>Scott: </strong>Ah, interesting.</p>
<p> <strong>Shawn: </strong>The EULA does say that you are not supposed to reverse engineer. That said, I felt like it was a good idea to give customers a way to do this within the license, which this is.</p>
<p> <strong>Scott: </strong>Hah! Yes, I guess I never really realized that that might be in the EULA. I think, especially among the more advanced developers and in the blogs, and in all that kind of stuff, it is such a common practice.</p>
<p> So, now that you have done this, you have taken this first step and you&#8217;re going to make source code available for certain subsystems of the framework, and that&#8217;s on a feature by feature basis, right?</p>
<p> So, Windows Forms will decide when they push their source code in, ASP.NET will decide when they push theirs in, am I understanding that right?</p>
<p> <strong>Shawn: </strong>Well, we have pretty much what you would consider, if you go back to.NET 2.0 and think about what made up the Framework at that point. We&#8217;ve got pretty much all of the big pieces there. We&#8217;ve got BCL, Windows Forms, ASP.NET, Data and XML.</p>
<p> So those guys are already taken care of. Therefore, we&#8217;re going out with essentially what is the original.NET framework. The other stuff will fall in. It is really a matter of me getting with a given team and through the process. The code preparation process is actually fairly labor intensive. It takes time to schedule that and manage it.</p>
<p> I had teams that were able to do that. A lot of teams have been obviously really busy getting VS 2008 and.NET framework 3.5 finished up. We will continue to push out more code as time goes on. We wanted to get the big ones first.</p>
<p> We also managed to get WPF in there as well, so its not just the older stuff.Lots more is in the pipe to come online as time goes on.</p>
<p> The choice was either we wait a couple of months to do this, and make everybody wait, or we get the big ones out there fast and then we push in the other stuff as we have time, and as it comes online.</p>
<p> <a name="writingcode"></a> <strong>Scott: </strong>So one of the things that is kind of interesting is, you&#8217;ve got these individual developers in Microsoft and they&#8217;re writing code. They have worked in Microsoft for a long time and they have a feeling that, you know, what happens in Microsoft stays in Microsoft, I guess, for lack of a better term.</p>
<p> The whole world is not going to see the line of code that they are typing right now. Now, with the source being released, how do you think that is affecting, if at all, how individual developers are doing their job? How product teams are looking at how they build features going forward, knowing that the source for it is going to be out there.</p>
<p> <strong>Shawn: </strong>Even product teams that are not the framework team, they are thinking, that&#8217;s great, they did that over there, so does this mean that someday my source is actually going to be out there? Yes. Yes. They will be thinking that. And they should be thinking that.</p>
<p> In fact, one of my to do list items is to do some broader communications across our Division about that exact point Software developers are pretty much the same around the world. Software developers, in general, always try to do the right thing. They are also always, in general, under a certain amount of time pressure. Anything that is going to encourage them to take a little extra time to do something right, in the kind of capital &#8216;R&#8217; right, way, is a good thing.</p>
<p> Whether that&#8217;s testing, whether that&#8217;s static analysis like FxCop, or whether that&#8217;s security reviews or code reviews, or whether that&#8217;s the code is going to be visible to their peers or the public, I think those are all good incentives for software developers to think extra hard about how they do things.</p>
<p> So, you know, honestly, we went through the code, we&#8217;ve done these code reviews, and these code scrubs and we found a lot less stuff than we thought we would.Actually, we found almost nothing of any real concern, which was nice.</p>
<p> <a name="other"></a> <strong>Sean: </strong>Are there other things that Microsoft is thinking about exposing around the development process?</p>
<p> There are elements like threat modeling, specs, test scripts, all kinds of things that Microsoft might be thinking about exposing. Are there any thoughts or plans along those ways about how far this maybe goes, eventually?</p>
<p> <strong>Shawn: </strong>That is a really good question. No is the answer. [laughter]</p>
<p> <strong>Sean: </strong>You&#8217;ve accomplished enough by ruining one Cabo vacation. Right? You can put that post up later, you know, on your next vacation.</p>
<p> <strong>Shawn: </strong>I think that stuff&#8230;that is a good point. If you start doing, a curve on the cost for us to do that versus what percentage of customers that level of access is going to be valuable for. For the threat models, and even for the specs, I think that is a harder case to make. I think those things are also harder to vet, or release, than the source is. They are also less useful to a broad set of customers.</p>
<p> <strong>Sean: </strong>Well, one of the things that crossed my mind was test scripts, and test routines that Microsoft creates because that would be helpful to others just from an educational standpoint. That does not really expose Microsoft to too much more overhead. I am not trying to pitch the idea here, But go ahead, Scott, what were you going to ask?</p>
<p> <strong>Scott: </strong>No, same thing. Just, Microsoft has given an inch so watch us try to take a mile.</p>
<p> <strong>Shawn: </strong>Oh, yeah, we know it. Absolutely.</p>
<p> <strong>Scott: </strong>A lot of times that&#8217;s what people want. They say, OK, there is this API. I want an example for how would use it. I would go look in the help. Well, that example is not what I really want. Microsoft I would assume writes really comprehensive test suites.</p>
<p> <strong>Shawn: </strong>I do not know if the test code is what you want, either. We call it auto PMEs. The PME stands for Property Method and Event. It is super granular. A lot of that code does not relate to any real scenario. It is just wide unit testing code. There are other types of tests as well. A lot of the stuff is that. The challenge of the testing stuff.</p>
<p> I actually think that the testing stuff is a good point, and an interesting thing and I have been thinking about, not really in terms of us releasing test stuff for previous products. I will get into one in a second. The question is going forward, is there a way for customers to leverage the kind of stuff we do in tests more broadly?</p>
<p> However, the reason, going backward, most of our test stuff is written using internal test harnesses and internal tools. There is this huge slippery slope there. You need this and you need that, and it would be really a lot of work.</p>
<p> <strong>Scott: </strong>Right, right, so they would have this test but they would not be able to hit F5 on it and actually watch it run anyways.</p>
<p> <strong>Shawn: </strong>Yeah, and the tests probably call into a bunch of other libraries that are internal that we would not ship externally anyway. The tests themselves might not make any sense. Most of the tests are stored in this big system called Mad Dog, which is kind of a giant database of test cases and test code, and I do not even know how you go about extracting code from that thing.</p>
<p> [laughter]</p>
<p> <a name="positioned"></a> <strong>Sean: </strong>So Shawn, what do you think aboutthis is just something I was noodling on, trying to think of the right way to box it in given the time in terms of a questionso, Microsoft&#8217;s a closed source company, right. By definition if not necessarily for the sake of our interview. What do you think about closed source companies perhaps at times being better able to support the exposure of the source than maybe a company   or a project that simply says &#8216;Well, just go check it out from subversion, from xyz open source project?&#8217;</p>
<p> <strong>Shawn: </strong>Right.</p>
<p> <strong>Sean: </strong>Because I look at the Visual Studio integration, and I look at robably how this will eventually weave into PSS, interacting with customers, and saying well, here&#8217;s an odd dynamic: is a closed source company perhaps better able to actually make the exposure of the source code, when they do it, a more positive experience that actually lets people leverage it more easily? I mean, absent the ability to fork, and some of the more foundational principles of Open Source, how an outside developer would use it day to day development and how a closed source company in this case Microsoft could support that.</p>
<p> <strong>Shawn: </strong>That is a great question. I think that the answer isone of the things that I&#8217;ve been trying to do, and that we&#8217;ve been trying to do, is look at the changes in the industry that open source has driven and really think hard about what the real value adds are there. Is the value add really that you can recompile your kernel, or is the value add that you can debug it and understand why it&#8217;s doing something?</p>
<p> And there are obviously cases where the answer is &#8216;both&#8217; or &#8216;one or the other&#8217;. However, for I think the vast majority of folks, us being able to deliver the source in a way that&#8217;s easy for folks to consume and step through as a way to make them more successful on our platform is a really big win. I think that it fits well into our overall strategy of kind of keeping developers integrated in our overall processes, and it fits well into this another milestone of transparency.</p>
<p> We have kind of been trying to figure out ways to open up the envelope of transparency with Developer Division particularly and I think this fits into that portfolio really wellas well as the portfolio that the Shared Source Initiative folks are building. You have CodePlex on one end which is full open source, then you have kind of our proprietary source system on the other end, and there&#8217;s a nice continuum in between. I think that we do bring some assets to bear which are difficult for companies that are purely open source or service model driven.</p>
<p> <strong>Sean: </strong>OK, cool. Well, that is all I&#8217;ve got, and also to be sensitive to timeScott, do you have a closing question or two?</p>
<p> <strong>Scott: </strong>I think that&#8217;s a good note to leave it on. The thing that we always end with is: are there things that we didn&#8217;t cover that you think are really important for people to know? So, we&#8217;ll just kind of hand you the microphone at the end if there&#8217;s something you want to get out that we didn&#8217;t specifically ask about.</p>
<p> <strong>Shawn:</strong>Nope, I think we covered it all.Thanks guys! </p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=119&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F&amp;title=Interview+with+Shawn+Burke+%26%238211%3B+Director+%26%238211%3B+Microsoft+%26%238211%3B+.NET+Developer+Platform+Group" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F&amp;title=Interview+with+Shawn+Burke+%26%238211%3B+Director+%26%238211%3B+Microsoft+%26%238211%3B+.NET+Developer+Platform+Group" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F&amp;title=Interview+with+Shawn+Burke+%26%238211%3B+Director+%26%238211%3B+Microsoft+%26%238211%3B+.NET+Developer+Platform+Group" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F&amp;title=Interview+with+Shawn+Burke+%26%238211%3B+Director+%26%238211%3B+Microsoft+%26%238211%3B+.NET+Developer+Platform+Group" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F" 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+Shawn+Burke+%26%238211%3B+Director+%26%238211%3B+Microsoft+%26%238211%3B+.NET+Developer+Platform+Group+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F18%2Finterview-with-shawn-burke-program-manager-microsoft%2F" 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/2007/12/18/interview-with-shawn-burke-program-manager-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Steve Morris &#8211; Director &#8211; Open Technology Center</title>
		<link>http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/</link>
		<comments>http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 23:50:33 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[incubator]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[steve morris]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/</guid>
		<description><![CDATA[Interviewers: Scott Swigart, Sean Campbell, and Richard Bowler. Interviewee:Steve Morris In this interview with Steve Morris the director of the Open Technology Center we asked him about: The role of the OTBC The original lean of the OTBC toward open source The dispersal of Open Source Tools in Large Organizations Licensing The percentage of companies [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <a href="http://howsoftwareisbuilt.com/about-scott-swigart/">Scott Swigart</a>, <a href="http://howsoftwareisbuilt.com/about-sean-campbell/">Sean Campbell</a>, and <a href="http://howsoftwareisbuilt.com/about-richard-bowler/">Richard Bowler.</a>
<p><strong>Interviewee:</strong><a href="http://howsoftwareisbuilt.com/interview-with-steve-morris-director-open-technology-center/">Steve Morris</a> </p>
<p>
In this interview with Steve Morris the director of the Open Technology Center we asked him about:</p>
<p><ul>
<li><a href="http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#OTBC">The role of the OTBC</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#Lean">The original lean of the OTBC toward open source</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#Disp">The dispersal of Open Source Tools in Large Organizations</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#Licensing">Licensing</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#percentages">The percentage of companies at the OTBC that use open source technologies</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/12/03/interview-with-steve-morris-director-open-technology-center/#Business">The business implications of Open Source</a></li>
</ul>
<p><span id="more-113"></span></p>
<p><b>Scott:</b> Steve, thanks for taking the time to chat.Could just take a second and tell us little bit about yourself and the OTBC?
<p><b>Steve Morris:</b> Sure. I&#8217;ve been executive director for about nine months. OTBC has been around for a couple of years. My background is very much a technology, marketing, and management background. That started at HP, and now I’m mainly working with local high-tech companies largely in the EDA and semiconductor test areas. This includes both software and hardware. <a name="OTBC"></a>
<p>OTBC is an incubator for start-ups. It&#8217;s funded by the City of Beaverton, related to their economic development plan, so what they&#8217;re interested in is not really pushing open source or any particular dogma;they&#8217;re interested in jobs.
<p>The feasibility study for this place was done as a software company incubator, and it got focused early in its life on open technology.
<p>Since then, we&#8217;ve broadened it back to being technology and computer focused more generally, because focusing on open source was just too narrow to meet our goals. The logic there is basically that if your goal is to find lots of early stage companies with a lot of scalable potential for creating jobs, then it doesn&#8217;t make sense to limit yourself to a narrow niche.
<p><b>Richard:</b><a name="Lean"></a> Why did it originally lean toward open source? What were the arguments? <a name"Lean"></a>
<p><b>Steve:</b> We were very much focusing on Oregon&#8217;s cluster technologies, of which open technology is one. We’re very open source friendly, and certainly encouraging companies to use open source in ways that are appropriate to their business model. But, we&#8217;re certainly not exclusive to that, just like a VC. You won&#8217;t find VCs being too narrow, because they want to consider a reasonable breadth of good business plans for growth, and we&#8217;re much the same.
<p>One of my beliefs in the open source discussion is that you would be hard-pressed to find very many software development projects that did not use open source in some way.
<p>Actually, I would challenge you to point out one that doesn&#8217;t use open source in some way, because software engineers like to use open source tools. At the same time, one question I see a lot of companies not asking, that they should be asking is, &quot;How are we using open source today?” whether it&#8217;s tools, or just incorporating code into their product. Was that a conscious decision? Did they look at the business consequences? And should indeed they be using open source in a different way, either more or less than they’re using it today?&quot;
<p><b>Scott:</b> What do you feel are some of the reasons why open source has so much gravity? Why does it draw people to it, especially around start ups? And what do you see as being some of the reasons why very early on, when they&#8217;re wondering if they have a viable company even, they should be concerned with the how and the why of open source, and how it might affect them as their business grows? <a name="Disp"></a>
<p><b>Steve:</b> Well, first of all let me give you a nicely documented example that&#8217;s not exactly a start up, but it&#8217;s illustrative. Ben Berry, the CIO for the Oregon Department in Transportation, decided to do an audit a year or two ago. Using some automated tools, he did a search across all of his ODOT computer systems to count every open source tool that we could find&#8211; just literally to find out what was there.
<p>They found, if I remember right, about 3,000 or 4,000instances in the ODOT computer systems of open source tools. ODOT at that point had absolutely no policy or strategy about open source. There was no conscious management behind this.
<p>It turned out that this was because open source development tools were free. People at ODOT could download them and use them with the zero red tape. And when you work for state government, zero red tape is a pretty attractive thing.
<p>And so in that one particular example, it was because they were good tools, they could do the job for a software developer, and they were free. So they didn&#8217;t have to ask anybody, and they already had the appropriate rights to install the software.
<p>That&#8217;s an interesting example of one motivation for using open source development tools, which is different from using open source code in your product. Because the tools were free, they were an easy way to get the job done, while eliminating the need to go through red tape.
<p><b>Scott:</b> On the other side, you know a software start-up company&#8217;s going to have to decide whether it&#8217;s going to go with an open source development paradigm for its software product, or whether it&#8217;s going to go for a closed source. Some choose one, some choose the other. What are the main reasons companies do choose open source as a method for developing their main product?
<p><b>Steve: </b>Of course, some people choose a mix, and that&#8217;s almost an easier question to answer, because if I&#8217;m doing a mixed paradigm, probably what I&#8217;m doing is latching on to open source stuff that exists, so I don&#8217;t have to re-invent it. For instance, if I&#8217;m doing a web application, why would I want to re-invent MySQL? On the other hand, I wouldn&#8217;t necessarily want to go off and buy an expensive commercial product either, if MySQL would work.
<p><b>Richard:</b> But in a mixed case, their main code might be closed, so they&#8217;re still going along with the old private IP route, as opposed to making a profit on a product that&#8217;s entirely open source. Building an open source component is one thing, but making the choice to develop your main project in open source is another. Do you have a sense of the business models that are behind that &#8212; the reason people choose that route?
<p><b>Steve:</b> I certainly would not claim to be an expert on that, but I think there are a couple of different reasons. One is that there truly are people who believe that software ought to be free, or close to free,as in beer, and it really is a philosophical thing.
<p>There are others who are going to use an open source paradigm, who really are thinking more pragmatically. They see something that already does a lot of what they need to do, and it&#8217;s open source, so they can use it, and it gets them where they need to go with less effort. People with that more pragmatic attitude are obviously looking at a monetization strategy that&#8217;s different then selling source code.
<p>For example there are lots of &#8216;software as a service&#8217; companies, which really is essentially a web based service. If you can put together most of your software by leveraging something that&#8217;s open source, that can get you to your software as a service play a lot faster. <a name="Business"></a>
<p><b>Scott:</b> One thing you said was that some companies start grabbing different open source components and tools, but they don&#8217;t necessarily put a lot of thought into it. And you alluded to the fact that it might have business implications down the road. Can you expand on that a little bit?
<p><b>Steve:</b> Take the ODOT example, where they had software engineers simply downloading it, and using tools with no license review,no policy, and no processes. One interesting question is whether they are going to download something and use it in a way that might violate the license.
<p>My guess is, when you&#8217;re talking development tools, that&#8217;s probably a pretty rare problem. It&#8217;s a lot different, obviously, than downloading some code and putting it in your product, in which case you absolutely can have some license implications. <a name="Licensing"></a>
<p><b>Scott:</b> In the companies that you deal with, have you seen it happen that people find something that does what they need, and they bundle it with their product and then realize that the licensing terms are going to have some ramifications that they don&#8217;t necessarily want? I know that&#8217;s a concern, but I&#8217;m curious how often it really gets that far.
<p><b>Steve:</b> It gets that far a lot if you have a mixed model. If part of your product is open source, and part is proprietary, you have to be particularly careful from a licensing standpoint to build the right wall between the license for the proprietary stuff, and the license for the open source stuff. If you&#8217;re not careful, your open source license can infect your proprietary software.
<p><b>Scott:</b> I know that Microsoft cannot accept any community written code for anything that goes into any of their products,because they&#8217;re terrified that somebody will do a Google search, find a section of code and say, &quot;these 10 lines of code were originally under the GPL license. Therefore, Windows has to be open source now.&quot;  Maybe I’m exaggerating a bit, but it’s something like that.
<p>Do you encounter companies that go the other direction? Do you encounter companies that just say, &quot;We&#8217;re just using 100% the Microsoft stack: Windows, .NET, Microsoft SQL Server.  Or, from your experience, is that pretty uncommon as well?
<p><b>Steve:</b> I certainly know a few companies that wouldfit that description, although I don&#8217;t think we have any that quite fit it at OTBC. My impression is that Microsoft represents such a huge market that you get a lot of companies out there that focus pretty exclusively on a Microsoft environment.
<p><b>Scott:</b> Do you find that companies put a lot of forethought into it? Is it because the company founder has a certain preference because of their experience, or that they pull in certain developers who lobby really hard for building on top of Linux, or building on top of Windows? Do you see it more often being a really conscious, up-front decision, or just something that kind of happens?
<p><b>Steve:</b> I see it being a pretty conscious decision most of the time, because it typically comes down to what your target market is, and what platforms you have to support. If your target market is largely Microsoft-driven, that guides you in that direction.
<p>On the other hand, if your target market includes a fair amount of Linux, and Mac, or whatever else, then clearly you&#8217;re going to think about it differently. Most software companies are pretty pragmatic about who their target is. Obviously, their choice of platform and development approach can eliminate potential customers, and so they need to think about that fairly carefully. <a name="percentages"></a>
<p><b>Richard:</b> You said that over at the OTBC, it&#8217;s not specifically or explicitly all open source anymore. What percentage of the companies that you have in residence there are working on purely open source products?
<p><b>Steve:</b> Well, including open source products with a software as a service business model, I had at in at least three or four,probably more.
<p><b>Richard:</b> Can you expand a little bit on what that model looks like?
<p><b>Steve:</b> One of the companies is called&quot;GoSeeTell.&quot; They&#8217;re building what is essentially a social networking play having to do with travel. They’re taking an interesting approach where they target a particular sponsor. So, for example, they&#8217;re working with Travel Oregon, putting together a web site for Travel Oregon that leverages comments and suggestions from people who have actually been to the places.
<p>But, at the same time, they&#8217;re doing one for a Fortune 500company, which is targeted for that company’s employees. It leverages the same database of user feedback as the other portal does, but it&#8217;s a portal that&#8217;s customized to some specifics that are of particular value to the company’s employees.
<p>It&#8217;s very much in a social networking play in that it lets you look at suggestions from other people that have been to a place. And you go beyond that to entering your profile and having the system start to make recommendations: &quot;People like you really enjoyed this place,&quot; and then you can hear some of their comments.
<p>The infrastructure is all built on open source tools &#8212; things like databases, content management systems, and so forth.
<p><b>Richard:</b> So, they&#8217;re using open source behind the scenes to do their development, but their actual product is really a service offering through the Internet?
<p><b>Steve:</b> Right. The product itself is a service, and but some of  the underlying software is open source.
<p><b>Scott:</b> In the companies you work with, do you see that as being a primary model of open source, where they&#8217;re building their own intellectual property and their own proprietary things, but they&#8217;re building it on top of open source because of the advantages that they see open source having?
<p><b>Steve:</b> It&#8217;s mainly what we&#8217;re seeing here now, at OTBC at least, in that the majority of the companies we have here are software as service pledged, and to one extent or another, most or all of them are leveraging open source, some pretty aggressively. I don&#8217;t know how representative our little sample is, but it certainly is very much the model that we&#8217;ve got going on.
<p><b>Scott:</b> In the Portland metro area, open source is pretty strong, but I would guess that it&#8217;s not unique to this geography. The reasons it makes sense here are geographically independent.
<p><b>Steve:</b> And when you&#8217;re building software as as service, again, that&#8217;s one place where it makes sense. If you can get pieces that are already built and that you don&#8217;t have to pay a royalty to use, then that&#8217;s great. And when what you&#8217;re offering is a service, you&#8217;re pretty safe,in terms of not violating anybody&#8217;s license.
<p><b>Scott:</b> In cases where they&#8217;re using a hybrid approach, where they&#8217;re not just going 100 percent open source for their infrastructure, what are some of the examples of where they&#8217;re choosing a closed source, proprietary component to be a piece of it, and what are some of the reasons you see behind that?
<p><b>Steve:</b> One particular company that used to be here definitely had a mixed strategy. They had some basic tools that were open source, and then they had some more advanced tools that were proprietary.
<p>The business model was definitely based on proprietary software, and they’re using open source items as marketing hooks, getting people aware of the company and the capabilities. That&#8217;s certainly one model you see in the mixed mode &#8212; providing some value through an open source solution that will get your name out there, get users involved, and give them a reason to find out more about your other stuff, in order to up-sell them on your proprietary line.
<p><b>Scott:</b> So in that example, they offered an open source version of their product, but there were certain up-sell features that were for-pay that weren&#8217;t open source?
<p><b>Steve:</b> Exactly. In their case, they were offering a couple of fairly fully functioning modules which were very nicely expanded with capabilities in their proprietary software modules.
<p><b>Scott:</b> I&#8217;ve seen that model quite a bit, too. Some of the things we&#8217;ve run into, like SugarCRM, certainly have a model like that,where they give a certain amount for free, but then other features &#8212; fairly essential things &#8212; are for-pay. Other times the whole product is open source,but what you pay for is support. If somebody goes with a completely open source product, it seems like support, a lot of times, is what they end up charging for.
<p><b>Steve:</b> I think those are the two basic models.You&#8217;ve got to monetize it somehow. You know the Red Hat approach, right? You&#8217;re primarily paying for support and installation tools, which is not too different from the traditional model of having a basic product that&#8217;s really cheap. In this case, &#8216;really cheap&#8217; is free, but that&#8217;s obviously a model that&#8217;s been out there for forever.
<p><b>Scott:</b> Of course, it&#8217;s not unique to open source.Take a look at Adobe. Everybody can download and run the Adobe Reader which work on every important platform. But for a long time, the tools to produce PDF files were something you had to pay for. Now PDF has become so ubiquitous that the format itself is pretty much open source. You see that a lot, where companies will give away a tool that lets you consume something, but the tool to actually produce it is something that you have to pay for.
<p>Interesting to see how that&#8217;s evolved. Even companies that are building on top of Windows seem to be doing the same kind of things. I wonder if you&#8217;re seeing any of that, where companies are choosing a proprietary stack, but they&#8217;re still going with a product that&#8217;s modular and they can build a community around, and some of the modules or add-ons or things like that are community-built.
<p><b>Steve:</b> I haven&#8217;t seen a lot of that here or around here. I see what you&#8217;re saying, and I think there are certainly things like that out there. I just can&#8217;t think of too many examples off the top of my head of them.
<p><b>Scott:</b> For the companies that go with the route that you talked about, where it&#8217;s, &quot;Give away one version, up-sell to another version,&quot; it seems that building a community around the free version is pretty critical. Do you see secrets to success in doing that, in getting your free version to achieve critical mass?
<p><b>Steve:</b> Getting the free version to get critical mass, getting some initial users, can certainly be an effective marketing strategy, whether or not you build a community.
<p>To me, I guess there are two different things that you just talked about. One is having something out there that&#8217;s free. As you pointed out, Adobe Reader was free, and it wasn&#8217;t open source. It was very definitely a market development strategy, much like some open source plays are, which is different from putting it out there as open source specifically to try to develop a community that&#8217;s going to actually help develop and extend the product.
<p>To me, those are two different goals. Maybe I just want to put out something that&#8217;s free, and maybe I want to call it open source so that I&#8217;m open source-friendly to appeal to the community. But I might not really be looking for a developer community. I might put the source out there, but I might not really care. I might mainly care about people using it.
<p><b>Richard:</b> Are any of your resident companies leveraging that sort of community? Are they getting development help outside,from a community that they&#8217;ve put together through open sourcing?
<p><b>Steve:</b> Right now, I think the answer to that is no.And again, it&#8217;s primarily because the software companies here are largely focused on the software as a service model. I think you&#8217;ll see that happening in the software as a service model, although I haven&#8217;t seen it here a lot yet.
<p>You&#8217;ve got the same rationale, even if your software is available as a service. There&#8217;s potentially some leverage if you can open source it and get some additional functionality. It&#8217;s a little different, obviously,with software as a service, because this stuff is running on your servers, as opposed to the customers&#8217;. And so you care mainly about making sure that it&#8217;s going to run well.
<p>I have seen some companies playing with models having software as a hosted service, where the software is open source, and as another option you can run it on your machine. That&#8217;s getting closer to a traditional open source model. You can go through the cost of hosting it yourself, or you can buy it as a service on the company&#8217;s server.
<p><b>Scott:</b> If I&#8217;m a company looking at releasing as software product, if I release a portion of it as open source, I will get a broader customer base potentially because there are certain people out there that really only want to run stuff that&#8217;s open source. Even though they may never look at the source code or do anything with it. Is that a fair assessment?
<p><b>Steve:</b> I think there&#8217;s some truth to that, although I think you can add that you can also position it as an insurance policy.Companies have various types of insurance that they hope they’ll never use.Having access to the source feels like a kind of insurance.
<p><b>Scott:</b> You know, one of the things that we&#8217;re looking for are some real world examples of companies that have been “saved by the source”. Our search hasn&#8217;t been extensive, but we haven&#8217;t really found any examples of &quot;If I hadn&#8217;t had the source, I would have been totally hosed.&quot;
<p><b>Steve:</b> I&#8217;m not surprised to hear that because it&#8217;s a value proposition that you hope you never have to use, and that&#8217;s probably how most people think about it, although I&#8217;m sure there are some people that like to buy open source because they just can&#8217;t wait to go in and tweak it.
<p>But I&#8217;m not sure that I can point you to a specific example of somebody who just really had to tweak something for their purposes.
<p><b>Richard:</b> So far, we have really been focused on open source consumers and mixed models in terms of using open source tools to put together interesting companies with different sorts of business models.Traditionally there&#8217;s been a certain level of antagonism between the open source and closed source community. And some of the things you&#8217;ve said imply that, on the open source side at least, that antagonism is changing into something else, some level of collaboration. Would you say that&#8217;s a fair assessment?
<p><b>Steve:</b> I&#8217;m not sure. It&#8217;s certainly a continuum;there are certainly people out there in the open source world that I would callfairly &quot;purist&quot; who truly believe that software should be free.
<p>On the other hand, there are some more marketing-oriented pragmatists who look at open source as merely being one of the tools in the tool belt that you use either for a marketing purpose, or for a more efficient product-development purpose, or for an additional set of promises you can make to customers.
<p>I think there are a lot more shades of grey out there. I suppose it is changing, but changing by virtue of more folks looking at it with a fresh view and being maybe a little more pragmatic as opposed to philosophical.
<p><b>Richard:</b> Well, if you think about a bell curve and you think of people who wouldn&#8217;t touch open source on one side and people who wouldn&#8217;t touch anything but open source on the other side, it seems to me that the center is broadening. That more and more of the majority of people area gnostic about open source versus closed source. Rather they&#8217;re looking for what works best for the business model or the support that they want to put together.
<p><b>Steve:</b> Yes, I absolutely agree. And I guess in my mind the thing that a lot of people gloss over when they talk about open source is that there are these two fundamentally different ways of using it. On the one hand, using tools that help you do your software development, like tools for tracking and reporting bugs, that kind of stuff&#8211;stuff that doesn&#8217;t go into your product, versus the stuff that does go into your product.
<p>Software engineering tools are where you&#8217;d be hard pressed to find very many companies that don&#8217;t use open source to a certain extent,because there are just so many good tools out there for software developers.
<p><b>Scott:</b> I think big companies &#8212; the Suns, and the IBMs, and the Microsofts &#8212; depend on that. They depend on an ecosystem that&#8217;s going to fill in the gaps, and sometimes that ecosystem is a third-party vendor, and sometimes that ecosystem is free and open source software.
<p><b>Steve:</b> Exactly. Some of it&#8217;s third party, and some of it&#8217;s not. Some things develop simply because everybody needs them, there&#8217;s no good proprietary solution available, and there&#8217;s no particular competitive advantage would come out of building it. That&#8217;s where you get stuff like Apache. A bunch of people needed it, so instead of everyone inventing their own wheel they all decided to just cooperate.
<p><b>Scott:</b> Steve, thanks for taking the time to chat. </p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=113&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F&amp;title=Interview+with+Steve+Morris+%26%238211%3B+Director+%26%238211%3B+Open+Technology+Center" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F&amp;title=Interview+with+Steve+Morris+%26%238211%3B+Director+%26%238211%3B+Open+Technology+Center" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F&amp;title=Interview+with+Steve+Morris+%26%238211%3B+Director+%26%238211%3B+Open+Technology+Center" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F&amp;title=Interview+with+Steve+Morris+%26%238211%3B+Director+%26%238211%3B+Open+Technology+Center" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F" 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+Steve+Morris+%26%238211%3B+Director+%26%238211%3B+Open+Technology+Center+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F12%2F03%2Finterview-with-steve-morris-director-open-technology-center%2F" 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/2007/12/03/interview-with-steve-morris-director-open-technology-center/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Interview with Doug Look &#8211; Strategic Designer &#8211; Autodesk Labs</title>
		<link>http://howsoftwareisbuilt.com/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/</link>
		<comments>http://howsoftwareisbuilt.com/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 03:33:55 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[autodesk]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[doug look]]></category>
		<category><![CDATA[interdisciplinary]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/</guid>
		<description><![CDATA[In this interview, we talk with Doug Look, who&#8217;s a strategic designer for Autodesk Labs. The labs are interesting because they&#8217;ve built a strong, engaged, community around closed-source software. In this interview, we specifically cover: · Using an online &#8220;Lab&#8221; to engage the community in closed-source development. · Does open-source tackle interdisciplinary problems well? · [...]]]></description>
			<content:encoded><![CDATA[<p>In this interview, we talk with Doug Look, who&#8217;s a strategic designer for <a href="http://labs.autodesk.com/">Autodesk Labs</a>. The labs are interesting because they&#8217;ve built a strong, engaged, community around closed-source software. In this interview, we specifically cover:
<p>· <a href="http://howsoftwareisbuilt.com/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/#Labs">Using an online &#8220;Lab&#8221; to engage the community in closed-source development.</a>
<p>· <a href="http://howsoftwareisbuilt.com/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/#interdiscipline">Does open-source tackle interdisciplinary problems well?</a>
<p>· <a href="http://howsoftwareisbuilt.com/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/#inaction">What does an interdisciplinary team in action look like?</a>  </p>
<p><span id="more-110"></span></p>
<p><b>Scott</b>: &nbsp;Thanks for taking the time to chat. Would you mind introducing yourself?
<p><b>Doug Look</b>: &nbsp;Sure. I&#8217;m Doug Look. My role is senior strategic designer for <a></a><a></a><a href="http://labs.autodesk.com/">Autodesk Labs</a>. That means, essentially, overseeing the design aspects of the solutions that we&#8217;re exploring at Autodesk Labs. Autodesk Labs is a place where we preview and share new technology. Our intent is to share things early enough in the process so that we can get a good read from our customers and from users as to what works, and what doesn&#8217;t work.</p>
<p>I have a particular interest and background in user centered innovation. Before I came back to work at Autodesk Labs, I had gone back to school at the Institute of Design here in Chicago, and I completed a Master of Design Methods program. It&#8217;s about design innovation methods and processes, and a lot of focus on going out to understand user needs, by using ethnographic and social sciences techniques.</p>
<p>The thing I&#8217;m hoping to bring to the labs, and back to Autodesk, is the notion of understanding user experience. You&#8217;ve probably heard that term used a lot. And we&#8217;ve got some really, really smart technology folks in the lab, and my role is to represent users and help us focus on doing things that make sense to our customers.</p>
<p>Before this line of work, my formal training and my experience had been as a practicing architect. I&#8217;m a second-generation architect and practiced in upstate New York, in Ithaca, for about 17 years. That&#8217;s my background. </p>
<p><b>Sean</b>: &nbsp;Thanks. Could you tell us a little bit more about Autodesk Labs? We&#8217;ve visited the site and taken a look at it, and it looks like what we sometimes refer to as a &#8220;Pirate radio station.&#8221; It&#8217;s a site that&#8217;s outside realm of the main corporate site.</p>
<p>That&#8217;s useful in terms of building a sense of community, or running certain kinds of product releases early to get feedback. So tell us a little bit about how that site got developed, and your particular role in leading it, day to day. </p>
<p><b>Doug</b>: &nbsp;I think you got it just right. I wasn&#8217;t around when Autodesk Labs was established, but I think it&#8217;s been around for just under a year. It is a way to engage customers and users. It allows us to put up trial balloons for new things that maybe the engineers cooked up.</p>
<p>Every so often, we get requests through entries in the blogs, or there&#8217;s someone from a discussion group requesting a certain feature. One example was somebody wanted an easy way to publish their model information from Autodesk Inventor to our Freewheel site, which is our zero client way of viewing both 3D and 2D model information. Folks at the labs took it on, and I think within three weeks or so, they had something up.</p>
<p>It&#8217;s really a test-bed. We have the ability to maybe have a little bit less process than other parts of the company, because this is not production quality kind of development. It&#8217;s really about offering as much as you can, getting it out there, with the hope of getting early and direct feedback from our users. </p>
<p><b>Sean</b>: &nbsp;So would you say the site predominantly informs the mainline products that you develop, and that things from the test bed may make it into the products?
<p><b>Doug</b>: &nbsp;This is a place for us to test out new things. We&#8217;re looking to see if things are possible, to see if customers resonate with some of these ideas. I guess it&#8217;s fair to say that we have a little bit more leeway in terms of the things that we pursue, because if it works, great. But, hey, part of it is also finding out what doesn&#8217;t work.
<p><b>Scott</b>: &nbsp;In terms of the site&#8217;s influence, what are some things you could point to that have been canted or targeted to a different direction based on the discussions or feedback on the Labs site?
<p><b>Doug</b>: &nbsp;I think we&#8217;ve gotten some good feedback, some early feedback on a number of early concepts. One of the so-called graduates of the lab is something called Autodesk Impression. This is a way of taking CAD data and kind of putting different filters on it and rendering it. As I understand it, there was good, direct feedback, and the development team was able to take that into account. We felt confident enough that it is now a product.</p>
<p>Another product that we&#8217;ve pulled together is called ShareNow. It&#8217;s a plug-in, basically, for Autodesk Inventor, Revit, and AutoCAD. It came directly out of a request that was fielded through Labs. This lets you upload and share your 3D and 2D model data directly into a Web application where anyone can view and navigate the model. </p>
<p>I don&#8217;t know if you&#8217;ve had a chance to look at the site lately, but just the other day, we got an early version of Content Search posted. There&#8217;s also something called Project Showroom, which is an experiment to see how people feel about being able to view virtual spaces. Plans are rendered on the fly, and tested out with different products.
<p>Those are examples of things that we&#8217;ve done.
<p><b>Sean</b>: &nbsp; I&#8217;ve seen both of those. The Showroom one actually stood out to me as well.
<p><b>Scott</b>: &nbsp;In terms of the lab, how does that process work? When somebody requests something, how do you prioritize what to work on and what to move forward with?
<p><b>Doug</b>: &nbsp;I think it&#8217;s on a case by case basis. It&#8217;s a fairly small and fast team. We get feedback, not only from the discussion groups, but we&#8217;ll go out at customer events, and even arrange our own visits with folks. We just try to use it as a way to gather feedback. There&#8217;s no formal process that we crank it through. If it seems to make sense, it looks interesting and we have people that are available to do it, then we&#8217;ll go for it.
<p><b>Scott</b>: &nbsp;OK. Which I guess makes sense, but it&#8217;s kind of based on a feeling of whether the idea really has legs and would really benefit people?
<p><b>Doug</b>: &nbsp;Yeah, that&#8217;s it. I’d say that, based on our experience in the design industry, Autodesk has a good feel for what might benefit users. We’ve gained a wealth of rich knowledge from customers over the years (through customer surveys, beta testers, customer councils, AUGI, and the like), that’s helped provide a base of understanding to work from. We also want to take advantage of my background from the Institute of Design. I think one of the things that we&#8217;re hoping to do is get out in front a little bit, and do a little bit of generative research. Go out there and do some observations and interviews with folks, much like the way you guys are learning more about this open source notion by talking to people.</p>
<p>I think that, if we had a chance to do some of that research, analyze and synthesize, that would also help inform the direction in which we move, in terms of what we should be developing. One of my roles, one of my goals, is to keep focus on what users are really doing and trying to do, and focusing on user centered needs. Quite frankly, at this point, with the technology and with the experience of the developers that we have, a lot of things are very possible. </p>
<p><b>Scott</b>: &nbsp;How much of what you guys are doing was inspired, or triggered, in part by what you have seen open source projects do, in terms of developing in the open, making sure that people have a really clear line of sight to a project from pretty much the light bulb going off and the idea being conceived, all the way through development?</p>
<p><b>Doug</b>: &nbsp;I think that there are some interesting parallels. I think that what&#8217;s interesting to me about open source development is this notion that you&#8217;re making things completely transparent, that you&#8217;re going out and involving a large community of users, so you&#8217;re getting representative use from a lot of different areas.</p>
<p>If those are some of the guiding principles for open source, I think those are some of the principles that we&#8217;re trying to use in Autodesk Labs as well. It&#8217;s really to have that focus to be on being transparent and trying to get a full understanding and get input from our users and our customers. </p>
<p><b>Sean</b>: &nbsp;I trot around with an iPhone and a Mac, and I&#8217;m interested in what&#8217;s been called &#8220;peak experience.&#8221; Do you think open source can reach the level of peak experience, from a user standpoint, and usability standpoint? It feels like it&#8217;s easier for closed-source to have a rock-solid vision, but I&#8217;m not sure. I&#8217;m personally on the fence; I feel I&#8217;m still investigating this.
<p><b>Doug</b>: &nbsp;It&#8217;s a tough problem, whether you&#8217;re open source or closed source, to come up and nail that incredible customer experience. And I think you touched upon it a little bit when you talked about having some kind of rock solid vision. I was thinking about that earlier today, and specifically thinking about Linux.</p>
<p>Torvalds had a rock solid vision, did a bunch of work, and made an open source development community. So it’s really possible to get things jump‑started.</p>
<p>Whether or not, you can turn it into the iPhone experience without someone constantly driving a singular vision and tying together maybe all the different constituencies somehow, I think that seems to be one of the challenges.</p>
<p>The other thing I was thinking about relative to this was&#8230; I&#8217;ve been reading this book, &#8220;Designing Interactions,&#8221; by Bill Moggridge, one of the founders of IDEO, and he has these really interesting interviews.</p>
<p>In one of them, he&#8217;s interviewing David Liddle, who worked on some of the original Xerox Star interface. And he explains development of technology and he breaks it into three phases; one is the enthusiast phase; the second is the professional phase; the third is the consumer phase.</p>
<p>I don&#8217;t know for sure, but I have a hunch that maybe the open source side is really great at the enthusiast stage but that what you really want are really quick and rapid iterations and lots of input from lots of sources and you&#8217;re maybe not as concerned with everything being all exactly worked out. You&#8217;re really just interested in pushing the ball forward as quickly as you can.</p>
<p>When you then need to move that forward into the professional phase ‑ when it needs to get more robust and you need to maybe, in some ways, to clamp things down a little bit. And then, at the consumer phase, that&#8217;s when you need to pull it all together and simplify it and make something beautiful as an experience, not just the way it looks.<br />So my hunch is that maybe some of these different development models are a bit more applicable to different parts of where a technology might reside in each cycle. </p>
<p><b>Sean</b>: &nbsp;OK Fair enough.
<p><b>Scott</b>: &nbsp;One of the things that you said the lab lets you do is iterate and try things out and not go through as much process.
<p><b>Doug</b>: &nbsp;Right.
<p><b>Scott</b>: &nbsp;One of the things that we&#8217;ve found in talking to closed source companies is that, when you come out with a new version of a product, there are business reasons to make fairly substantial changes to the product. You want there to be enough of a delta between V2 and V1 of a product that people see a reason to upgrade and they see value in the new version. In closed source, your previous version is competition.</p>
<p>This pushes closed source, proprietary products, to trying to add a lot of value from one version to the next. Open source, on the other hand, can move much more incrementally. The people working on the Linux kernel, or working on a patch, they&#8217;re just out to get it right. They&#8217;re not out &#8220;selling&#8221; and upgrade of the web server or the kernel.</p>
<p>The challenge is that sometimes companies will think up a fairly grandiose idea, but when they actually ship it, it ends up being a flop and a lot of wasted effort. Do you feel like that&#8217;s one of the reasons for the lab, is to really track with what people are going to use and to keep your pulse on what people are going to find interesting and compelling? Or are there other kinds of benefits you get that I&#8217;m missing in my analysis? </p>
<p><b>Doug</b>: &nbsp;I think that one of the main reasons for Autodesk Labs is to get that early feedback. You guys are familiar with the software development process. By the time you are really at the stage where you&#8217;re giving early access to your product, in a normal product development cycle, it&#8217;s really almost too late to make any significant changes.</p>
<p>I think the theory, anyway, with a place like Labs, is that you get early leads and do quick prototyping, with the expectation that it isn&#8217;t production quality, but with the goal of really gaining user input and feedback. That&#8217;s really important.</p>
<p>I&#8217;ve noticed a difference, since my first tenure at Autodesk, that this is very important to the company. When I worked on some of these earlier development products at Autodesk, our team, didn&#8217;t know what we were doing was bleeding edge or anything, but we actually went out and we were doing early prototyping and sharing early versions of our ideas with our customers, even before things were coded up.</p>
<p>And I think, at the time anyway, that was a fairly unique process at Autodesk. And yet, today, if you look around, at least from what I see in the company, there&#8217;s a huge effort to go out and gain this early user feedback and use it to inform the process, early enough in the process. </p>
<p><b>Scott</b>: &nbsp;For a long time in business, it seems like the thinking was: &#8220;Absolutely don&#8217;t show the product until you have to. Be worried about what competitors will do if they see the direction that we&#8217;re going.&#8221;
<p><b>Doug</b>: &nbsp;Right.
<p><b>Scott</b>: &nbsp;&#8221;Try to keep it under wraps.&#8221; And then, when you release a version, release it with a lot of fanfare. Now, the trend has moved to be very transparent, and have a really good dialog with your users, and get some of their ideas and enthusiasm to infect your development team so that they&#8217;ll build really cool stuff. What happened to the fear of the competitive threat? Is it there, but people have just recognized that they just can&#8217;t really worry about that? Or how was the thinking able to shift?
<p><b>Doug</b>: &nbsp;My perspective of that is that I think that companies are finally starting to realize how really important it is to understand the customer. 10, 15, 20 years ago, the people that were using applications, using computers, were willing to put up with a lot more heartache, because they were enthusiasts and you didn&#8217;t have to really do as much to get people to like what they were purchasing or using.</p>
<p>Now on the user side, people are more mature in terms of their attitudes towards the use of technology, and they have quite a bit to say. It&#8217;s great that we&#8217;re changing this around &#8212; going out and really listening &#8212; and using that to inform our thinking. </p>
<p><b>Scott</b>: &nbsp;Is there a concern that competitors might look at what you&#8217;re doing and get there sooner? Or is that just the risks you have to take to do business?
<p><b>Doug</b>: &nbsp;What tends to be happening is that, as companies are being forced to do things quicker and quicker in very fast cycles, the development times are way down. I don&#8217;t know, maybe because things are so quick cycled, there&#8217;s a little bit less concern about somebody else catching on and doing it. You can&#8217;t stop. You keep on developing and you keep learning and you keep moving the ball forward.
<p><b>Sean</b>: &nbsp;You said earlier that open source projects often exist to initially solve a technology problem. And then there&#8217;s this life cycle of the products as they go through, and it eventually gets more refined and distributed to consumers.</p>
<p>Do you see any open source projects that you feel exhibit a good design aesthetic? I mean, I&#8217;m not of that field, so hopefully I&#8217;m using the appropriate phrase, but have you looked at something where you say, &#8220;Look at that. That was built in an open source model. I love the way they did design. They really seem to understand the usability aspect, and I would think that&#8217;s a good model of it.&#8221;</p>
<p><b>Doug: </b>Since I figured you guys were doing all this research, I wanted to ask you that question. [laughs] But I guess you haven&#8217;t found the answer yet. </p>
<p>I guess I&#8217;m not aware of any of the open source efforts that have this slant, or ones where design seems to have billing, in the holistic sense. Maybe people haven&#8217;t reached the point that that&#8217;s an issue yet. I don&#8217;t see why it couldn&#8217;t work. If there was kind of a call to arms for designers to get out and solve at the interaction level or visual level or how the applications or platforms are working, you&#8217;d probably see kind of a community of designers get involved. Communities really have taken off at Autodesk. Labs is just one; there’s a manufacturing community, a civil community, and of course AUGI, our international user group.
<p><b>Sean</b>: &nbsp;In open-source, it seems that credibility resides, to a large extent, in technical capability. </p>
<p>Do you think it&#8217;s, perhaps, nothing more than the habitual disconnect between the person designing, who has a different focus for their intellectual tasks than someone who&#8217;s simply trying to write code, and it&#8217;s kind of an impedance mismatch that never really fully settles itself out? </p>
<p><b>Doug</b>: &nbsp;Yeah, I think you&#8217;re right. Different people think in different ways, and in terms of the design side, those are different skill sets that maybe aren&#8217;t being called upon yet. This, again, doesn&#8217;t mean that that couldn&#8217;t happen.</p>
<p>Design is kind of part of this open source notion. It&#8217;s not really open source to the same extent, but you see every day in this little Web 2.0 world, people doing mashups and taking components that they&#8217;re finding from anywhere and kind of putting them together and making really interesting applications.</p>
<p>And I think, at least in the Web 2.0 world, design does seem to play a role in that. Not only as the underlying technology, but also the way things work, the way they feel, the experience that they&#8217;re giving to their users.</p>
<p>To me, that&#8217;s along the same lines as that open source on the design side, kind of this democratization of the process. Anyone can participate. I think that&#8217;s a really strong idea to, perhaps, get some people to talk about and challenge the design community to get involved in one of these things.</p>
<p>The other example, and it&#8217;s not a direct one-to-one example of software development, but there&#8217;s a group called <a href="http://www.architectureforhumanity.org/">Architecture for Humanity</a>. Are you familiar with them? </p>
<p><b>Sean</b>: &nbsp;I&#8217;m not. I&#8217;m not.
<p><b>Doug</b>: &nbsp;They gave a really interesting talk at one of the TED conferences, and actually ended up winning one of the prizes. They created an open source design network for solving architectural and environmental problems.</p>
<p>And what they&#8217;ve done is created a way of getting designers to input ideas into this network, and share out all these ideas with anybody who wants to participate and work.<br />One of the mechanisms that they used to do this was what&#8217;s called <a href="http://creativecommons.org/">Creative Commons</a> licensing. </p>
<p><b>Sean</b>: &nbsp;Yep.
<p><b>Doug</b>: &nbsp;I just think that that&#8217;s another hint that there are certainly opportunities for the design community to get involved in the open source development world.
<p><a name="interdiscipline"></a><b>Scott</b>: &nbsp;And I&#8217;ll just make an observation on that. Open source seems to work when it&#8217;s used in a single discipline environment.</p>
<p>So if you want to contribute to Open Office, you pretty much have to be able to write code. If you want to contribute to the Linux kernel, you pretty much have to be able to write code. If you want to affect the user interface, you have to be a coder, rather than a pure designer, to do it. There isn&#8217;t a lot of ability&#8230; </p>
<p><b>Doug</b>: &nbsp;In the environment that exists today.
<p><b>Scott</b>: &nbsp;In the environment that exists today. And what you talked about with architectural design was, again, fairly single disciplinary, right? It&#8217;s these architects sharing these designs. </p>
<p>And so you find this a lot, and I think one of the chasms that open source hasn&#8217;t yet figured out how to cross is to pull together an interdisciplinary team to solve a problem. </p>
<p><b>Doug</b>: &nbsp;And I think that&#8217;s where some of the really interesting things get solved, is when you&#8217;re working on teams that are made up of different individuals of different backgrounds and different perspectives.</p>
<p>That certainly happens on the open source development side, because you&#8217;ve got people from all over the place participating. But I&#8217;m not familiar enough with the way the process works. Do they ever get in the same room, or share a whiteboard and talk with each other? Or is it really just in the check‑in, check‑out of code? </p>
<p><b>Scott</b>: &nbsp;It depends on the product. Some products, like MySQL, really are open in the fact that the code is out there and somebody could fork it, but everybody who&#8217;s working on it works for the MySQL company.</p>
<p>Other things like Apache and the Linux kernel and a lot of other stuff, really is built over a mailing list, and they never do physically get together and whiteboard stuff. </p>
<p><b>Doug</b>: &nbsp;Maybe some of the limitations are there just because of the way that the environment, as we&#8217;ve been talking about it, has been framed out. I mean, what&#8217;s to say that if I wanted to get in and share some ideas and thoughts about the user interface with Linux, that I couldn&#8217;t just post some bitmap graphics to the nodes or a paper on some ideas that I wanted, not necessarily checking in and out source code and coding.
<p><b>Scott</b>: &nbsp;I&#8217;m going out here on a limb, and if I&#8217;m off base I hope readers of this interview will comment and correct me, but it seems like open-source emulates (dare I say, copies) work that interdisciplinary teams have done. I don&#8217;t know that there would be an Open Office if there hadn&#8217;t first been a Microsoft Office.
<p><b>Doug</b>: &nbsp;Right.
<p><b>Scott</b>: &nbsp;The Linux kernel was obviously patterned after UNIX. Apache, on the other hand, was built from scratch as a web server. A lot of times open-source isn&#8217;t doing things that are interdisciplinary, or if it is doing something interdisciplinary, it&#8217;s because those interdisciplinary skills exist in certain unique individuals. You have a cryptography expert who can code. You have someone who can both envision a better process/thread scheduler, and can code it up as well. If you&#8217;re just a mathematical researcher, but you&#8217;re not a coder, I don&#8217;t know that you have a mechanism to get the fruits of your research into the product. You have to hope a coder will pick up your research and run with it.
<p><b>Doug</b>: &nbsp;Right. You guys are writers, and write books and such. I guess the question that I have is for a process like creative writing, say take creative writing, could you imagine writing a novel by open source methods?
<p><b>Scott</b>: &nbsp;Well, sure. Or definitely you can write an encyclopedia with open-source methods.
<p><b>Doug</b>: &nbsp;I&#8217;m talking more about maybe something less technical.
<p><b>Sean</b>: &nbsp; In other words, something that has a plot, a logical consistency, the characters don&#8217;t jump from one island to the other. So it&#8217;s not like the grammar school game of the story starts out on row one and by row five, essentially they&#8217;re slaying dragons on space ships all of the sudden.
<p><b>Doug</b>: &nbsp;Yeah, these are just questions that I don&#8217;t know the answer to, but I think they&#8217;re really interesting ones to ask. I mean, whether or not the visual kind of design, where you&#8217;re working in concert with each other, can produce that kind of deep user experience, using an open-source model… I don&#8217;t know.
<p><b>Sean</b>: &nbsp;Let me switch gears for a minute here. In terms closed source, talk about how Autodesk handles the process of weaving design in as part of a product. Walk us through the life cycle of a feature that required high design characteristics, and how that came about from inception through production.
<p><b>Doug</b>: &nbsp;<a name="	inaction"></a>I can tell you a little bit about the initial way we developed the Autodesk Design Review product. Maybe that&#8217;s a good way of sharing how we went about doing that.<br />I was a senior product manager and I was working very closely with the senior product designer. And as a team, we went out to gather requirements. We had product management and product design go hand in hand, out to the field to talk to, interview, and observe customers.</p>
<p>So instead of starting with, &#8220;OK, we have this technology, what are we going to do with it?&#8221; we went out and talked to customers to see what they really needed. And during that process, we started getting hunches about the need for different kinds of tools to help people review and view their design data, and so we started doing prototypes. </p>
<p>The prototypes were not technology prototypes. They were not coded, they were graphical visualizations of the way these applications might work, or the way certain features might work. And in that process we would share this with these users and get a ranking of what&#8217;s important.</p>
<p>It was really interesting because every time we would go out we would think we knew that, &#8220;The customers are really going to love this red pen feature that we&#8217;re just crazy about,&#8221; and we&#8217;d have to have them rank it, and guess what? The red pen thing, they didn&#8217;t really think it was that important. </p>
<p><b>Sean</b>: Out of their hundred dollars they spent zero on that feature.
<p><b>Doug</b>: &nbsp;Right, exactly. And that was on a consistent basis, so it really comes down to not necessarily what the designers of the project think, it really is what do the customers think, what do the users think of this thing? Because we had done early prototyping and got it out there early, we didn&#8217;t have code yet. One of the things that we identified very early on, which we almost didn&#8217;t even pursue because people were saying, &#8220;Oh, no one cares about that,&#8221; was the issue of roundtripping redline mark-ups.</p>
<p>This is the ability to present an AutoCAD drawing, publish it out, have someone basically do a mark‑up on it digitally, and then ‑ and this is the part that we learned ‑ then getting those mark-ups back into the original CAD file. That was huge!</p>
<p>Before we had gone out, and people were telling us, &#8220;Oh, nobody needs redlines, they don&#8217;t do redlines.&#8221; The key thing we learned is that it doesn&#8217;t work because it doesn&#8217;t round trip. So that was a really great example of how we just didn&#8217;t know, we had to go out there and learn by interviewing and observing and really finding out what people really thought. </p>
<p><b>Scott</b>: &nbsp;On the closed source side, it is pretty easy to sort of put together an inter‑disciplinary team. Microsoft will sometimes even throw in a cultural anthropologists, and things like that. How do you resolve issues, though, if you&#8217;ve got designers who have envisioned something that might be a great user interface experience, but the coders look at it and say, &#8220;You have no idea how impossible that&#8217;s going to be to implement.&#8221;
<p><b>Doug</b>: &nbsp;Well, we talked about having multi‑disciplinary teams. True multi‑disciplinary teams really involve the technologists as well. On these customer visits that I describe, we took care to do, we brought along coders and designers to come out into the field.</p>
<p>They just loved it, because then they were able to see firsthand the results of who they were coding for&#8211; the problems that were actually out in the field. We worked as a team, we really did. We had equal footing between the different disciplines, and I think that&#8217;s really important to have with all the constituencies represented. </p>
<p><b>Scott</b>: &nbsp;And I guess that probably fostered a certain amount of appreciation between the designers for how creative they could be, if it was going to be impossible to code, and the coders for, &#8220;OK, I can&#8217;t just say no to that,&#8221; because it really seemed to resonate with the client.
<p><b>Doug</b>: &nbsp;Exactly right; appreciation, experience, knowledge, when you go out and you solve these things as a team. We would have our heated discussions, certainly, but what you have there is a situation that people were really promoting their constituency. I would be the one to be the voice of the customer.</p>
<p>Someone else would say, &#8220;Well, we&#8217;ve got to do this on the technology side.&#8221; Someone else would say, &#8220;I want it to look and feel like this on the design side.&#8221; And I think when things get out of whack is when any one of those things gets out of control and leads the whole effort. </p>
<p><b>Scott</b>: &nbsp;And how those things get arbitrated? Was there somebody who was something like a senior product manager who would take all the input and make a decision at the end of the day?
<p><b>Doug</b>: &nbsp;The working relationship on the teams that I&#8217;ve been a part of has been very strong and with most things, it wasn&#8217;t that someone had to come in and arbitrate and say, &#8220;OK, we will do this.&#8221;</p>
<p>Most things we really did try to do as a consensus. It really wasn&#8217;t a vote. It just happened after in-depth discussion of the issues. That takes a certain level of maturity on the part of the participants who are willing to not just represent what they believe but also put themselves in the shoes of others, including the users and the people that are building it. </p>
<p><b>Sean</b>: &nbsp;Is there anything you want to add? We try to give everyone a chance to get in closing thoughts.
<p><b>Doug</b>: &nbsp;I just think that this is a really interesting discussion and it&#8217;s made me think a lot more about some of the questions that you&#8217;ve been asking. I mean, what is the role of design and how does design work with technology, and to me, it&#8217;s a higher level question and answer than even the open vs. closed source model. It&#8217;s ways of working and ways of thinking about things. Thanks for the discussion. I found it very interesting.
<p><b>Sean</b>: &nbsp;Thanks for chatting.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=110&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F&amp;title=Interview+with+Doug+Look+%26%238211%3B+Strategic+Designer+%26%238211%3B+Autodesk+Labs" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F&amp;title=Interview+with+Doug+Look+%26%238211%3B+Strategic+Designer+%26%238211%3B+Autodesk+Labs" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F&amp;title=Interview+with+Doug+Look+%26%238211%3B+Strategic+Designer+%26%238211%3B+Autodesk+Labs" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F&amp;title=Interview+with+Doug+Look+%26%238211%3B+Strategic+Designer+%26%238211%3B+Autodesk+Labs" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F" 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+Doug+Look+%26%238211%3B+Strategic+Designer+%26%238211%3B+Autodesk+Labs+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F23%2Finterview-with-doug-look-strategic-designer-autodesk-labs%2F" 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/2007/10/23/interview-with-doug-look-strategic-designer-autodesk-labs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>OSI Approves Microsoft Licenses</title>
		<link>http://howsoftwareisbuilt.com/2007/10/17/osi-approves-microsoft-licenses/</link>
		<comments>http://howsoftwareisbuilt.com/2007/10/17/osi-approves-microsoft-licenses/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 19:44:45 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[codeplex]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[OSI]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/10/17/osi-approves-microsoft-licenses/</guid>
		<description><![CDATA[The OSI has approved the two Microsoft software licenses, the Microsoft Reciprocal License, and the Microsoft Public License.&#160; This makes all the code on Microsoft&#8217;s CodePlex site (Microsoft&#8217;s equivalent of SourceForge) official open-source software, as much of it is licensed under the Microsoft Public License (formerly the Microsoft Permissive License).&#160; It also means that things [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://blog.russnelson.com/opensource/microsoft-licenses.html">OSI has approved</a> the two Microsoft software licenses, the <a href="http://opensource.org/licenses/ms-rl.html">Microsoft Reciprocal License</a>, and the <a href="http://opensource.org/licenses/ms-pl.html">Microsoft Public License</a>.&nbsp; This makes all the code on Microsoft&#8217;s CodePlex site (Microsoft&#8217;s equivalent of SourceForge) official open-source software, as much of it is licensed under the Microsoft Public License (formerly the Microsoft Permissive License).&nbsp; It also means that things like Microsoft&#8217;s Ajax Control Toolkit is open-source (with the inherent ability to fork, etc.)</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=109&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F&amp;title=OSI+Approves+Microsoft+Licenses" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F&amp;title=OSI+Approves+Microsoft+Licenses" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F&amp;title=OSI+Approves+Microsoft+Licenses" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F&amp;title=OSI+Approves+Microsoft+Licenses" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F" 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+OSI+Approves+Microsoft+Licenses+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F17%2Fosi-approves-microsoft-licenses%2F" 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/2007/10/17/osi-approves-microsoft-licenses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benevolent Dictators and Usability</title>
		<link>http://howsoftwareisbuilt.com/2007/10/13/benevolent-dictators-and-usability/</link>
		<comments>http://howsoftwareisbuilt.com/2007/10/13/benevolent-dictators-and-usability/#comments</comments>
		<pubDate>Sat, 13 Oct 2007 15:48:52 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Sean Campbell]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/10/13/benevolent-dictators-and-usability/</guid>
		<description><![CDATA[You would have to be living under a rock to not notice Apple&#8217;s ascendancy as of late. And one of the clear elements of their ascendancy is that they have a clear vision for usability and peak customer experiences. Notice I didn&#8217;t say &#8220;peak corporate experiences&#8221; but that is a topic for another post I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>You would have to be living under a rock to not notice Apple&#8217;s ascendancy as of late.  </p>
<p>And one of the clear elements of their ascendancy is that they have a clear vision for usability and peak customer experiences.  Notice I didn&#8217;t say &#8220;peak corporate experiences&#8221; but that is a topic for another post I&#8217;ve got planned&#8230; </p>
<p>Most people seem to point to this focus on peak customer experiences as being driven and shaped by one person &#8211; Steve Jobs.</p>
<p>So here is the question.</p>
<p>Do you need a Benevolent Dictator to create great out of the box experiences that extend for the lifetime of the product&#8217;s use by an end user?</p>
<p>And is this true for both OpenSource and Closed Source projects.</p>
<p>The folks at the humanized blog had a great <a href="http://humanized.com/weblog/2007/10/05/make_oss_humane/">post</a> up about this that motivated me in part to put up a post on our blog.</p>
<p>But in addition this is a question that has come up quite frequently in our interviews and is the highlight topic of an upcoming one soon to arrive on the blog.</p>
<p>So what are your thoughts?</p>
<p>I&#8217;ve got my own two cents on this which is that you do need one regardless of whether it&#8217;s an OpenSource project or Closed Source.</p>
<p>But I&#8217;m curious what other folks think as well&#8230;</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=108&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F&amp;title=Benevolent+Dictators+and+Usability" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F&amp;title=Benevolent+Dictators+and+Usability" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F&amp;title=Benevolent+Dictators+and+Usability" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F&amp;title=Benevolent+Dictators+and+Usability" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F" 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+Benevolent+Dictators+and+Usability+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F13%2Fbenevolent-dictators-and-usability%2F" 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/2007/10/13/benevolent-dictators-and-usability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Is Security Really That Hard to Measure?</title>
		<link>http://howsoftwareisbuilt.com/2007/10/12/is-security-really-that-hard-to-measure/</link>
		<comments>http://howsoftwareisbuilt.com/2007/10/12/is-security-really-that-hard-to-measure/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 00:00:58 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[security development lifecycle]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/10/12/is-security-really-that-hard-to-measure/</guid>
		<description><![CDATA[There&#8217;s a good article on LinuxWorld about the security debate between open-source and Windows. My first question is, does it need to be a debate? In this day and age, isn&#8217;t it easy enough to quantify vulnerabilities? If you are looking for subjective opinion, I recommend looking through the interviews we&#8217;ve done here. At the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a good article on LinuxWorld about the <a href="http://www.linuxworld.com.au/index.php/id;121116082;fp;4;fpid;3">security debate between open-source and Windows</a>.  My first question is, does it need to be a debate?  In this day and age, isn&#8217;t it easy enough to quantify vulnerabilities?</p>
<p>If you are looking for subjective opinion, I recommend looking through the interviews we&#8217;ve done here.  At the risk of sounding like a Microsoft fan-boy, the Microsoft interviews (in my opinion) demonstrate a company where secure coding is &#8220;in the water&#8221;.  Code goes through threat modeling, risky function calls have simply been banned, code goes through automated and human inspection, and vulnerabilities that do slip through feedback into the process to determine how to prevent them in the future.  </p>
<p>I simply don&#8217;t get the same feeling from the open-source people we&#8217;ve talked to.  When we&#8217;ve brought the subject up, the response is almost universally &#8220;many eyeballs,&#8221; and faith (without data) that &#8220;many eyeballs&#8221; is effective.</p>
<p>Am I completely off base?  Do things like the Linux kernel and Apache go through rigorous security reviews?  Is there proof that &#8220;many eyeballs&#8221; in open source is at least as good as something like the Security Development Lifecycle in Microsoft?  If you&#8217;re in a position to know, let&#8217;s chat!</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=106&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F&amp;title=Is+Security+Really+That+Hard+to+Measure%3F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F&amp;title=Is+Security+Really+That+Hard+to+Measure%3F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F&amp;title=Is+Security+Really+That+Hard+to+Measure%3F" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F&amp;title=Is+Security+Really+That+Hard+to+Measure%3F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F" 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+Is+Security+Really+That+Hard+to+Measure%3F+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F12%2Fis-security-really-that-hard-to-measure%2F" 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/2007/10/12/is-security-really-that-hard-to-measure/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Microsoft to Reveal Source for .NET Framework 3.5</title>
		<link>http://howsoftwareisbuilt.com/2007/10/04/microsoft-to-reveal-source-for-net-framework-35/</link>
		<comments>http://howsoftwareisbuilt.com/2007/10/04/microsoft-to-reveal-source-for-net-framework-35/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 19:47:35 +0000</pubDate>
		<dc:creator>scottswigart</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/10/04/microsoft-to-reveal-source-for-net-framework-35/</guid>
		<description><![CDATA[According to Scott Guthrie, Microsoft will make the source for the upcoming .NET Framework 3.5 available under the Microsoft Reference License. This isn&#8217;t an open-source license (i.e. you couldn&#8217;t fork the code), but it is still a &#8220;good thing&#8221; in that developers can learn from the source and have an improved debugging experience with the [...]]]></description>
			<content:encoded><![CDATA[<p>According to <a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">Scott Guthrie</a>, Microsoft will make the source for the upcoming .NET Framework 3.5 available under the <a href="http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx">Microsoft Reference License</a>.  This isn&#8217;t an open-source license (i.e. you couldn&#8217;t fork the code), but it is still a &#8220;good thing&#8221; in that developers can learn from the source and have an improved debugging experience with the ability to step-into the framework code.</p>
<p><strong>Update:</strong> It seems that this isn&#8217;t seen as happy news by all.  There&#8217;s an <a href="http://www.eweek.com/article2/0,1895,2191754,00.asp">article on eWeek</a> that&#8217;s just too irrational and frothing to pass up, claiming that this is all a ploy by Microsoft to kill Mono.  As Microsoft is officially supporting Novell&#8217;s efforts in porting Silverlight to Linux (on top of Mono), the <em>evidence</em> would indicate that Microsoft is doing this to support .NET developers, and not as some clever conspiracy to kill off Mono.</p>
<img src="http://howsoftwareisbuilt.com/?ak_action=api_record_view&id=103&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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F&amp;title=Microsoft+to+Reveal+Source+for+.NET+Framework+3.5" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F&amp;title=Microsoft+to+Reveal+Source+for+.NET+Framework+3.5" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F&amp;title=Microsoft+to+Reveal+Source+for+.NET+Framework+3.5" 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?url=http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F&amp;title=Microsoft+to+Reveal+Source+for+.NET+Framework+3.5" 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%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F" 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+Microsoft+to+Reveal+Source+for+.NET+Framework+3.5+@+http%3A%2F%2Fhowsoftwareisbuilt.com%2F2007%2F10%2F04%2Fmicrosoft-to-reveal-source-for-net-framework-35%2F" 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/2007/10/04/microsoft-to-reveal-source-for-net-framework-35/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interview with Bob Bray &#8211; Geospatial Architect &#8211; Autodesk</title>
		<link>http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/</link>
		<comments>http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 17:50:21 +0000</pubDate>
		<dc:creator>campsean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[autodesk]]></category>
		<category><![CDATA[bob bray]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/</guid>
		<description><![CDATA[Interviewers: Scott Swigart and Sean Campbell Interviewee: Robert Bray In this interview with Bob, Architect for Geospatial Products at Autodesk, we asked him about: Introduction of open source within Autodesk Role of project steering committees Decision to create an open source product Open source impact on closed source product Developer and engineer adjustments to open [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Interviewers:</strong> <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>
<p><strong>Interviewee:</strong><a href="http://howsoftwareisbuilt.com/about-bob-bray/"> Robert Bray<br />
</a> </p>
<p>In this interview with Bob, Architect for Geospatial Products at Autodesk, we asked him about:</p>
<ul>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#intro">Introduction of open source within Autodesk</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#psc">Role of project steering committees</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#transition">Decision to create an open source product</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#impact">Open source impact on closed source product</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#devs">Developer and engineer adjustments to open source process</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#design">Differences between feature design in open and closed source</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#docs">Test and documentation for Autodesk open source</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#contrib">Community contribution to open source projects</a></li>
<li><a href="http://howsoftwareisbuilt.com/2007/09/12/interview-with-bob-bray-geospatial-architect-autodesk/#biz">Business reasons for creating open source products</a></li>
</ul>
<p><span id="more-98"></span></p>
<p><strong>Sean:</strong>  Bob, why don’t you give us some background on your role with Autodesk.</p>
<p><strong>Robert:</strong>  I&#8217;ve been in software development working for independent software vendors for about 17 years now. My current title is Architect for Geospatial Products. So, I&#8217;ve gone through the various ranks, from being a programmer in the trenches, in the cubes, to managing a product development team, to my current role as architect.</p>
<p>So, as I said, I&#8217;ve been through various things, mainly in closed source. Until roughly 18 months ago when we open sourced MapGuide. I think it was about six months before that that we really started heavily investigating that idea and started to put the ball in motion to actually make that happen. Basically, I&#8217;ve been involved in an open source project very actively for the last 18 months, and I won&#8217;t say that I was the key  driver that made the decision that we were going to open source this, but I basically took it from that decision point and said, &#8220;OK, these are all the things we need to do&#8230;&#8221; and made that happen.</p>
<p>The product itself is MapGuide.The open source version is called MapGuide Open Source. The closed version is Autodesk MapGuide Enterprise. The codebases are the same. There&#8217;s one open source code stream for the whole product. There are a couple of minor functional differences between Enterprise and open source, but they are extremely minor, and we are trying to close as many of those as we can, actually. What we really have with the Enterprise version is basically a commercially tested and supported version. It&#8217;s much like the Red Hat model or the MySQL model, in that respect.</p>
<p><strong>Sean:</strong>  So, just out of curiosity then, if there are some functional differences, what led to those? I mean, they&#8217;re minor, like you said, but was some of that just by the nature of having to switch from closed source to open source? Is there some functionality that just couldn&#8217;t make it over that transform right away?</p>
<p><strong>Robert:</strong>  Basically, that is exactly it. We have a commercial desktop mapping product called AutoCAD Map 3D. We used some technology from that in the Enterprise version of MapGuide, and we do that for compatibility between the two products. So, those particular pieces, our coordinate system library, in particular, and our raster image handling library; those are things that we just could not open source at the time.</p>
<p><strong>Sean:</strong>So, when Autodesk made the switch, did you model against an existing open source project in terms of how you wanted to handle QA or how you wanted to establish a community feel? You look at different products, like Subversion &#8211; I&#8217;ve heard they had one vote in the entire history of the project, right?</p>
<p><strong>Robert:</strong>  [laughs]</p>
<p><strong>Sean:</strong>  Literally. I watched their presentation at OSCON, and at least that’s the public face of things &#8211; that they had one vote. Or, for example, we talked to PostgresSQL yesterday, and they said, &#8220;It&#8217;s a very communal democracy&#8221; in terms of their decision process. They don&#8217;t really have a hierarchy. I know it varies across the projects, so did you look at the open source community and say, &#8220;Well, now that we&#8217;re going to open source this, we&#8217;d like to mimic this particular project&#8221; at least in some aspect?</p>
<p><strong><a name="intro">Robert:</a></strong>  Absolutely. So, when we made this decision, one of the first things I did was take a broad look across all of the projects. I was mainly focused on looking at the geospatial projects, because, if you will, our kin in the community is all of the open source projects &#8211; things like MapServer, GDAL, PostGIS&#8230; All those open source projects are very close in nature to us, so I certainly did look at those.</p>
<p>I also read a couple of books. The one I liked best was Karl Fogel&#8217;s book, &#8220;Producing Free Open Source Software.&#8221; Of course, he led the Subversion effort, but if you read that book you wouldn&#8217;t know there was only one vote in Subversion.</p>
<p><strong>Sean:</strong>  [laughs]</p>
<p><strong>Robert:</strong>  [laughs]</p>
<p><strong>Sean:</strong>  I was a little surprised, too. But, these were two guys from Google, so technically they&#8217;re reinforcing each other in their viewpoint, at least. It&#8217;s not just one guy saying it. They&#8217;re committers on the project&#8230;</p>
<p><strong>Robert:</strong>  I&#8217;m shocked.</p>
<p><strong>Sean:</strong>  Yeah, yeah. I was a little bit, too. But that&#8217;s part of the fun part of this investigation is some of the stuff we hear, and then we get to cycle back and say, &#8220;Really? So tell us a little more about that.&#8221; </p>
<p><strong><a name="psc">Robert:</a></strong>  So, we definitely took the approach of forming a community, and the project, and I say not from day one, but within six months, became a community driven effort. MapGuide has always been a product that, it&#8217;s almost like there&#8217;s a religious following of users out there. Even when it was a commercial product, it had some real hardcore, dedicated users.</p>
<p>So a handful of those users said, &#8220;Wow! This is going to be great!&#8221; They knew nothing about open source at the time either, but they kind of all jumped on board right away, started testing the open source version, and started getting active in that.</p>
<p>So, when we formed the community, basically, because we were modeling after MapServer and some of the other open source projects on the geospatial side  and I really felt that was important  we basically created a project steering committee for the product out of that group of people. So that project steering committee, right now, consists of three people from Autodesk and four people from outside in the community.</p>
<p><strong>Sean:</strong>  Are those people then the chief committers on the project?</p>
<p><strong>Robert:</strong>  Actually, that&#8217;s an interesting thing, because I would say there are a couple of people there that are active committers; the rest of them are users.</p>
<p><strong>Sean:</strong>  Got you. Because the interesting thing to me about this is that, obviously, a lot of these projects have grown up over time. PostgresSQL has a 20 year history, and to become a committer on their project, they told us, &#8220;Well, we wait two to three years to figure out if we can make you a committer, because we&#8217;ve been around for 20 years.&#8221;</p>
<p>But, if you birth a project out of the ether how do you determine who&#8217;s going to be a committer? Because, obviously, there&#8217;s probably a stampede of people at the start that say, &#8220;I&#8217;d like to be a committer, I want to be involved at the highest levels,&#8221; that kind of thing. How do you go through that winnowing out process?</p>
<p><strong>Robert:</strong>  There&#8217;s a URL I can send you, (http://mapguide.osgeo.org/psc.html) but basically what I did was draft a set of rules for the project steering committee to follow that include who can be a committer and how they become a committer.</p>
<p>We basically go through a similar process to, I think, Postgres &#8211; although we probably wouldn&#8217;t be two years in the road doing it. Basically, people start submitting some code from the open source community. They submit it to a developer, we&#8217;ll have that developer review it, and then do the actual commit. It&#8217;s almost in a patch style, right? Then, once we&#8217;re comfortable with them, we&#8217;ll vote to make them a committer &#8211; it&#8217;s a project steering committee vote.</p>
<p><strong>Sean:</strong>  Got you.</p>
<p><strong>Robert:</strong>  So, it&#8217;s kind of interesting, because, again, the project steering committee is not the core developers; again, it&#8217;s a core set of mainly users.</p>
<p><strong><a name="transition">Sean:</a></strong>  Once you transitioned over and said, &#8220;I want to make this an open source product, &#8221; since you came mainly from a closed source background, what was the thing that most pleased you about being able to transition into an open source development model? What was the thing that you were, I guess, either most afraid of or most reluctant to see transition over? Because, obviously, the models are pretty different.</p>
<p><strong>Robert:</strong>  I think I was scared to death for quite a while&#8230;</p>
<p><strong>Sean:</strong>  [laughs]</p>
<p><strong>Robert:</strong>  …because it was completely unfamiliar territory to me. I&#8217;ll be honest, right? I&#8217;d never worked with an open source project before. I&#8217;ve used a few, but I&#8217;ve never really participated in an open source project. So, from my perspective, open source projects were these big free for all things, and I&#8217;m like, &#8220;Oh, my God. What are we getting into here?&#8221;</p>
<p>But, when I stepped back and actually looked at it, what I realized is that open source projects…yeah, they run a little differently than commercial projects, but they follow a fairly well-defined process; or at least the large projects do, that are successful. You can see a well established process there. It&#8217;s not a free for all, anybody can commit code, and a thing like that. So, that was my biggest fear going in; it was the step into the unknown, right?</p>
<p><strong><a name="lessons">Sean:</a></strong>  What do you think was the biggest lesson learned from that? Now that you&#8217;ve got a couple of years at it, what would be the thing you might&#8217;ve done a little bit differently, given an opportunity? It&#8217;s apparent you wouldn&#8217;t have changed any decision to go open source, and that rings through clear. But, is there anything you would&#8217;ve changed during the process of going in that direction?</p>
<p><strong>Robert:</strong>  If anything, I would&#8217;ve been more open with the community right from the get go. I think I had a lot of reservations going into it, and so I didn&#8217;t really communicate as much as I should&#8217;ve right up front about what we were doing, how we were going about it, and all of that. So, I think I would&#8217;ve been much more open around communication right from the get go.</p>
<p><strong>Sean:</strong>  OK…</p>
<p><strong>Robert:</strong>  That&#8217;s the biggest lesson I think I learned.</p>
<p><strong>Sean:</strong>  &#8230;then what was kind of the biggest positive that you got? I didn&#8217;t want to leave that off the table either.</p>
<p><strong>Robert:</strong>  The biggest positive is that from a community perspective we are getting a lot more up front review; a lot more users using features before they go into, say, the commercial version or whatever, right? We&#8217;re getting a lot more early feedback on things that we&#8217;re thinking about doing or the ways we&#8217;re thinking about implementing new features, lots of early feedback that has a very, I would say, positive influence on the end result of the code that we actually write.</p>
<p><strong><a name="impact">Sean:</a></strong>Well, I&#8217;m curious, too. That&#8217;s a functional change in the product, but have there been any change to the engineering process on the closed source side of the product? So, you guys open source it, that obviously rattles around and after a couple of years; I&#8217;m wondering if that has had any kind of change in the way you guys have developed internally, just having an open source mirror of the project, so to speak.</p>
<p><strong>Robert:</strong>  Well, it&#8217;s not an open source mirror. We only have one copy of the code, and that&#8217;s the public one. So, any change that we make to the code, whether it&#8217;s for the commercial release or for the open source release, typically gets vetted through the same process. We’ll go to request for comment. That&#8217;ll go out to the open source community, because it&#8217;s going into the open source version, one way or the other. So, we get early feedback on pretty much everything that goes in. </p>
<p>Of course some features that we may plan are for the enterprise version only, and those of course do not go through public review. Also we reserve the right to decide which features go into which enterprise release and we make no announcements about that because we are a public company right?</p>
<p><strong>Sean:</strong>  Right, right.</p>
<p><strong>Robert:</strong>  We don&#8217;t comment on that. We don&#8217;t do anything like that in the RFC process. But at the same time, the open source community certainly gets to vet all this stuff early. So, any code changes, and basically the whole product&#8217;s development process, are morphed into more of an open source development process for both the commercial and open source releases, because, again, we only have one copy of the code and we have one development process.The entire engineering team has basically transitioned to an open process, which is quite interesting.</p>
<p><strong><a name="devs">Sean:</a></strong>  Taking it down one level, as we talked to people sometimes as they&#8217;ve gone through this change, and the engineering team has a variety of differing reactions to it…various resistance points, or to put it maybe slightly more diplomatically, just things they have to learn as they go through the process. So, anything that would be worth talking about there in terms of lessons learned by the engineering team as they walked through this?</p>
<p><strong>Robert:</strong>  Yeah, I think there were a lot of lessons learned. Immediately it comes back around to being open about the kind of change we want to make and how you actually communicate with an open source community, because communication within the internal engineering team is quite different in my experience than communication with an open source community.</p>
<p><strong>Sean:</strong>  Now all of a sudden it&#8217;s a much more communal feel and development managers all of the sudden, I assume, had to make the switch from assuming everybody was on the payroll; there had to be a little bit more negotiation that affected the process of getting something developed, vetted, built, etc.</p>
<p><strong>Robert:</strong>  That&#8217;s definitely part of it. But also for our internal developers, I mean, they&#8217;re used to this kind of hierarchy of being able to walk down the hall and talk to somebody else. They&#8217;re used to being able to call a meeting and go in and start scribbling some stuff on a whiteboard.</p>
<p>With an open source development community that doesn&#8217;t really work anymore. You need to use the mailing lists a lot more. You need to use things like IRC for communications. So, it was really a complete change in the way you communicate.</p>
<p><strong>Scott:</strong>  So, that&#8217;s one of the things that I wanted to drill into because you&#8217;re obviously steeped in closed source development methodology. You&#8217;ve been in open source long enough to where you&#8217;re now immersed in that.<br />
What do you see as the differences, kind of taking them side-by-side when you think about the aspects of the SDL, right? …how’re ideas envisioned, how they&#8217;re kind of tasked for somebody to code them, how they&#8217;re put through QA, how a product is released&#8230; If you don&#8217;t mind, I wouldn&#8217;t mind just kind of walking through how each of those is sort of fundamentally different in a closed source versus open source project.</p>
<p><strong>Robert:</strong>  Sure.</p>
<p><strong><a name="design">Scott:</a></strong>  So, I guess starting with analysis and design and that sort of thing, how do you see analysis and design and requirements differing in open and closed source?</p>
<p><strong>Robert:</strong>  Sure. The requirements from a closed source perspective, I mean, we have project managers who basically go out and talk to our users. They&#8217;ll do focus groups. They&#8217;ll do surveys; all kinds of things like that just to basically pin down to a set of requirements for release of commercial software.</p>
<p>For open source software, you have a community of users who propose some ideas or a developer who proposes an idea. It gets kicked around on a mailing list for awhile. Eventually somebody either just picks it up and implements it, or the other option is they just walk in with something they&#8217;ve already written and say, &#8220;Hey, how about this? Isn&#8217;t this great?&#8221; So, the difference is really to me that it&#8217;s a little bit more organic, if you will, in the open source community. Whereas analysis and requirements and product definition is a much more rigid process in the closed source world, in the open source world it kind of happens organically.</p>
<p><strong>Scott:</strong>  So, where do you see those potentially? I&#8217;m guessing that both sides have their advantages. What do you see as the advantages of focus groups, meeting with customers, and project planning and what do you see as being the advantages of kind of more of the organic method of sort of showing up with a feature and saying, &#8220;What about this?&#8221;</p>
<p><strong>Robert:</strong>  If you show up with a feature and it&#8217;s already got a prototype or an implementation done &#8211; it&#8217;s a lot easier to talk about because you can actually see it and you can play with it. Whereas in the closed source side, you&#8217;re talking more in the abstract, if you will. So, the advantage in the open source side is really that you typically get a lot more users providing some feedback on it, at least if they&#8217;re really interested. Eventually you get to experience it before it actually goes in, which are both useful things.</p>
<p>On the closed source side, I mean, the advantage is that the release potentially comes out with a set of features that are much more…I won&#8217;t say well-defined because I think that&#8217;s the wrong term, but a release will typically come out that is much more cohesive as a whole. Instead of having a bunch of new things sprinkl
