<?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>22 idea street &#187; Development</title>
	<atom:link href="http://22ideastreet.com/blog/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://22ideastreet.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 13:00:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Software as a Sitcom</title>
		<link>http://22ideastreet.com/blog/2009/01/16/software-as-a-sitcom/</link>
		<comments>http://22ideastreet.com/blog/2009/01/16/software-as-a-sitcom/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 15:00:53 +0000</pubDate>
		<dc:creator>Anthony Panozzo</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Kaizen]]></category>
		<category><![CDATA[Sitcom]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://22ideastreet.com/blog/?p=168</guid>
		<description><![CDATA[Software development analogies are sometimes fun and potentially revealing. With that being said, I wanted to throw out a small nugget I thought of. Growing up, I watched a fair amount of sitcoms until I realized the basic plot device. Essentially, something happens where a character on the show makes a choice, is worried about [...]<p><br/><br/>Original article:  <a href="http://22ideastreet.com/blog/2009/01/16/software-as-a-sitcom/">Software as a Sitcom</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Software development analogies are sometimes fun and potentially revealing.  With that being said, I wanted to throw out a small nugget I thought of.</p>
<p>Growing up, I watched a fair amount of sitcoms until I realized the basic plot device.  Essentially, something happens where a character on the show makes a choice, is worried about the ramifications of that choice, and is then somehow deceptive.  They keep having larger and larger miscommunications and problems as the show goes on, and more problems (and hence hilarity), ensue due to keeping the problems under wraps.  Eventually the characters realize the mistake, and the show ends with everyone having learned a valuable lesson.</p>
<p>* Note:  I am not affiliated with any of the sitcoms mentioned below, nor do they support me financially.  <img src='http://22ideastreet.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Full House</h4>
<p>At some point, I got pissed because I just thought &#8220;Why doesn&#8217;t Stephanie just tell Danny Tanner that she wrecked the car instead of trying to hide it for like two more days?  I&#8217;m pretty sure Danny&#8217;s going to flip out and kick Comet and ground you, but at least you get it out in the open.  There&#8217;s definitely nothing to be gained from hiding it.  Why would any rational person do this?&#8221;</p>
<p>Anyway, this process happens all the time on sitcoms.  But the question that I thought of was:  does it happen on software projects?</p>
<p>I suppose that part of this is a human tendency to attempt to delay pain whenever possible.  You take a known undesirable and put it out into the future where it may or may not happen.  Seems like a good thing, right?  Maybe I can fix up the car with my piggy bank and Uncle Jessie&#8217;s spare tools, or maybe dad won&#8217;t notice the car being missing.  Maybe I won&#8217;t be working on the project anymore.  Maybe we can add a couple of people, that seemed to work for another project that was having similar problems.  And maybe we can make it up.  Maybe we can pull a few late nights or work some Saturdays to get this project back on track, or maybe we can just cut some corners here and there and fix them later when we have more time.</p>
<p>Unfortunately, by delaying communication, you lose a chance to align expectations early.  There is a mental shift cost incurred when a stakeholder doesn&#8217;t quite know what is going on.  The earlier that you can provide this information, the more time the person involved gets to stew on the information and try to come up with alternate satisfactory solutions or at least understand what is going on.  In this sense, having transparency is key.  No one likes to come to the end of a project that they thought was going well but see that things have gone amiss.</p>
<p>Unfortunately, in the real software world, hilarity rarely ensues from not communicating the true status of a project.  More often money is lost and quality suffers due to a compressed schedule based on unrealistic expectations.  People don&#8217;t get grounded, they get &#8220;let go&#8221;.</p>
<h4>Home Improvement</h4>
<p>Tim &#8220;The Toolman&#8221; Taylor always took a break around the twenty-minute mark of the show Home Improvement to talk to his neighbor Wilson across the fence about the problems he was facing during that episode.  Tim would explain the situation, and Wilson would give him some sage advice that made a lot of sense to Tim.  Tim would go back into the house armed with his somewhat rudimentary version of the wisdom that Wilson imparted, and things would get patched up.</p>
<p>It seems like Tim would have benefited from doing retrospectives before the twenty-minute mark (or, as sometimes happens in the software world, after the show, or maybe in the break room.)  Maybe looking at the process and decisions made at five minute intervals throughout the episode would have helped to get at the root of the problem before it got worse.  By the time that he got to the twenty minute mark, there was like one commercial break and five minutes of show left to resolve the underlying problems that were plaguing his family.  They could have taken a kaizen approach to their family relations to lessen the chances that 2/3 of the way through the show the communication process was producing unsatisfactory results.  I wonder how Tim&#8217;s experience with power tools and the search for ever more powerful tools mirrors some developers&#8217; tendencies.</p>
<p>What this post hopefully stresses is communication of project status and expectations and evaluation of the development process.  Do you have a sitcom example of your own?</p>
<p><br/><br/>Original article:  <a href="http://22ideastreet.com/blog/2009/01/16/software-as-a-sitcom/">Software as a Sitcom</a></p>
]]></content:encoded>
			<wfw:commentRss>http://22ideastreet.com/blog/2009/01/16/software-as-a-sitcom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Source Tech Writer</title>
		<link>http://22ideastreet.com/blog/2009/01/13/open-source-tech-writer/</link>
		<comments>http://22ideastreet.com/blog/2009/01/13/open-source-tech-writer/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 01:30:19 +0000</pubDate>
		<dc:creator>Anthony Panozzo</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Value]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://22ideastreet.com/blog/?p=427</guid>
		<description><![CDATA[A majority of open source projects have a paucity of documentation. However, they still have value as a working system. I argue that improving the documentation of a codebase intended for general use is one of the highest value activities that a developer can do. Although documentation may not be directly contributing to the codebase, [...]<p><br/><br/>Original article:  <a href="http://22ideastreet.com/blog/2009/01/13/open-source-tech-writer/">Open Source Tech Writer</a></p>
]]></description>
			<content:encoded><![CDATA[<p>A majority of open source projects have a paucity of documentation.  However, they still have value as a working system.  I argue that improving the documentation of a codebase intended for general use is one of the highest value activities that a developer can do.  Although documentation may not be directly contributing to the codebase, the writer provides a valuable service by understanding the code and imparting that knowledge to others.  </p>
<p>I would go so far as to say that there should be open source technical writers.  They look for interesting projects to write basic documentation for.  While there are a smattering of tutorials for certain frameworks, they are not condensed, are not authoritative, and are often misleading because of changes to the framework or convoluted examples.  When the core developers move at the speed of the forum or even IRC, it&#8217;s tough for a new person to have anywhere near that amount of knowledge.  A centralized wiki with pertinent and up-to-date examples is quite useful.</p>
<p>If you are not yet a badass developer, this kind of project aids you in three ways.  First, you gain experience looking at unfamiliar code bases and reasoning about them.  This is especially helpful if you maintain code, and also assists you in writing more maintainable code.  Second, you get some street cred for being closely involved with the developers on the project and working with them.  You&#8217;re likely to learn something from the alpha geeks and advance your skills.  Third, your writing skills improve, which helps you out in many areas over the long run.</p>
<p>In a nutshell, the kind of people who are building their own system or framework are generally not obsessed with documenting for average people.  This could be due to time constraints or general personality traits.  But the value that they create is wasted if people are not comfortable interacting with it.</p>
<h4>Clojure</h4>
<p>There is an interesting thread on the Clojure discussion group about <a href="http://groups.google.com/group/clojure/browse_thread/thread/48aacb9892a79bc4">making examples readable</a> and general ways to help developers who are new to the language and want to code idiomatically.  One post mentioned <a href="http://clojure.org/concurrent_programming">the Clojure page on concurrency</a>.  If you can read through the example code there and want to tackle concurrency (which is supposed to be a <i>strength</i> of Clojure), then I applaud you.  This isn&#8217;t a knock against Clojure, it&#8217;s just so new that most everyone who&#8217;s interested has been playing around with it and trying to understand it better.</p>
<p>One of the most important points in the post is that to get a community rallied around a language or framework, it&#8217;s necessary to have good documentation so people aren&#8217;t put off by it.  The Clojure folks are getting there, as there are a couple of wikis around that people dump stuff into.</p>
<h4>qooxdoo</h4>
<p><a href="http://qooxdoo.org/documentation">The qooxdoo framework</a> illustrates one of my favorite examples of excellent open source documentation.  When I first started looking at it, I was impressed by the amount of examples, pictures, screenshots that were included.  The manual is rife with examples and code snippets.</p>
<p>They have a huge demo area that shows how simple effects can be created using at it.  Looking at these demos, I started visualizing about how exciting it would be to work with this framework.  As another great demo, it has an API documentation viewer, which <i>itself</i> is written with qooxdoo.  It must have taken time to generate all of this&#8230;</p>
<h4>Parting thoughts</h4>
<p>On the other hand, one could argue that with a nascent open-source product, having too many people involved early is problematic for direction and quality density.  Also, the people who create code which uses the product will constantly have to change their code because the underlying architecture or best practices change.  It&#8217;s the bleeding part of the bleeding edge.</p>
<p>I&#8217;m not saying that I&#8217;m committing to doing any of this&#8230; <img src='http://22ideastreet.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Just thought that this was an interesting line of thinking.</p>
<p><br/><br/>Original article:  <a href="http://22ideastreet.com/blog/2009/01/13/open-source-tech-writer/">Open Source Tech Writer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://22ideastreet.com/blog/2009/01/13/open-source-tech-writer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

