<?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/"
	>

<channel>
	<title>Professional PHP &#187; Open Source</title>
	<atom:link href="http://www.procata.com/blog/archives/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.procata.com/blog</link>
	<description>PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.</description>
	<lastBuildDate>Tue, 20 Oct 2009 00:57:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Managing Open Source Projects</title>
		<link>http://www.procata.com/blog/archives/2007/02/22/managing-open-source-projects/</link>
		<comments>http://www.procata.com/blog/archives/2007/02/22/managing-open-source-projects/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 00:50:32 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[project-management]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2007/02/22/managing-open-source-projects/</guid>
		<description><![CDATA[I ran across How Open Source Projects Survive Poisonous People (video) and Producing Open Source Software (book).  Anyone know of any other interesting open source project management resources?
]]></description>
			<content:encoded><![CDATA[<p>I ran across <a href="http://video.google.com/videoplay?docid=-4216011961522818645">How Open Source Projects Survive Poisonous People</a> (video) and <a href="http://producingoss.com/">Producing Open Source Software</a> (book).  Anyone know of any other interesting open source project management resources?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2007/02/22/managing-open-source-projects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Communicating a Vision with Open Source</title>
		<link>http://www.procata.com/blog/archives/2005/11/06/communicating-a-vision-with-open-source/</link>
		<comments>http://www.procata.com/blog/archives/2005/11/06/communicating-a-vision-with-open-source/#comments</comments>
		<pubDate>Mon, 07 Nov 2005 05:39:54 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[project-management]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/?p=144</guid>
		<description><![CDATA[Jon Udell and John Montgomery are taking a private conversation about open source public:

I&#8217;ll continue one argument I was having with Jon in the open, just to see what happens. The premise: Open collaboration can relentlessly commoditize things that require a lot of work &#8212; like deep integration &#8212; just because it can mobilize the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://weblog.infoworld.com/udell/2005/10/12.html#a1320">Jon Udell</a> and <a href="http://blogs.msdn.com/johnmont/archive/2005/10/07/478289.aspx">John Montgomery</a> are taking a private conversation about open source public:</p>
<blockquote><p>
I&#8217;ll continue one argument I was having with Jon in the open, just to see what happens. The premise: Open collaboration can relentlessly commoditize things that require a lot of work &#8212; like deep integration &#8212; just because it can mobilize the resources.</p>
<p>My response: In my experience, that hasn&#8217;t been the case. In fact, the &#8220;open collaboration&#8221; model tends to leave things at the &#8220;good enough&#8221; point too often. Look at most open source software efforts: very few large-scale projects get beyond looking like bunches of different applications created by different people. Nearly none actually demonstrate things like common user experience paradigms, consistent APIs, or uniform management.
</p></blockquote>
<p>John goes on to describe four types of open source projects:</p>
<ul>
<li>Cloners &#8211; so many of these.</li>
<li>Standards built &#8211; such as apache or mozilla.</li>
<li>Competitive Devaluation &#8211; closed source projects that become open source to gather a larger audience.</li>
<li>Invention &#8211; &#8220;Not quite like anything that came before.&#8221;</li>
</ul>
<p>I think its worth noting that of these four kinds of projects, the top three share the characteristic of having well defined requirements.  These are the projects where parallel collaborative development can excel.</p>
<p>The fourth kind of project, Invention, is a different beast entirely.  I&#8217;ll argue that the open source projects in this category that end up actually succeeding are the ones run by a single benevolent dictator, or a small tight team.  Thats because large groups are not good at setting cohesive goals.  (ever watch CSPAN?)  A strong goal and  a strong vision, more than any other factor, determines the success of a software project.</p>
<p>Again and again I see various forums, mailing lists and news groups spawn open source projects, but if they don&#8217;t fit into the clone this or implement this standard variety, they usually die away.  Thats because they lack a clear vision and a participants lack a willingness to commit resources to achieve that vision.</p>
<p>Communicating a vision such that people are willing to invest resources in realizing that vision is hard.  The coin of the realm in open source is, of course, source code.  The best communicator of a vision is code that solves a problem or provides value.  Without that seed of working, valuable code, most open source projects never move beyond their creator.</p>
<p>Innovative open source projects face the same problem that a small business faces trying to get a a loan from the bank.  The more you need the money, the less likely the bank is to give it to you.  Similarly, potential contributers to an innovative open source project need to see that the goal of the project offers them value and that the project already has enough resources committed to potentially achieve that goal.  Only then are they willing to commit their own resources to the stone soup.</p>
<p>Given the difficulty of communicating a common vision, I think its no surprise that &#8220;common user experience paradigms, consistent APIs, or uniform management&#8221; are not necessarily natural strong points of open source software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/11/06/communicating-a-vision-with-open-source/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Code Coverage, Feedback and Open Source</title>
		<link>http://www.procata.com/blog/archives/2005/10/04/code-coverage-and-feedback/</link>
		<comments>http://www.procata.com/blog/archives/2005/10/04/code-coverage-and-feedback/#comments</comments>
		<pubDate>Tue, 04 Oct 2005 15:46:28 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Agile Methods]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Design]]></category>
		<category><![CDATA[agile-php]]></category>
		<category><![CDATA[code-coverage]]></category>
		<category><![CDATA[extreme-programming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[project-management]]></category>
		<category><![CDATA[test-driven-development]]></category>
		<category><![CDATA[unit-testing]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2005/08/04/code-coverage-and-feedback/</guid>
		<description><![CDATA[I&#8217;ve long wondered about the quality and extent of the PHP test suite.  During my posting hiatus, John Coggeshall addressed my question by posting a coverage report generated by running the test suite.  Unless I am mistaken, he also implies that the report will at some point become automated and available at http://cov.php.net/. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long wondered about the quality and extent of the PHP test suite.  During my posting hiatus, <a href="http://blog.coggeshall.org/archives/204_Code_Coverage_Support_for_PHP_5.html">John Coggeshall addressed my question</a> by posting a <a href="http://www.coggeshall.org/cov/">coverage report</a> generated by running the test suite.  Unless I am mistaken, he also implies that the report will at some point become automated and available at <a href="http://cov.php.net/">http://cov.php.net/</a>.  I see the availability of this report as a big step forward for PHPs future stability and maturity.</p>
<p>Agile software development methods including <a href="http://en.wikipedia.org/wiki/Extreme_Programming">extreme programming</a> (XP) have been growing in popularity and maturity alongside an increase in the popularity of open source projects.  One of the fundamental principles of XP is early and often feedback.  The value of feedback is obvious to anyone who has used a strange shower.  The shorter the time between turning the knob and feeling the temperature change, the faster you can arrive at the perfect temperature.  Nobody likes flailing between too hot and too cold in a lazy shower.  In the same way, immediate feedback on a development project can avoid wasted effort and produce a better result faster.</p>
<p>In XP and other Agile programming methods, an automated test suite provides important early and often feedback.  It is far better to catch a bug in the test suite than for the customer to find it.  But, how do you know if your tests are testing all of the features of your program?</p>
<p>The XP practice of <a href="http://en.wikipedia.org/wiki/Test_driven_development">test driven development</a> (TDD) demands that you only add features for which you have a failing test case.  Therefore, you write the test first, and then write the code to satisfy it.  For a theoretical perspective, this should give your code 100% code coverage.  Every line of code should be covered by a test.  Unfortunately, developers are human and any technique that relies of the perfection of people is doomed to fail. Unfortunately, the converse of the TDD coverage assertion is simply not helpful:  If you don&#8217;t have 100% test coverage, you aren&#8217;t correctly doing TDD.  If you are not doing TDD, how do you gauge the quality of your test suite?</p>
<p>Open source projects present a special challenge for the concept of TDD.  No project wants to reject useful contributions, yet many contributors may not write tests for their contributions.  Even if tests are required, there is no way to tell if they were written first, as in TDD, or after the fact.  XP would have the code author writing the unit tests.  In an open source project, this might not be possible or likely, although still desirable.</p>
<p>While certainly not perfect, code coverage tools do provide an indicator of how well tested a section of code is.  Code coverage reports are a feedback loop to help test writers find weak areas and to better target tests to specific lines of code. Just picking a file at random from PHP reveals low-hanging testing fruit: <a href="http://www.coggeshall.org/cov/Zend/zend_operators.c.gcov.html">zend_operators.c</a>.</p>
<p>I feel that a coverage report can be an important tool in an open source project.  More so than in other kinds of projects.  Test writing based on a coverage report inherently lends itself to the distributed nature of open source development.  Many people have a stake in the stability, robustness and reputation of PHP.  Tests are <a href="http://qa.php.net/write-test.php">easy enough to write</a>, easier perhaps than many other ways to contribute.  Hopefully easily available coverage reporting would help coordinate testing activities and draw people in that might not otherwise participate.</p>
<p>Ideally, contributions would be accompanied by test code contributed by the same author.  I also don&#8217;t think it is out of line to look at untested contributions with increased skepticism.  Coverage reports can help identify contributions that might cause future problems.  One can hope the existence of coverage reports might inspire contributors to include better tests by exposing their code as untested.  My (unverified) theory and hope is that the feedback of coverage reports can help inspire a culture of testing on an open source project.</p>
<p>While there are areas (such as GUI apps) where unit testing is difficult at best (thread safety may be another), PHP overall is very testable.  The stability and reputation of PHP can only be improved by increasing the coverage of its unit tests.</p>
<p>I am looking forward to seeing the availability of an automated <a href="http://cov.php.net/">http://cov.php.net/</a>, if indeed that is planned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2005/10/04/code-coverage-and-feedback/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
