<?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>Adam Frisby &#187; project management</title>
	<atom:link href="http://www.adamfrisby.com/blog/tag/project-management/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adamfrisby.com/blog</link>
	<description>ZOMGWTFHAI</description>
	<lastBuildDate>Sat, 26 Dec 2009 07:02:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Finite Manpower Problem: Or why we suprisingly cannot do everything at once</title>
		<link>http://www.adamfrisby.com/blog/2008/09/the-finite-manpower-problem-or-why-we-suprisingly-cannot-do-everything-at-once/</link>
		<comments>http://www.adamfrisby.com/blog/2008/09/the-finite-manpower-problem-or-why-we-suprisingly-cannot-do-everything-at-once/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 05:25:51 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=68</guid>
		<description><![CDATA[I&#8217;ve been afflicted by this very problem myself lately, which is why this post has been sitting in my head (along with a slight hangover) for the last few days.
It should go without saying that a single developer can only achieve X number of features/fixes/improvements in Y time (and not every value of X is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been afflicted by this very problem myself lately, which is why this post has been sitting in my head (along with a slight hangover) for the last few days.</p>
<p>It should go without saying that a single developer can only achieve X number of features/fixes/improvements in Y time (and not every value of X is equal), but the moment you substitute &#8220;X&#8221; with specific feature names, it suddenly becomes urgent priority for everyone to stop work on it and get that done, <em>to hell with everything else &#8211; although we want that too &#8230; <strong>and a pony</strong>.</em></p>
<h3>The facts of life</h3>
<p>The reality is &#8211; we&#8217;ve got a finite number amount of time, a finite number of developers, and a not-quite-so-finite list of features and improvements we have to spend time on, this means we prioritise stuff. We say &#8220;We think stability is a prerequisite before you go about implementing an <a href="http://secondlife.reuters.com/stories/2008/09/06/virtual-currency-not-on-the-opensim-agenda/">example micropayments system</a>.&#8221; &#8211; and with good cause, if the system didnt have that prerequisite stability, why the hell would you trust it to handle important or sensitive information?</p>
<p>This is not to say some of us havnt devoted time to thinking about it, it&#8217;s just that we each have our own ideas about what we think is important, and unless you are actively assisting in some capacity (<em>food, booze, code, testing, etc</em>), your personal wish list probably isn&#8217;t going to get any attention.</p>
<p>It&#8217;s harsh &#8211; but there it is. At the end of the day, each developer has a finite amount of time to work on projects, and when they are working on things &#8211; there is a strong chance that a specific goal is in mind and needed. If you want to change that goal, you either must have a convincing reason that that person is interested in and agrees with, or you need to provide an incentive to compensate for time that would otherwise be spent elsewhere. It&#8217;s also quite possible to just get in there, and do it yourself then submit those changes back.</p>
<h3>Backseat Driving</h3>
<p>There&#8217;s a lot of developers working on the OpenSim project &#8211; and each of them has their own ideas, goals and projects. Some of them are working on commercial projects that rely on OpenSim &#8211; and hence have some very specific feature and stability requirements that they work on. Others have more free reign by virtue of doing this in their spare time. There is a common misconception that the OpenSim team has an agenda &#8211; there&#8217;s somewhere around 200 developers on the project which means there&#8217;s 200 sets of agenda&#8217;s.</p>
<p>Right now, my personal agenda (which by proxy does carry a little across to what the DeepThink developers are working on) looks something like this:</p>
<ul>
<li>Abstract login and client initialisation to a more generalised interface to allow third party login and authentication routines to be fitted more easily as loadable DLLs.</li>
<li>Find where we have remaining hard-coded references to LLClientView bits and bobs, and recode them in a more vendor neutral manner.</li>
<li>Have a look at some of the terrain control issues reported on the mailing list recently.</li>
</ul>
<p>It&#8217;s a pretty short list &#8211; this list gets revised, updated and changed pretty regularly based on what I need to do at the very moment, it&#8217;s the same for a lot of the other central developers &#8211; they are built on a task-by-task basis.</p>
<p>So &#8211; if you have a feature you really want to see happen, that you really think is important we tackle and address, your options include:</p>
<ul>
<li>Do it yourself &#8211; the code is there and we dont bite when it comes to new contributions. (Just as long as the code matches our other guidelines about quality, modularity, etc.)</li>
<li>Convince someone to do it for you &#8211; this it the hardest of the options since we&#8217;re already very busy as a group, but it&#8217;s certainly possible. Make a convincing argument &#8211; it helps if you can research it and break it down into specific tasks. (&#8221;Improve stability&#8221; is not a task &#8211; &#8220;Fix crashes when/while XYZ happens&#8221; is.)</li>
<li>Hire someone to do it for you &#8211; it&#8217;s an option on the table too. There&#8217;s a lot of developers familiar with the codebase now, lots of them are looking for beer money and can implement your pet project or ideas for a fee.</li>
</ul>
<p>So in conclusion &#8211; if you have something you really think is important, really want to see &#8211; think it through, ask yourself &#8220;Is this more important than what people are working on already&#8221;, &#8220;Is this something that OpenSim is ready to support&#8221;, &#8220;Is this important enough that I am willing to work to see it done?&#8221;, and finally &#8220;If no-one thinks it&#8217;s that important, ready or &lt;insert reason here&gt;, am I willing to pay to see it happen?&#8221;. Because at the end of the day, features take time, and time is a non-renewable resource &#8211; people like to see it invested wisely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2008/09/the-finite-manpower-problem-or-why-we-suprisingly-cannot-do-everything-at-once/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
