<?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>Sami Dalouche &#187; Software Development best practices</title>
	<atom:link href="http://www.dalouche.com/wordpress/category/software-development-best-practices/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dalouche.com/wordpress</link>
	<description>Sami Dalouche's blog about Linux, Java, .NET and other bleeding-edge stuff. skoobi@free.fr</description>
	<lastBuildDate>Fri, 20 Jan 2012 12:30:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>maximum number of developers on a project ?</title>
		<link>http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 03:40:21 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Software Development best practices]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=152</guid>
		<description><![CDATA[What is the maximum number of developers you can ever imagine working _efficiently_ on a project ? 5 ? 7 ? 10 ? 20 ?
Who wrote 2.6.33 reminds us how much the open source world (and in particular the linux kernel community) excels in this area. For the single 2.6.33 release that was developed in [...]]]></description>
			<content:encoded><![CDATA[<p>What is the maximum number of developers you can ever imagine working <em>_efficiently_</em> on a project ? 5 ? 7 ? 10 ? 20 ?</p>
<p><a href="http://lwn.net/Articles/373405/">Who wrote 2.6.33</a> reminds us how much the open source world (and in particular the linux kernel community) excels in this area. For the single 2.6.33 release that was developed in about 3 months :</p>
<blockquote><p>&#8220;As of this writing, <strong>10,500</strong> non-merge <strong>commits</strong> have found their way into 2.6.33 &#8211; <strong>fairly normal by recent standards</strong>.  These changes <strong>added</strong> almost <strong>900,000 lines</strong> while deleting almost 520,000 others; as a result, the kernel grew by a mere 380,000 lines this time around.&#8221;</p></blockquote>
<p>So, if you happen to struggle to scale your team past the 10-people mark using your usual development habits, then there are <strong>maybe</strong> a <strong>few things</strong> you could learn from the open source world.</p>
<p>My personal understanding of why it works so well :</p>
<ul>
<li><span style="text-decoration: line-through;">good</span> elite developers</li>
<li>top-notch, distributed, <a href="http://whygitisbetterthanx.com/">super-fast and merge-friendly version control tools</a> (e.g. git)</li>
<li>Fault-proof and <strong>compromise-free</strong> (though sometimes not politically-correct) ways of enforcing software quality and architecture. Examples showing the disagreement-proof nature of the kernel development process include last summer&#8217;s <a href="http://www.h-online.com/open/news/item/Dispute-between-Linux-gurus-Alan-Cox-and-Linus-Torvalds-742717.html">Alan Cox vs Linus Torvalds dispute</a> regarding the tty subsystem, or <a href="http://lkml.org/lkml/2006/7/28/180">Linus Torvalds vs Hans Reiser argument regarding Reiser4</a>&#8217;s plugin system that does not fit well into linux architecture</li>
<li><a href="http://ericbrown.com/linus-torvalds-on-managing-projects.htm">result-oriented</a> and <a href="http://blog.crossoverhealth.com/2006/12/06/part-2-open-source-values-meritocracy-transparency-and-legitimacy/">meritocracy-driven</a> way of managing the project</li>
<li><a href="http://lwn.net/Articles/246313/">decentralized development</a> (made possible thanks to distributed SCM tools). To quote Linus Torvalds : &#8220;<em>Centralized _works_. It&#8217;s just *inferior*.</em>&#8220;</li>
<li><a href="http://docs.huihoo.com/linux/kernel/a1/index.html">modular architecture</a> supporting the collaboration of many developers.  <em>&#8220;The large number of developers and the fact that they are volunteers has an impact on how the system should be architected. With such a large number of geographically dispersed developers, a tightly coupled system would be quite difficult to develop &#8212; developers would be constantly treading on each others code.</em><em>&#8220;</em></li>
</ul>
<p>You might disagree on the reasons why it works so well (after all, that&#8217;s just my analysis based on my understanding of the situation), but the success is a reality, a fact.</p>
<p>Also, if you are tempted to think that it could not work in the corporate world, please think about that twice by taking another look at <a href="http://lwn.net/Articles/373405/">who wrote 2.6.33</a>, where contributing companies are listed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A good example of why code quality will never be objectively measurable</title>
		<link>http://www.dalouche.com/wordpress/2009/09/13/a-good-example-of-why-code-quality-will-never-be-objectively-measurable/</link>
		<comments>http://www.dalouche.com/wordpress/2009/09/13/a-good-example-of-why-code-quality-will-never-be-objectively-measurable/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 20:24:53 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Software Development best practices]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/2009/09/13/a-good-example-of-why-code-quality-will-never-be-objectively-measurable/</guid>
		<description><![CDATA[I like this refactoring example a lot. As pointed out, trimming down functions to do &#8220;only one&#8221; thing is a widely known best practice, but one man’s “one thing” might be someone else’s “two things”.
So&#8230; come on with your metrics, guys! they&#8217;re probably never going to match the &#8220;WTF/min&#8221; metric of a human-being senior developer.
]]></description>
			<content:encoded><![CDATA[<p>I like this <a href="http://blog.objectmentor.com/articles/2009/09/11/one-thing-extract-till-you-drop">refactoring example</a> a lot. As pointed out, trimming down functions to do &#8220;only one&#8221; thing is a widely known best practice, but one man’s “one thing” might be someone else’s “two things”.</p>
<p>So&#8230; come on with your metrics, guys! they&#8217;re probably never going to match the &#8220;WTF/min&#8221; metric of a human-being senior developer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2009/09/13/a-good-example-of-why-code-quality-will-never-be-objectively-measurable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

