<?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>Dave Talks Shop &#187; Software Development</title>
	<atom:link href="http://www.davidkspencer.com/category/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidkspencer.com</link>
	<description>Thriving in the 21st century workplace</description>
	<lastBuildDate>Fri, 30 Jul 2010 11:49:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ask a stupid question &#8230;</title>
		<link>http://www.davidkspencer.com/2010/04/08/ask-a-stupid-question/</link>
		<comments>http://www.davidkspencer.com/2010/04/08/ask-a-stupid-question/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 16:16:46 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=588</guid>
		<description><![CDATA[&#8230; get an important answer. Two colleagues of mine demonstrated to me today a habit which, on its surface, can be difficult to understand.  They really enjoy asking the stupid questions.  We&#8217;ll be in a design review, looking at a fairly straightforward diagram showing a few components interacting, and they&#8217;ll ask what customer use case [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/04/08/ask-a-stupid-question/">Ask a stupid question &#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>&#8230; get an important answer.</p>
<p>Two colleagues of mine demonstrated to me today a habit which, on its surface, can be difficult to understand.  They really enjoy asking the stupid questions.  We&#8217;ll be in a design review, looking at a fairly straightforward diagram showing a few components interacting, and they&#8217;ll ask what customer use case this represents and what those components are.</p>
<p>We all know the answer.  It&#8217;s fairly obvious. But the person writing the design didn&#8217;t label the components and left it open to interpretation.</p>
<p>My first instinct was to jump in, say it wasn&#8217;t important, that we needed to get to the guts of the design to review it.  I was wrong.</p>
<p><span id="more-588"></span></p>
<p>The benefit of asking the stupid question is that the stupid answer you get just might not be the one you expect.  It&#8217;s so obvious that everyone just assumes their answer is right.  They probably are.  But when five people each feel that way, and nobody makes sure all five are thinking of the same stupid answer, you&#8217;re probably in a situation where there is more than one stupid answer out there.  And as work progresses, more and more assumptions get built atop those shaky foundations, until someone finally figures out the flaw in communication.</p>
<p>By then, everyone is so invested in their own interpretation that there are bound to be difficult conflicts, messy redesigns, and more.</p>
<p>So ask the question up front.  Don&#8217;t be afraid to look dumb.  One of these times you&#8217;ll spot the problem a month early and it&#8217;ll all be worth it.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/04/08/ask-a-stupid-question/">Ask a stupid question &#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2010/04/08/ask-a-stupid-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iWorry about our progammers</title>
		<link>http://www.davidkspencer.com/2010/03/08/iworry-about-our-progammers/</link>
		<comments>http://www.davidkspencer.com/2010/03/08/iworry-about-our-progammers/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 13:00:14 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=580</guid>
		<description><![CDATA[My first desktop PC didn&#8217;t much resemble the PCs of today.  It was a TRS-80 Color Computer II, with 16K of RAM, a single cartridge slot, and two joystick ports.  If you&#8217;re like me, you also had a computer like this one &#8212; maybe a TI-99/4A, a Commodore 64, or a PET.  Chances are, it [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/03/08/iworry-about-our-progammers/">iWorry about our progammers</a></p>
]]></description>
			<content:encoded><![CDATA[<p>My first desktop PC didn&#8217;t much resemble the PCs of today.  It was a TRS-80 Color Computer II, with 16K of RAM, a single cartridge slot, and two joystick ports.  If you&#8217;re like me, you also had a computer like this one &#8212; maybe a TI-99/4A, a Commodore 64, or a PET.  Chances are, it booted into an interpreted BASIC command line prompt.  For many of us writing software today, our first experiments in software development came from looking at the prompt and wondering, &#8220;What can I do here?&#8221;</p>
<p><a title="Me back in 1984 with my Commodore Vic 20" href="http://www.flickr.com/photos/27315689@N00/459020985/" target="_blank"><img class="center frame" src="http://farm1.static.flickr.com/241/459020985_07d4f48b2f_m.jpg" border="0" alt="Me back in 1984 with my Commodore Vic 20" /></a><br />
<small><a title="Attribution-ShareAlike License" href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank"><img src="http://www.davidkspencer.com/blog/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="Extra Ketchup" href="http://www.flickr.com/photos/27315689@N00/459020985/" target="_blank">Extra Ketchup</a>.  This is not me &#8230; but it practically could be!</small></p>
<p><span id="more-580"></span></p>
<p>I saw Google last week proclaiming the <a href="http://www.siliconrepublic.com/news/article/15446/business/in-three-years-desktops-will-be-irrelevant-google-sales-chief">impending death of the desktop computer</a>, in favor of ubiquitous mobile computing with computing power provided by the cloud.  I see more people replacing their gaming PCs with consoles, their family desktops with notepads, and their notepads with iPads and iPhones.</p>
<p>As a geek who loves gadgets, I&#8217;m not opposed to this.  I love progress, and I love the shiny new technology we have access to now.  But I can&#8217;t help but look at what happens when a young kid first boots up a device like this.</p>
<p>Imagine a world where the iPad is the ubiquitous platform of choice.  Where do you get applications for your iPad?  From one vendor: Apple.  How do you write an application for your iPad?  You ask Apple for permission.  You apply to be a developer, ponying up $99 a year to do so.  You buy the specific hardware they support, so you can develop and test.  You learn their proprietary SDK, write something, and then want to share it with your friends.  How do you do that?  You ask permission again, before they&#8217;ll put your software on their store.</p>
<p>These are not huge barriers to people who seriously want to develop iPhone or iPad software, as demonstrated by the 100,000+ applications currently available for download.  But it&#8217;s a moderate barrier to the hobbyist, and an insurmountable one to the middle-school kid with a dream and some spare time, and a further insurmountable one to the person who just wants to experiment and share with friends and has no desire to publish to the world.</p>
<p>I don&#8217;t want to make Apple look like the villain here.  Consumers are demanding easier to use devices that &#8220;just work&#8221; and companies like Apple, Sony, and Microsoft are stepping up.  But I have to wonder what impact this is going to have on the future generation of software engineers who are being born today (or who were born 3 to 5 years ago).  Will we have a generation of people who are expert users but have no inclination to build?  Or will the definition of &#8220;build&#8221; change in some way?</p>
<p><em>(Thanks to <a href="http://surranet.blogspot.com/">Michael Surran</a> for the completely awesome photo on flickr which I am using in this post.  His use of the <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons </a>license has made it possible for me to show you exactly the image I wanted for this post with a clean conscience.)</em></p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/03/08/iworry-about-our-progammers/">iWorry about our progammers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2010/03/08/iworry-about-our-progammers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>EDN puts its money where its mouth is</title>
		<link>http://www.davidkspencer.com/2010/02/24/edn-puts-its-money-where-its-mouth-is/</link>
		<comments>http://www.davidkspencer.com/2010/02/24/edn-puts-its-money-where-its-mouth-is/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 13:49:07 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[EMC]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=578</guid>
		<description><![CDATA[I got a great email last week from my colleague Susan Shapiro, who works with the EMC Community Network.  The EDN (EMC Developer Network) is organizing a coding challenge for EMC World 2010, with a respectable amount of prize money ($25K total split among several prizes) at stake.  Being the self-centered guy I am, I [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/02/24/edn-puts-its-money-where-its-mouth-is/">EDN puts its money where its mouth is</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I got a great email last week from my colleague Susan Shapiro, who works with the EMC Community Network.  The <a href="https://community.emc.com/community/edn">EDN</a> (EMC Developer Network) is organizing a coding challenge for EMC World 2010, with a respectable amount of prize money ($25K total split among several prizes) at stake.  Being the self-centered guy I am, I immediately confirmed that EMC employees were eligible (they are, but only for one of the prizes) before letting myself get excited.</p>
<p>The concept: write a project where multiple EMC developer technologies can be used in a single program.  Bonus points for incorporating other online technologies.  Win money and fame and the adoration of the world.</p>
<p>I&#8217;m waiting for the detailed T&amp;C, but you can read up more on it <a href="http://bit.ly/9Sxbx1">here</a>.  <a href="http://stevetodd.typepad.com/my_weblog/2009/05/15-minutes-of-innovation-break-the-tablets.html">Innovation through contest</a> is something EMC has tinkered with quite a bit, as you may have read on Steve Todd&#8217;s blog last year.</p>
<p>Definitely check out the link for more info. I&#8217;m hoping I can find some time in between all my &#8220;real work&#8221; to put a couple of these tools through their paces.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/02/24/edn-puts-its-money-where-its-mouth-is/">EDN puts its money where its mouth is</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2010/02/24/edn-puts-its-money-where-its-mouth-is/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simplicity is a virtue</title>
		<link>http://www.davidkspencer.com/2010/02/18/simplicity-is-a-virtue/</link>
		<comments>http://www.davidkspencer.com/2010/02/18/simplicity-is-a-virtue/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:31:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=576</guid>
		<description><![CDATA[You&#8217;ve probably heard a variation on this statement from a software developer, made in jest, but containing a nugget of sincerity: It was hard to create, it should be hard to use (or maintain). Basically, we worked hard to get this stuff done and we expect you as a user or future maintainer to put [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/02/18/simplicity-is-a-virtue/">Simplicity is a virtue</a></p>
]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve probably heard a variation on this statement from a software developer, made in jest, but containing a nugget of sincerity:</p>
<blockquote><p>It was hard to create, it should be hard to use (or maintain).</p></blockquote>
<p>Basically, we worked hard to get this stuff done and we expect you as a user or future maintainer to put the same effort into it.  After all, it took many man-years to write the software, it&#8217;s not too much to expect you to spend a few weeks reading manuals and understanding it before you start complaining that it&#8217;s hard to use.</p>
<p>As Paul Young <a href="http://www.paulmyoung.net/2010/02/mom-microwave-and-tree-chippers.html">recently wrote</a>, though, imagine if wood-chippers took that approach.</p>
<p>Imagine if an author did?  &#8220;It took me years to write this novel, you should have to do some research before you read it.&#8221;</p>
<p><a href="http://en.wikipedia.org/wiki/Gravity%27s_Rainbow">Some do</a>, I guess.  I&#8217;ve read a few novels that require major work to get through.  Sometimes the end result is even worth the work.  But as my fiction writing friends tell me, in general you don&#8217;t want your readers to be thinking about your <strong>writing</strong>, you want them thinking about your <strong>story</strong>.  Similarly, you don&#8217;t want your users thinking about your software <strong>design</strong>, you just want them thinking about the <strong>task</strong> your software enables.</p>
<p>I feel the same way about maintaining and testing software.  We want developers thinking about the code, not about the way you wrote it.  You don&#8217;t want someone looking at your code, peering at it for a few minutes, and then saying, &#8220;Oh, I get it.  Wow, that&#8217;s clever.&#8221;</p>
<p>There&#8217;s a famous quote attributed to a half-dozen different writers (and perhaps originated by Blaise Pascal), that says, basically, &#8220;I am sorry I wrote such a lengthy letter; I did not have time to write a short one.&#8221;  It takes time to create simple, elegant software.  When we force the issue and compress the time spent on a project, you end up with complex code and complex user interactions.  We should consider this a problem, not a point of pride.</p>
<p>When we present some difficult software to our users, we should apologize to them.  &#8220;I&#8217;m sorry this UI is so complex.  I didn&#8217;t have time to make it easier.&#8221;  Instead, we make them feel guilty.  &#8220;Ah, perhaps you should have taken the training,&#8221; or read the manual more carefully, or attended our seminar.</p>
<p>Think about the people on your team, and ask yourself if they &#8220;get&#8221; this concept.  Realize, that if they don&#8217;t, you&#8217;re eventually going to lose your market share to a competitor who does.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/02/18/simplicity-is-a-virtue/">Simplicity is a virtue</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2010/02/18/simplicity-is-a-virtue/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Doing the wrong thing for the right reason</title>
		<link>http://www.davidkspencer.com/2010/01/19/doing-the-wrong-thing-for-the-right-reason/</link>
		<comments>http://www.davidkspencer.com/2010/01/19/doing-the-wrong-thing-for-the-right-reason/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 19:06:55 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=559</guid>
		<description><![CDATA[I&#8217;ve written before about how we can&#8217;t afford to be religious about our science.  I&#8217;m seeing that situation in a new light based on some experiences while working on our Next Big Thing here in Ionix Storage Resource Management. We&#8217;ve staffed this team with people who have worked on successful, shipping products.  Many of them [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/01/19/doing-the-wrong-thing-for-the-right-reason/">Doing the wrong thing for the right reason</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written before about how we can&#8217;t afford to be <a href="http://www.davidkspencer.com/2009/12/08/keep-your-dogma-leashed/">religious</a> about our science.  I&#8217;m seeing that situation in a new light based on some experiences while working on our <em>Next Big Thing</em> here in Ionix Storage Resource Management.</p>
<p><span id="more-559"></span></p>
<p>We&#8217;ve staffed this team with people who have worked on successful, shipping products.  Many of them &#8220;grew up&#8221; in a world where certain things (like, say, continuous integration, or test-driven development) were unheard of.  There are inevitable growing pains as we push for certain behaviors and results.  Sometimes there&#8217;s a failure in the software pipeline and the answer from the responsible party is &#8220;This wouldn&#8217;t have happened if we had XYZ in place,&#8221; where XYZ is a practice from some product they used to work on.</p>
<p>As a technical lead, it&#8217;s my responsibility to try and educate people and raise the quality of everyone&#8217;s work.  I&#8217;m supposed to push for the best practices we all need to understand and employ.  But I also need to make sure a product goes out the door.  So when I&#8217;m in a closed-door meeting with senior management and they say, &#8220;Do you think we should put XYZ in place?&#8221; I have to stop and ponder.</p>
<p>The answer, in my heart, is <strong>no</strong>.  Take away the crutch, make the team fail a few times.  People learn from failure.  In a few months they will adapt and be better for it (or they will have gotten fed up and left).</p>
<p>The answer, in my brain, is <strong>yes</strong>.  I know that without this crutch, they will be less productive for a few months.  And I know where we&#8217;re supposed to be in a few months, and I&#8217;m not sure we can get there without the crutch.</p>
<p>I tell management both these answers.  They ask me what we should do.</p>
<p>And this is why our jobs are hard.</p>
<p><em>(I usually end up leaning towards the practical side here, and hope that we can educate in parallel.  But I&#8217;m always left wondering if I should be more extremist&#8230;.)</em></p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2010/01/19/doing-the-wrong-thing-for-the-right-reason/">Doing the wrong thing for the right reason</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2010/01/19/doing-the-wrong-thing-for-the-right-reason/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keep your dogma leashed</title>
		<link>http://www.davidkspencer.com/2009/12/08/keep-your-dogma-leashed/</link>
		<comments>http://www.davidkspencer.com/2009/12/08/keep-your-dogma-leashed/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 13:29:58 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=549</guid>
		<description><![CDATA[If you look up dogma on wikipedia today, you&#8217;ll see this phrase as part of the definition: &#8220;It is not to be questioned.&#8221;  Software developers are at their core scientists, however, and scientists are defined by the fact that they ask questions.  So it should be obvious that there&#8217;s no room for dogma in your [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/12/08/keep-your-dogma-leashed/">Keep your dogma leashed</a></p>
]]></description>
			<content:encoded><![CDATA[<p>If you look up dogma on wikipedia today, you&#8217;ll see this phrase as part of the definition: &#8220;It is not to be questioned.&#8221;  Software developers are at their core <strong>scientists</strong>, however, and scientists are defined by the fact that they ask questions.  So it should be obvious that there&#8217;s no room for dogma in your software group.  And yet, go down the hall to a few of your more senior developers and ask them about coding standards, development practices, or even IDE preference.  Good luck.</p>
<p><span id="more-549"></span></p>
<p>My organization made a recent decision to formalize the technical lead role a little bit within their scrum teams.  We did it because we felt there was a gap not being filled, and we felt like our ability to execute and ship a product was being impacted.  A colleague of mine forwarded me an <a href="http://www.infoq.com/news/2009/12/agile-team-lead">article</a> about the agile &#8220;team lead&#8221; role, and I was more interested in the comments than the actual text &#8212; people discussing whether the role was strictly agile or not.</p>
<p><strong>I&#8217;m sorry, but I could not care less.</strong></p>
<p>I&#8217;m reminded of a <a href="http://www.leadingagile.com/2009/12/adopting-agile-isnt-point.html">recent post</a> by Mike Cottmeyer (who, by the way, gets paid to help companies adapt agile) where he argues that adopting agile isn&#8217;t the point.  The point is to <strong>add value to the business</strong>.</p>
<p>The point isn&#8217;t to play with new technology, to be open-source, to write tests, to measure coverage, or to adhere to standards.  We do these things when the time is right because we believe (<strong>based on evidence</strong>) that doing those things will lead to specific results.  Scientists can&#8217;t afford to be religious about their science, and computer science is no exception.  Don&#8217;t stop asking questions.  Don&#8217;t stop challenging your leaders, your preachers, your prophets.  If you feel like your practices are set by robed oracles atop a mountaintop, something is wrong with your organization.  Now&#8217;s as good a time as any to push back and find out why.</p>
<p>Because in the end, <strong>we&#8217;re here to sell software that delights our customers and keeps us in business</strong>.  Everything else is peripheral.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/12/08/keep-your-dogma-leashed/">Keep your dogma leashed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2009/12/08/keep-your-dogma-leashed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working in the moment</title>
		<link>http://www.davidkspencer.com/2009/10/27/working-in-the-moment/</link>
		<comments>http://www.davidkspencer.com/2009/10/27/working-in-the-moment/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 12:41:28 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Corporate]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=530</guid>
		<description><![CDATA[I&#8217;ve been thinking a bit more about the topic of my previous post (deadlines forcing decisions and focus), and comparing it to some other moments of high-energy, high-engagement, high-satisfaction productivity over the years.  I realized there was a factor I hadn&#8217;t really considered before, and that was the capacity of the task to force all [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/10/27/working-in-the-moment/">Working in the moment</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking a bit more about the topic of my previous post (<a href="http://www.davidkspencer.com/2009/10/20/in-praise-of-deadlines/">deadlines</a> forcing decisions and focus), and comparing it to some other moments of high-energy, high-engagement, high-satisfaction productivity over the years.  I realized there was a factor I hadn&#8217;t really considered before, and that was the capacity of the task to force all participants to <strong>remain in the moment</strong>.</p>
<p><span id="more-530"></span><br />
For example, contrast these two anecdotes:</p>
<blockquote><p><strong>Ben</strong> knows his daughter is home sick from school today, and he&#8217;s worried about her.  He keeps getting a weird exception coming from apache and he can&#8217;t figure out why.  He&#8217;s got half the team in his cube, and as soon as they&#8217;re done he knows he can go home and check on his daughter.  But no matter what, nothing works.  It takes him until 9 PM, and it ends up being something really stupid and obvious.  He&#8217;s mad at himself for missing it, and mad at the team for not finding it.  He leaves frustrated and angry.</p></blockquote>
<blockquote><p><strong>Jill</strong> has no plans tonight, which is good because she keeps running into problems with the local maven repository.  She&#8217;s got half the team in her office trying to figure out why.  5 PM comes and goes, and the team stays on the task.  While they&#8217;re swapping stories over cold pizza at 9 PM someone spots a stupid configuration problem.  They all laugh about it, promise not to tell anyone how simple it was to solve, and go their separate ways.</p></blockquote>
<p>Two years from now, both these developers will remember those nights.  While the end result was <strong>exactly the same</strong> in both situations, one team will bond closer through the hardship while the other will not.  One developer will think of it somewhat fondly, the other as a time when his work kept him from being where he needed to be.</p>
<p>Jill had the freedom to be in the moment, while Ben&#8217;s attention was elsewhere.  This isn&#8217;t Ben&#8217;s fault, or a credit to Jill.  It&#8217;s just unhappy circumstance.  How many of us have been in situations like both those?  I remember staying late into the evening trying to fix a configuration problem for a ControlCenter demo at EMC World &#8212; it was annoying and frustrating but in total the team that stayed to fix it grew closer and remembers it with a chuckle.  Why?  We were miles from home, had nowhere else to be, and had the freedom to attack the problem fully in the moment.</p>
<p>I&#8217;m not suggesting you hire only mid-20s kids with no families who will lose themselves in their work.  But it&#8217;s important to recognize the reasons why the <strong>same circumstances</strong> can either build a team <strong>up</strong> or tear it <strong>down</strong>.  I&#8217;m also not suggesting (by far!) that managers manufacture artificial barriers for teams to overcome together.  Software development is full of enough pitfalls that the team will stumble into these situations without your help!</p>
<p>So the question becomes: what can a manager, a technical leader, or a team member do to help the team operate in the moment?  How can we capitalize on those moments when they arrive?  How much does the <strong>attitude of the leaders present</strong> (and remember: we expect leadership at all levels here &#8230; directors and interns share this responsibility!) shape the way the team perceives a difficult moment?</p>
<p>More than I think people realize.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/10/27/working-in-the-moment/">Working in the moment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2009/10/27/working-in-the-moment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In praise of deadlines</title>
		<link>http://www.davidkspencer.com/2009/10/20/in-praise-of-deadlines/</link>
		<comments>http://www.davidkspencer.com/2009/10/20/in-praise-of-deadlines/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:07:39 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=527</guid>
		<description><![CDATA[A pressing deadline is a powerful thing.  Without a deadline, ideas can drown each other competing for supremacy in a sea of data.  People use and abuse their own value functions to find fault with any possible approach.  But faced with a deadline, thinkers break out of analysis paralysis and become doers.  Of course, an [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/10/20/in-praise-of-deadlines/">In praise of deadlines</a></p>
]]></description>
			<content:encoded><![CDATA[<p>A pressing deadline is a powerful thing.  Without a deadline, ideas can drown each other competing for supremacy in a sea of data.  People use and abuse their own value functions to find fault with any possible approach.  But faced with a deadline, <strong>thinkers</strong> break out of analysis paralysis and become <strong>doers</strong>.  Of course, an unrealistic deadline just causes panic and sloppy work as people scramble to meet impossible goals and push themselves deep into technical debt.<br />
<span id="more-527"></span><br />
I&#8217;ve long felt that iterative development (like <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile</a>/<a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">Scrum</a>) is worth exploring for just this reason.  By forcing teams to march against regularly placed deadlines while empowering them to self-organize in the context of those deadlines, you harness the deadline&#8217;s power repeatedly during a project&#8217;s life.</p>
<p>I recently had a chat with a senior developer working on a very difficult task, trying to achieve demonstrable results in a tight time frame.  I look at his workload and know he&#8217;s walking that fine line between &#8220;challenging&#8221; and &#8220;impossible.&#8221;  How did he describe its impact on his motivation, his engagement?  As <strong>the most fun he&#8217;d had at work in over 5 years</strong>.  And what was the last one?  Another crazy struggle, when a major scalability issue appeared late in a development cycle and teams were forced to come together and refactor major components with very little time to actually design and lots of pressure to actually produce.</p>
<p>Are software developers inherently broken, looking for painful exercises in futility?  I don&#8217;t think so.  I think if you look the tasks that push people to these heights of motivation you&#8217;ll find a few things in common:</p>
<ul>
<li>Well-defined success criteria</li>
<li>Insufficient time to enter analysis paralysis</li>
<li>Developers empowered to pursue their own ideas</li>
<li>Cooperation of close-knit and competent peers</li>
</ul>
<p>The question I can&#8217;t answer is whether people operating on those projects produce higher quality products.  It&#8217;s clear to me that they enjoy their work more, but is that enough?  Perhaps the ruthless attention to continuous integration you see at the heart of Agile/Scrum is a safety valve for that question.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/10/20/in-praise-of-deadlines/">In praise of deadlines</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2009/10/20/in-praise-of-deadlines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Peer to peer development</title>
		<link>http://www.davidkspencer.com/2009/10/06/peer-to-peer-development/</link>
		<comments>http://www.davidkspencer.com/2009/10/06/peer-to-peer-development/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 12:00:38 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=521</guid>
		<description><![CDATA[Sorry Napster fans, I&#8217;m talking about a different kind of P2P here &#8230; career development in a peer-driven context. In nearly every group I&#8217;ve joined, some bright developers eventually banded together and decided they were frustrated at feeling out of touch with the industry.  The answer has always been some sort of peer-driven career development [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/10/06/peer-to-peer-development/">Peer to peer development</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Sorry Napster fans, I&#8217;m talking about a different kind of P2P here &#8230; career development in a peer-driven context.</p>
<p>In nearly every group I&#8217;ve joined, some bright developers eventually banded together and decided they were frustrated at feeling out of touch with the industry.  The answer has always been some sort of peer-driven career development effort.  For example, back in the late 90s, I remember we set up a regular meeting which the entire Navisphere development organization was invited to.  Each week (or was it month?) a speaker would present on something new they had learned.  Occasionally, a guest speaker from another organization would present on something they were doing.  The speaking responsibility rotated among volunteers until we realized it was basically the same 3 people over and over again, and it fizzled out.</p>
<p><span id="more-521"></span></p>
<p>More recently, I&#8217;ve been involved in two small-scale groups where advanced topics in programming languages, tools, and methodologies were presented by volunteer &#8220;experts&#8221; to whoever wanted to attend.  These, too, started strong and fizzled out.  Managers got all excited about this idea and started pushing their people to attend, which made it worse.  Nobody wants to spend their spare time researching a new technology only to present it to a silent group of resentful colleagues.</p>
<p>This past month, two colleagues of mine decided to take this idea in a different direction.  Presentations and slides and research are for, well, students and researchers.  What if they stopped talking and started doing?</p>
<p>The call went out to a few dozen developers and their managers.  Who wants in?  The only rule?  Everybody codes.  Leave your title and your comfort zone at the door and come ready to get your hands dirty.</p>
<p>Only five people signed up, including the two organizers.  They scrounged for computing resources, deployed open source software, and got a project started up in their spare time (lunchtimes, evenings, and weekends).  The goal?  Write a proof-of-concept application using some new technology or methodology.  Align it vaguely with the group&#8217;s (or at least the company&#8217;s) objectives.  Upon achieving success, either improve the application or abandon it and start a new one.  Every so often, show off the results to the rest of the group.</p>
<p>Maybe it&#8217;ll fizzle out in 3 weeks.  Or maybe they&#8217;ll stumble onto something awesome which will turn into the Next Big Thing.</p>
<p>I&#8217;m hoping it lands somewhere in the middle, and a group of passionate engineers remind themselves why they got into this field in the first place, have a little fun, and <a href="https://www.stephencovey.com/7habits/7habits-habit7.php">sharpen their saws</a> on their own.  The rest is gravy.</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2009/10/06/peer-to-peer-development/">Peer to peer development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2009/10/06/peer-to-peer-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Unnecessary Risks</title>
		<link>http://www.davidkspencer.com/2008/10/08/unnecessary-risks/</link>
		<comments>http://www.davidkspencer.com/2008/10/08/unnecessary-risks/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 12:00:20 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Corporate]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.davidkspencer.com/?p=145</guid>
		<description><![CDATA[&#8220;He who is not courageous enough to take risks will accomplish nothing in life.&#8221; &#8211; Muhammad Ali I&#8217;ve written in the past about how we need to embrace and even seek out risk at times.  Since I used American Football to discuss the topic before, I thought I&#8217;d continue the discussion with an example of [...]<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2008/10/08/unnecessary-risks/">Unnecessary Risks</a></p>
]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;He who is not courageous enough to take risks will accomplish nothing in life.&#8221; &#8211; <a href="http://www.quotedb.com/quotes/2660">Muhammad Ali</a></p></blockquote>
<p>I&#8217;ve <a href="http://www.davidkspencer.com/2008/09/10/more-gameday-advice-get-sacked/">written in the past</a> about how we need to embrace and even seek out risk at times.  Since I used American Football to discuss the topic before, I thought I&#8217;d continue the discussion with an example of poor risk management from this past weekend&#8217;s games.<br />
<span id="more-145"></span><br />
You may remember me saying that you wanted your quarterback to get sacked once in a while, as proof that you are not <strong>over-investing</strong> in protecting the QB.  But context is important here.  Let&#8217;s break down the final minutes of a <a href="http://www.nfl.com/gamecenter?game_id=29593&amp;season=2008&amp;displayPage=tab_gamecenter&amp;week=REG5">game</a> played this past weekend between Houston and Indianapolis.</p>
<p>Sage Rosenfels, a backup quarterback, had played well for 45 of the game&#8217;s 60 minutes.  His team, the Houston Texans, led the opposition by 17 points, what would be considered in most circles a comfortable lead.  Generally an offense dials down its tolerance for risk in a situation like this.  Rosenfels did not necessarily get that memo.  When his opponent started a comeback (cutting the lead to ten points, still requiring two opponent scores to secure a tie or victory), Rosenfels began taking reckless risks.  The savvy Indianapolis Colts made his team pay for each one.  First, Rosenfels ran on a play instead of throwing, and in an ill-advised attempt to move the ball a few yards more, dove forward directly towards the defensive players.  <a href="http://www.nfl.com/videos?videoId=09000d5d80b5dc04">The resulting hit</a> jarred the ball loose, and the Colts scored shortly thereafter.</p>
<p>Now, with the game much closer (3 points!), again Rosenfels had the chance to slow the game down, eat up the clock, and secure a narrow victory.  Instead, he was rattled, driven from the pocket, and sacked, again losing the ball to a hard hit.  Again, Indianapolis scored.  Now, the team that had been comfortably ahead for 3/4 of the game was behind by 4 points with short minutes to play.  With all momentum gone, the crowd turning on them, and their opponent smelling blood, they had no chance.  Rosenfels made one last daring attempt, now <strong>required</strong> to take giant risks in order to have a chance, and for a third time the opposing team took the ball away and secured a victory.</p>
<p>Houston lost the game and Rosenfels lost his chance to prove himself.</p>
<p>If your project is on time, progressing well, with awesome quality metrics and good reports from beta sites &#8230; perhaps it&#8217;s not the right time to refactor your database layer for a 5% performance improvement.</p>
<p><strong>Managing risk</strong>, knowing when to put everything on the line for a win and when to dial it back and grind out the clock, is a big part of knowing how to succeed.  You don&#8217;t want to be overconfident, secure in your market position and thinking you can maintain status quo because of it (see: Internet Explorer before Firefox).  But you also don&#8217;t want to take your success and put it at the whims of one risky play (or three&#8230;).</p>
<p>This post is from: <a href="http://www.davidkspencer.com">Dave Talks Shop</a><br/><br/><a href="http://www.davidkspencer.com/2008/10/08/unnecessary-risks/">Unnecessary Risks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidkspencer.com/2008/10/08/unnecessary-risks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
