<?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>Curious Chap &#187; Software Development</title>
	<atom:link href="http://curiouschap.com/category/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://curiouschap.com</link>
	<description>Thoughts and Rants on Design</description>
	<lastBuildDate>Wed, 02 Jun 2010 04:04:00 +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>Catch Me If You Can</title>
		<link>http://curiouschap.com/2010/01/catch-me-if-you-can/</link>
		<comments>http://curiouschap.com/2010/01/catch-me-if-you-can/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 23:56:45 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://curiouschap.com/?p=143</guid>
		<description><![CDATA[Daniel Jalkut makes the best case yet as to why desktop applications are here to stay and why web applications, almost by definition, will always play catch up with desktop apps:
When something truly innovating and mind-blowing happens on the web, I can drop it into a WebView on my Mac and make it a part [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.red-sweater.com/blog/1110/cant-catch-me">Daniel Jalkut</a></strong> makes the best case yet as to why desktop applications are here to stay and why web applications, almost by definition, will always play catch up with desktop apps:</p>
<blockquote><p>When something truly innovating and mind-blowing happens on the web, I can drop it into a WebView on my Mac and make it a part of my desktop experience. When something mind-blowing happens on the desktop, you can bet you’ll have people scurrying to painstakingly imitate it on the web.</p>
<p>&#8230;I imagine in 5 or 10 years the web will have caught up to something resembling how desktops behave today. But I can’t even begin to imagine what we’ll have at our fingertips on the desktop, by then. iPad?  We ain’t seen <em>nothing</em> yet.</p></blockquote>
<p><img style="padding-top: 10px; padding-bottom: 10px;" src="http://curiouschap.com/wp-content/uploads/2010/01/passing_baton.png" alt="" width="350" height="204" /></p>
<p>Web apps have their place for sure, but desktop apps will always be the ones passing the baton to web apps.  I knew this by intuition but I&#8217;m grateful to Daniel for articulating it as only he can.  In the past, I have alluded to <a href="http://curiouschap.com/2009/01/featuritis-worse-than-you-think/">project Luceen</a>, a new product that we&#8217;re just starting to work on.  I have discussed this product with only two or three people outside the company, and the inevitable question was akin to &#8220;why are you doing it as a desktop app? don&#8217;t you see your competitors are going web-based?&#8221;</p>
<p>I will be giving them the link to Daniel&#8217;s post if they ask again.</p>
<div><span style="font-family: 'Lucida Grande', Verdana, Arial, 'Bitstream Vera Sans', sans-serif;"><span style="white-space: pre-wrap;">(via <a href="http://ranchero.com/">Brent Simmons</a>)<br />
</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2010/01/catch-me-if-you-can/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Outrage of Air France 447 Crash</title>
		<link>http://curiouschap.com/2009/06/the-outrage-of-air-france-447-crash/</link>
		<comments>http://curiouschap.com/2009/06/the-outrage-of-air-france-447-crash/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 23:08:49 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=96</guid>
		<description><![CDATA[When Air France flight 447 was reported missing, news reports blamed storms over the Atlantic.  As a frequent traveler, this didn&#8217;t make sense to me.  Then reports started coming out blaming the pitot tubes that measure an airplane&#8217;s speed.  It turns out that both Airbus and Air France already knew of problems [...]]]></description>
			<content:encoded><![CDATA[<p>When Air France flight 447 was reported missing, news reports blamed storms over the Atlantic.  As a frequent traveler, this didn&#8217;t make sense to me.  Then reports started coming out blaming the <a href="http://en.wikipedia.org/wiki/Pitot">pitot tubes</a> that measure an airplane&#8217;s speed.  It turns out that both Airbus and Air France already knew of problems with the pitot tubes and were in the process of replacing them.</p>
<p><img src="http://www.curiouschap.com/wp-content/uploads/2009/06/airbus-a330.png" height="120" width="210" border="0" align="right" hspace="10" vspace="0" alt="Airbus A330" />My outrage is this: why wasn&#8217;t GPS technology used to determine the airspeed?  The on-board computer could have compared a calculated speed using GPS data to the speed readings from the pitot tubes, and automatically warned the pilot.  The Airbus A330 has state of the art avionics including GPS according to <a href="http://www.airbus.com/en/aircraftfamilies/a330a340/flight_deck.html">their site</a>.  If free or really inexpensive iPhone apps like <a href="http://www.xewton.com/apps/vcockpit/gps/">V-Cockpit GPS</a> and <a href="http://www.motionx.com/">MotionX-GPS</a> can tell Jane and Joe how fast they are going, why can&#8217;t Airbus do so?</p>
<p>Further, why hasn&#8217;t America&#8217;s FAA or Europe&#8217;s EASA aviation authorities <em>required</em> that GPS information be used as a backup to pitot tubes?  Commercial airplanes have several pitot tubes for redundancy.  But if one stops working due to freezing weather over the Atlantic, then <em>all of them</em> are likely to stop working for the same reason.  An airplane would need an alternate method of measuring speed, not more tubes.  It is a crying shame that a proven technology like GPS was not used.</p>
<p>We programmers are used to being blamed for failures.  Sometimes the blame is well deserved, like the spectacular explosion of the <a href="http://en.wikipedia.org/wiki/Ariane_5">Ariane 5</a> rocket (see <a href="http://www.youtube.com/watch?v=kYUrqdUyEpI">video</a>).  Other times, the fault is with management, like the failure of the FBI&#8217;s $170 million Virtual Case File (VCF) <a href="http://www.washingtonpost.com/wp-dyn/content/article/2006/08/17/AR2006081701485.html">project</a>.  In this case, our profession could have easily saved 228 lives and hundreds of millions of euros.</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2009/06/the-outrage-of-air-france-447-crash/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Featuritis: Worse Than You Think</title>
		<link>http://curiouschap.com/2009/01/featuritis-worse-than-you-think/</link>
		<comments>http://curiouschap.com/2009/01/featuritis-worse-than-you-think/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 04:55:15 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Cedrus]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=86</guid>
		<description><![CDATA[I just finished reading Dreaming in Code by Scott Rosenberg.  The book describes Mitch Kapor&#8217;s valiant effort at creating Chandler, a software product that was supposed to be the mother of all PIMs.  Scott was there from the start and describes the various mistakes made, such as not having a finalized user interface [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/dp/1400082471?tag=3sensesorg-20&amp;camp=15041&amp;creative=373501&amp;link_code=as3"><img src="http://www.curiouschap.com/wp-content/uploads/2009/01/dreaming-in-code-1.jpg" height="240" width="179" border="0" align="right" hspace="5" vspace="5" alt="Dreaming In Code" title="Dreaming In Code" /></a>I just finished reading <strong><a href="http://www.amazon.com/dp/1400082471?tag=3sensesorg-20&amp;camp=15041&amp;creative=373501&amp;link_code=as3">Dreaming in Code</a></strong> by Scott Rosenberg.  The book describes Mitch Kapor&#8217;s valiant effort at creating Chandler, a software product that was supposed to be the mother of all PIMs.  Scott was there from the start and describes the various mistakes made, such as not having a finalized user interface more than two years into development, switching from peer-to-peer to a CalDAV-based approach late in the game, and so forth.</p>
<p>Mitch is the guy who invented Lotus 1-2-3; he&#8217;s been around the block once or twice.  The book is a worthwhile read for anyone involved in a team software development effort, or about to embark on one.</p>
<p>Dreaming in Code was a Christmas gift from a colleague, and I suspect that her choice of books is not coincidental.  See, we&#8217;re starting work on this major new software project.  I am not at liberty to disclose much about it, so I&#8217;ll call it Project Luceen for now, after my daughter&#8217;s middle name.  We haven&#8217;t starting coding yet &#8212; the developers are wrapping up work on another project and I am finalizing the user interface and writing the specs.  But while reading the book, the following passage on page 260 caught my attention:</p>
<p style="text-indent:20pt;">&#8220;Success is a by-product of iron-willed restraint &#8212; a choice firmly made and vociferously reasserted at every challenge to limit a project&#8217;s scope.  Where you find software success stories, you invariably find people who are good at saying no. [,,,] the successful programmer thrives because of, not in spite of, constraints.&#8221;</p>
<p>Most people think of featuritis as the constant adding of new features, from the meaningful to the superfluous.  Kind of like the artist who does not know when to stop working on a painting.  But it&#8217;s more than that: featuritis is not having a solidly defined set of features <em>before</em> development starts.  This is partly what dogged <a href="http://www.superlab.com/">SuperLab 4.0&#8217;s</a> development.  In the case of Chandler, the feature set was a moving target.</p>
<p>After reading the book, I went back to the specs document and swapped items 1 and 2!  The screen snapshot below is of the top of the very first page &#8212; yes, even before the table of contents.</p>
<p><img src="http://www.curiouschap.com/wp-content/uploads/2009/01/project-luceen-specs-1.png" height="233" width="460" border="0" hspace="0" vspace="0" alt="Project Luceen Specs-1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2009/01/featuritis-worse-than-you-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Beauty of Programming</title>
		<link>http://curiouschap.com/2008/07/the-beauty-of-programming/</link>
		<comments>http://curiouschap.com/2008/07/the-beauty-of-programming/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 18:36:35 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=67</guid>
		<description><![CDATA[Gustavo Duarte writes in his excellent piece, “Lucky to be a Programmer”:
For the past few weeks I’ve been working with a fellow developer on a project that required an all-out programming effort. It’s done now, so we’re back to a regular schedule, but when people hear about the crazy hours they often say they’re sorry. [...]]]></description>
			<content:encoded><![CDATA[<p>Gustavo Duarte writes in his excellent piece, “<a href="http://duartes.org/gustavo/blog/post/lucky-to-be-a-programmer">Lucky to be a Programmer</a>”:</p>
<blockquote><p>For the past few weeks I’ve been working with a fellow developer on a project that required an all-out programming effort. It’s done now, so we’re back to a regular schedule, but when people hear about the crazy hours they often say they’re sorry. They really shouldn’t be. I would never do this often, or for long periods, or without proper compensation if done for an employer, but the truth is that these programming blitzkriegs are some of my favorite periods in life. Under the right conditions, writing software is so intensely pleasurable it should be illegal.</p>
<p>Few things are better than spending time in a creative haze, consumed by ideas, watching your work come to life, going to bed eager to wake up quickly and go try things out. I am not suggesting that excessive hours are needed or even advisable; a sane schedule is a must except for occasional binges. The point is that programming is an intense creative pleasure, a perfect mixture of puzzles, writing, and craftsmanship.</p></blockquote>
<p>Couldn&#8217;t have said it better.</p>
<p>(Via <a href="http://gusmueller.com/blog/">Gus Mueller</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2008/07/the-beauty-of-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free iPhones For All</title>
		<link>http://curiouschap.com/2008/07/free-iphones-for-all/</link>
		<comments>http://curiouschap.com/2008/07/free-iphones-for-all/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 03:56:45 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Cedrus]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=66</guid>
		<description><![CDATA[OK, so it’s not quite free for everybody, ya know. I’ve done dumb things before, but c’mon! It’s free to all Cedrus employees who have been with the company a year or more.
Why?
It’s simple, really. With all due to respect to Samsung’s Instinct and other iPhone wannabe recent offerings, the iPhone currently has no competition. [...]]]></description>
			<content:encoded><![CDATA[<p>OK, so it’s not quite free for <em>everybody</em>, ya know. I’ve done dumb things before, but c’mon! It’s free to all Cedrus employees who have been with the company a year or more.</p>
<p><strong>Why?</strong></p>
<p>It’s simple, really. With all due to respect to Samsung’s <a href="http://www.engadget.com/2008/06/11/samsung-instinct-to-run-199-99-on-contract/">Instinct</a> and other iPhone wannabe recent offerings, <strong>the iPhone currently has no competition</strong>. Despite <a href="http://www.curiouschap.com/?p=64">some bugs</a>, the gap between it and the next closest competitor is so vast, it’s not even funny. Garmin’s <a href="http://www.engadget.com/2008/01/30/garmin-gets-official-with-its-nuvifone/">Nuviphone</a> and phones based on Google’s Android platform look promising. But until they ship, iPhone rules.</p>
<p>With Cedrus’ sharpened focus on design, does it make sense for our employees to use crapware? Hardly. No university teaches programming using pen and paper — you’ve got to cut your teeth on a real computer. Even something as basic as tying your shoes can’t be learned by listening to someone telling you how it’s done. You need to practice.</p>
<p>The same goes for design. You cannot develop a sharp sense of design unless you are using the absolute best examples of good design. Crapware, or even second best, will not cut it.</p>
<p><strong>No Tolerance</strong></p>
<p>And the last reason to offer free iPhones is this: the best developers and the best employees are those who have little tolerance for poorly designed stuff, software included. They didn’t know it at the time (they will now!), but that was one of the primary reasons why I switched the company from Windows back to Mac OS two years ago.</p>
<p>It is well known that <strong>Mac users expect better designed programs from developers</strong>. Mac developers will get lambasted for minor sins that their Windows counterparts regularly get away with. The same logic applies to iPhone users: the level of expectations is high and tolerance for poorly designed mobile apps is very, very low. If you don’t believe me, just see <a href="http://www.flickr.com/photos/gruber/2635257578/">what happened</a> to Stevens Creek Software when they ported their TripLog/1040 app from Palm OS to iPhone.</p>
<p><strong>It’s a Computing Platform</strong></p>
<p>If you have Windows developers who have never used a Mac, would you ask them to start developing a Mac application overnight? Even if, hypothetically, they come up to speed on Xcode, Interface Builder, and other Mc OS tools in an instant, they will still not be able to develop a great app because they have not previously been immersed in Macs and Mac OS culture.</p>
<p>With the release of the iPhone SDK and App Store, iPhone is set to become much more than a mere talking tool. It’s an emerging computing platform that will compete with handheld game devices and open new opportunities. When the day comes when Cedrus needs to develop an iPhone app, our developers must be already immersed in the iPhone culture. It takes time to “get it”.</p>
<p><strong>Not Just for Developers</strong></p>
<p>And last but not least, everyone at Cedrus gets a free iPhone instead of just developers, for two reasons. First, to avoid creating two classes of employees. Everyone’s contribution is important. The developers write code. But without the non-developers, we might as well pack and go home.</p>
<p>And second, being a small company everyone’s opinion is solicited on planned UI designs. The non-developers provide a different and very valuable point of view and will often pinpoint design problems that a developer would miss. Ignore the non-developers at your company at your own risk!</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2008/07/free-iphones-for-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A New Way to Setup Teams?</title>
		<link>http://curiouschap.com/2008/03/a-new-way-to-setup-teams/</link>
		<comments>http://curiouschap.com/2008/03/a-new-way-to-setup-teams/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 17:36:50 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=59</guid>
		<description><![CDATA[What do Ethernet and the original graphical user interface (shown below) have in common?

Both were ignored by their company.  They were invented at Xerox&#8217; famous Palo Alto Research Center, or PARC.  Xerox didn&#8217;t know what to do with them.
These examples illustrate a long standing dilemma of organizations, especially the large ones: how can [...]]]></description>
			<content:encoded><![CDATA[<p>What do Ethernet and the original graphical user interface (shown below) have in common?</p>
<p><img src="http://www.curiouschap.com/wp-content/uploads/2008/03/xerox-star-gui.jpg" height="216" width="300" border="0" vspace="10" alt="Xerox Star GUI" title="Xerox Star GUI" /></p>
<p>Both were ignored by their company.  They were invented at Xerox&#8217; famous Palo Alto Research Center, or <a href="http://en.wikipedia.org/wiki/Palo_Alto_Research_Center">PARC</a>.  Xerox didn&#8217;t know what to do with them.</p>
<p>These examples illustrate a long standing dilemma of organizations, especially the large ones: how can researchers and innovators get the attention or even the championing of management?  Managers face a different issue: when and how do they tell a brilliant researcher that his or her idea is too nutty, that way too much time and money has been wasted on it already?</p>
<p><strong>Shake Up at HP Labs</strong></p>
<p>HP Labs&#8217; new director, Prith Banerjee, is trying to do things differently now.  He reorganized HP&#8217;s 600-person research operation into 23 groups, each headed by a lab director.  According to the March 17 issue of <a href="http://www.eetimes.com/">EE Times</a>:</p>
<blockquote><p>HP gave secret ballots to every researcher in its lab to choose the one lab director “out of 23” with whom he or she most prefers to work.  In parallel, HP asked its lab directors to confidentially select their first and second choices among the 20 researchers they would most want on their team.</p></blockquote>
<blockquote><p>According to Banerjee, the confidential voting on both sides yielded an 80 percent match between lab directors and researchers.</p></blockquote>
<p>This sounds simple but is very important for R&#38;D organizations to function well.  A research environment has less structure than a typical corporation; it is all about the free flow of ideas and team work.  If the lab director does not champion it, a great idea will end up in the Great Graveyard of Great Ideas &#8212; or worse, it will be handed on a silver platter to another company, possibly a competitor.</p>
<p>[Full EE Times article “<a href="http://www.eetimes.com/showArticle.jhtml;?articleID=206903840">HP Labs braces for impact</a>” and commentary “<a href="http://www.eetimes.com/showArticle.jhtml;?articleID=206902615">Will eHarmony work for R&#38;D match-making?</a>”]</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2008/03/a-new-way-to-setup-teams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Myths of Innovation</title>
		<link>http://curiouschap.com/2007/12/the-myths-of-innovation/</link>
		<comments>http://curiouschap.com/2007/12/the-myths-of-innovation/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 07:09:29 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=50</guid>
		<description><![CDATA[Welcome to 2008, and Happy New Year to all.
I just finished reading Scott Berkun&#8217;s The Myths of Innovation.  Scott does an excellent job of debunking a number of myths, explains how innovations are diffused, and describes the various obstacles that slow down their diffusion.
I won&#8217;t provide a thorough review &#8212; plenty of readers who [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.curiouschap.com/wp-content/uploads/2008/01/curious-chap-w100.jpg" height="59" width="100" border="0" align="right" hspace="10" vspace="0" alt="Curious Chap" title="Curious Chap" />Welcome to 2008, and Happy New Year to all.</p>
<p>I just finished reading Scott Berkun&#8217;s <strong><a href="http://www.amazon.com/gp/redirect.html%3FASIN=0596527055%26tag=curiouschap-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0596527055%253FSubscriptionId=02ZH6J1W0649DTNS6002">The Myths of Innovation</a></strong>.  Scott does an excellent job of debunking a number of myths, explains how innovations are diffused, and describes the various obstacles that slow down their diffusion.</p>
<p>I won&#8217;t provide a thorough review &#8212; plenty of readers who are more qualified have already done so on Amazon.  But I would like to share my two most important lessons from the book.  The second lesson is the one that&#8217;s relevant to software development.</p>
<p><span style="color:#800000;"><strong>The Apple Didn&#8217;t Do It</strong></span></p>
<p><img src="http://www.curiouschap.com/wp-content/uploads/2008/01/myths-of-innovation.jpg" height="240" width="182" border="0" align="right" hspace="10" vspace="0" alt="The Myths of Innovation" title="The Myths of Innovation" />Scott demonstrates how the popular media likes stories of epiphanies.  An example is the apple that fell on Newton&#8217;s head, providing him with the crucial insight into gravity.  Did an apple ever fall?  Scott says that there is no proof.  But more importantly, the story of the fallen apple makes no mention of the <strong>twenty years of research</strong> that Newton had done.  An apple fell: poof!  Newton gets his epiphany.  Gravity is discovered!</p>
<p>Not so, baby.  Behind every apparent epiphany are usually years of research and thinking.  &#8220;Eureka moments&#8221; happen only after a person has spent a lot of time thinking.</p>
<p><span style="color:#800000;"><strong>The Importance of Incubation</strong></span></p>
<p>Scott provides the insight that early research and development is typically followed by a period of incubation, a lull during which ideas sink in.  This is something that I knew instinctively, but I am grateful to Scott Berkun for highlighting it.  It is during those periods of incubation that Eureka moments typically strike, and they are a necessary part of the process of innovation.</p>
<p>I find that this applies to software development in a big way at the <strong>design stage</strong>.  By design, I mean the process of developing the specs for the software and its user interface.  After this is completed, it is important to let the design sit idle for a little bit while you keep pondering it.  This allows time to think through real world situations and see if the planned design helps address them.  A period of incubation is even more important if the design is for a <strong>new version</strong> where it is important to think about the problems that your customers had in the past and whether the new design helps.  If your company has online forums, visit them and review the complaints that your customers took the time to write about.</p>
<p>If you have spent some time writing code and debugging, then you probably understand the importance of <strong>stepping back</strong> every once in a while.  This is a form of incubation as well, although usually of much shorter duration.  It happened frequently to me: I would be trying to fix a bug unsuccessfully.  Then I leave the office and go home.  My &#8220;Eureka moment&#8221; would sometimes come before I even get home (my commute is all of two miles).  You have probably experienced something similar in the past as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2007/12/the-myths-of-innovation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More On App Development vs. Consulting</title>
		<link>http://curiouschap.com/2007/12/more-on-app-development-vs-consulting/</link>
		<comments>http://curiouschap.com/2007/12/more-on-app-development-vs-consulting/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 21:40:30 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=41</guid>
		<description><![CDATA[Shortly after I commented on The Two Types of Software Development (application development vs. consulting), Joel Spolsky posted the text of a talk that he gave at Yale.  It largely agrees with my comments and it&#8217;s why I am firmly in the apps side and never want to go back to consulting.
Ever eloquent, Joel [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.curiouschap.com/wp-content/uploads/2007/12/curious-chap-w1602.jpg" height="100" width="160" border="0" align="right" hspace="10" vspace="0" alt="Curious Chap" title="Curious Chap" />Shortly after I commented on <a href="http://www.curiouschap.com/?p=26">The Two Types of Software Development</a> (application development vs. consulting), Joel Spolsky posted the <a href="http://www.joelonsoftware.com/items/2007/12/03.html">text of a talk</a> that he gave at Yale.  It largely agrees with my comments and it&#8217;s why I am firmly in the apps side and never want to go back to consulting.</p>
<p>Ever eloquent, Joel does not mince his words: <strong>it sucks to be an in house programmer</strong>.  The arguments he makes largely overlap with mine.  He points that “a programmer is never going to rise to become CEO of Viacom, but you might well rise to become CEO of a tech company”:</p>
<blockquote><p>And I could tell that no matter how critical it was for Viacom to get this internet thing right, when it came time to assign people to desks, the in-house programmers were stuck with 3 people per cubicle in a dark part of the office with no line-of-sight to a window, and the “producers,” I don’t know what they did exactly but they were sort of the equivalent of Turtle on Entourage, the producers had their own big windowed offices overlooking the Hudson River.</p></blockquote>
<p>The text of the talk is published in three parts, but the part about in-house programmers is in <a href="http://www.joelonsoftware.com/items/2007/12/04.html">part 2</a>.  It&#8217;s well worth the time to read at least that part.</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2007/12/more-on-app-development-vs-consulting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Two Types of Software Development</title>
		<link>http://curiouschap.com/2007/11/the-two-types-of-software-development/</link>
		<comments>http://curiouschap.com/2007/11/the-two-types-of-software-development/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 11:03:41 +0000</pubDate>
		<dc:creator>Hisham</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.curiouschap.com/?p=26</guid>
		<description><![CDATA[I&#8217;ve been thinking for a while about the difference between application development versus contract programming, a.k.a. consulting.  I have done both and clearly prefer application development.
What spurred me to ink my thoughts is Ben Collins-Sussman&#8217;s recent Version Control and “the 80%” post where he separates developers into two groups: the 20% alpha geeks and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.curiouschap.com/wp-content/uploads/2007/11/curious-chap-w1604.jpg" height="100" width="160" border="0" align="right" hspace="10" vspace="0" alt="Curious Chap" title="Curious Chap" />I&#8217;ve been thinking for a while about the difference between <strong>application development</strong> versus contract programming, a.k.a. <strong>consulting</strong>.  I have done both and clearly prefer application development.</p>
<p>What spurred me to ink my thoughts is Ben Collins-Sussman&#8217;s recent <a href="http://blog.red-bean.com/sussman/?p=79">Version Control and “the 80%”</a> post where he separates developers into two groups: the 20% alpha geeks and the 80% folks.  Ben, one of <a href="http://subversion.tigris.org/">Subversion</a>&#8217;s developers, dares to write:</p>
<blockquote><p>There are two “classes” of programmers in the world of software development: I’m going to call them the 20% and the 80%.</p>
<p>The 20% folks are what many would call “alpha” programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90’s; the people who write lisp compilers and learn Haskell on weekends “just for fun”; they actively participate in open source projects; they’re always aware of the latest, coolest new trends in programming and tools.</p>
<p>The 80% folks make up the bulk of the software development industry. They’re not stupid; they’re merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them — usually VS.NET if they’re doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They’ve never used Linux, and aren’t very interested in it anyway. Many have never even used version control. If they have, it’s only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers.</p></blockquote>
<p>I agree.  I also realize now one of the reasons why I moved away from consulting in 1994 and never looked back: most of the alpha geeks are not there.  They are in application development.  There are several reasons why application development attracts alpha geeks while consulting repels them.</p>
<p style="text-indent:20pt;">Disclaimer: I&#8217;m sure many consulting outfits do a great job; no offense is meant to anyone.</p>
<p><strong>The Feedback Loop</strong></p>
<p>In application development, a developer receives a lot of feedback.  This could be in the shape of email, forum posts, phone, or by meeting customers face to face at a convention or trade show.  The developers also receives critical feedback from the technical support folks; this helps them identify bugs or weaknesses in the app and challenge them to do better.  The feedback often includes feature suggestions and sometimes even an entirely new product idea.  There is <strong>nothing more rewarding</strong> for a developer than to hear a customer rave about how much he or she loves the product.</p>
<p>This feedback loop is not usually found in consulting.  In 1992-1993, I worked on a software project for monitoring a nuclear reactor <em>after</em> a fault has occurred.  Pretty serious stuff, but <strong>no one</strong> other than the CEO at the time ever met the customer!  He was not a developer, didn&#8217;t understand developers, and didn&#8217;t care much for them other than how many hours the customer could be billed.  There was no direct input to the developers before the project started and no feedback after delivery.</p>
<p><strong>Geeks Are Not Just Coders</strong></p>
<p>Alpha geeks like to develop, not just code.  There is a huge difference between the two.  A developer has the opportunity to be creative and help shape the product.  At consulting companies, coders rarely have this opportunity.  Any creativity is limited to implementation details.</p>
<p><strong>Who&#8217;s In The Driver&#8217;s Seat?</strong></p>
<p>In application development, developers are in the driver&#8217;s seat along with managers, helping build quality products that customers will love.  Their own interests are usually aligned with that of management.  If the product&#8217;s quality is not up to par, the free market will take care of weeding it out.</p>
<p><img src="http://www.curiouschap.com/wp-content/uploads/2007/11/overloaded-donkey.jpg" height="148" width="170" border="0" align="right" hspace="10" vspace="0" alt="Overloaded project, err donkey" title="Overloaded project, err donkey" />In consulting, the dynamic is completely different.  MBAs are usually in the driver&#8217;s seat.  Billing is the primary motivation and it often <strong>conflicts directly</strong> with the goal of quality.  Imagine the following scenario: Mr. MBA convinces Mr. Client that adding database replication would be a spiffy idea.  Mr. MBA rushes to the computer lab and informs Ms. Lead that replication needs to be implemented.  Ms. Lead and her colleagues warn Mr. MBA about the delays the new feature would cause, the complexity that it would add, and that the project might collapse under its own weight.</p>
<p>Seriously folks, do you think that Mr. MBA cares?  He&#8217;s only thinking about how much more he&#8217;s going to be able to charge the client.  Perhaps the firm will even make him a <em>partner</em>.  Imagine that!</p>
<p>What I just described is one of the reasons why the FBI&#8217;s $170 million Virtual Case File (VCF) project failed.  According to the <a href="http://www.washingtonpost.com/wp-dyn/content/article/2006/08/17/AR2006081701485.html">Washington Post</a>, the FBI didn&#8217;t manage the project well and the contractor, SAIC, “knew the FBI&#8217;s plans were going awry but did not insist on changes because the bureau continued to pay the bills as the work piled up.”</p>
<p><strong>Geeks Like to Work With Geeks</strong></p>
<p>If most alpha geeks are found in the application development area, that&#8217;s where budding alpha geeks will want to be.  It&#8217;s as simple as that.</p>
]]></content:encoded>
			<wfw:commentRss>http://curiouschap.com/2007/11/the-two-types-of-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
