<?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>Software by Rob &#187; Managing Software Developers</title>
	<atom:link href="http://www.softwarebyrob.com/category/managing-software-developers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.softwarebyrob.com</link>
	<description>Passionate about Startups and MicroISVs</description>
	<lastBuildDate>Thu, 02 Feb 2012 23:53:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Fallacy of Management</title>
		<link>http://www.softwarebyrob.com/2007/10/17/the-fallacy-of-management/</link>
		<comments>http://www.softwarebyrob.com/2007/10/17/the-fallacy-of-management/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 16:00:16 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/10/17/the-fallacy-of-management/</guid>
		<description><![CDATA[In case you missed Gates VP&#8217;s comment about The Fallacy of Management on my recent post Q &#38; A on Leaving Management for Development, I&#8217;ve re-printed it below: === I have a working theory that I&#8217;ve titled The Fallacy of Management. The basic definition is that current managers would have us believe that the work [...] <a href="http://engine.influads.com/click/4f333600353b27f617000005"><img hspace="8" vspace="8" align="right" src="http://engine.influads.com/image/4f333600353b27f617000005"/></a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F10%2F17%2Fthe-fallacy-of-management%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F10%2F17%2Fthe-fallacy-of-management%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In case you missed <a href="http://gatesvp.blogspot.com/">Gates VP&#8217;s</a> comment about The Fallacy of Management on my recent post <a href="http://www.softwarebyrob.com/2007/10/15/q-a-on-leaving-management-for-development/">Q &amp; A on Leaving Management for Development</a>, I&#8217;ve re-printed it below:</p>
<p>===</p>
<p><em>I have a working theory that I&#8217;ve titled <strong>The Fallacy of Management</strong>.</em></p>
<p><em>The basic definition is that current managers would have us believe that the work they do is the very reason for project success and therefore they believe (and have convinced others) that their&#8217;s is the most important role.</em></p>
<p><em>The real truth is that most managers are just overhead, projects would likely self-assemble without them, especially with good devs on the job. However, companies do things like targeting management for bonuses and taking other steps to make management a &#8220;position of privilege.&#8221; The truth is, good managers don&#8217;t deliver projects on time, good programmers deliver projects on time and managers just guide the process.</em></p>
<p><span id="more-239"></span><em>The concept of &#8220;separate streams&#8221; begins to address the problem of Technical Expertise vs. Managerial Expertise. But it&#8217;s also an industry thing. &#8220;Similar&#8221; professional industries, like engineering or accounting, all have a kind of set progression chart from grunt to project manager. Most current &#8220;managers&#8221; don&#8217;t actually recognize the difference between <strong>our</strong> and the engineering field, let alone begin to address the number of engineering project managers who probably shouldn&#8217;t be there anyways.</em></p>
<p><em>It&#8217;s the Peter Principle + poor management + uncertain staff (like yourself at times) that allow the whole vicious cycle to keep turning. Every once in a while, people get off the cycle (like you), but right now we&#8217;re still early in the game and there are more people hopping on the bike rather than off.</em></p>
<p><em>In 10 years, people will know better, the industry will mature (a little) and the Technical / Managerial divide will be well-documented. There&#8217;s a trend right now that&#8217;s dividing the industry and that&#8217;s the &#8220;Great Development Houses&#8221; vs. &#8220;The Body Shops.&#8221; Expect that the former will pick up on (or has picked up on) this divide and that they&#8217;re capitalizing by hiring the right people into the right positions.</em></p>
<p>===</p>
<p>[Rob]: Gates makes several excellent points, and I hope he continues to flesh out this theory.</p>
<p>While I agree with most of what&#8217;s said above, I have to chime in that a <em>good</em> manager is more than overhead. I&#8217;ve worked with managers who made a real difference on our projects, including motivating and rewarding the team, removing political obstacles, and removing the crappy tasks from our plates so we could produce. While <em>most</em> managers could be considered dead weight, a good manager can be invaluable.</p>
<p>Secondly, I question whether 10 years will make a difference in the cycle of developers moving into management. This cycle has a lot to do with figuring out your strengths and desires as a professional, and I think each person needs to go down this path for themselves.</p>
<p>After all the writing I&#8217;ve done on the joy of coding and my two trips to management and back, a developer friend of mine has decided to get his MBA so he can go into management. I forwarded him a link to <a href="http://www.softwarebyrob.com/2007/06/27/why-good-developers-are-promoted-into-unhappiness/">Why Good Developers are Promoted into Unhappiness</a> and he replied:</p>
<p>&#8220;I hear you, but I have to experience it myself.&#8221;</p>
<p>I can&#8217;t argue with that.</p>
<p>[tags]management, programming, software development[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/10/17/the-fallacy-of-management/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Q &amp; A on Leaving Management for Development</title>
		<link>http://www.softwarebyrob.com/2007/10/15/q-a-on-leaving-management-for-development/</link>
		<comments>http://www.softwarebyrob.com/2007/10/15/q-a-on-leaving-management-for-development/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 18:30:44 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/10/15/q-a-on-leaving-management-for-development/</guid>
		<description><![CDATA[I&#8217;ve received several emails about my post Why Good Developers are Promoted Into Unhappiness. One reader asked some interesting questions on his quest to decide between development and management. Here are some excerpts from our conversation: Q: Does leaving management for coding greatly cut your salary? Going back to coding may cut your salary, but [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F10%2F15%2Fq-a-on-leaving-management-for-development%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F10%2F15%2Fq-a-on-leaving-management-for-development%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;ve received several emails about my post <a href="http://www.softwarebyrob.com/archive/2007/07/06/Why_Good_Developers_Promoted_into_Unhappiness.aspx" title="Why Good Developers are Promoted Into Unhappiness" target="_blank">Why Good Developers are Promoted Into Unhappiness</a>. One reader asked some interesting questions on his quest to decide between development and management.</p>
<p>Here are some excerpts from our conversation:</p>
<p><strong>Q: Does leaving management for coding greatly cut your salary?</strong><br />
Going back to coding <em>may </em>cut your salary, but it&#8217;s quite possible it will not. In my case, the first time I went from management to coding I was fortunate enough to move into a higher paying development position. The second time I didn&#8217;t receive additional money for my &#8220;promotion&#8221; into running a development team, so going back required no monetary sacrifice.</p>
<p><span id="more-232"></span>Obviously I was lucky, and it&#8217;s a very real possibility that leaving management could    have an effect on your salary. However, I haven&#8217;t worked at a company where    the development manager makes tremendously more than the highest-paid senior    developers. Senior Developers in L.A. can make $125k, in the bay area they    can pull $140k+. These are enterprise application developers; highly specialized developers could definitely earn more.</p>
<p>So the question is: how much money do you need to be happy, and is it possible to earn that while still writing code?</p>
<p><strong>Q: Coders seem to be considered commodities      and low level craftsman.  Why would someone go      back to that?</strong><br />
Enterprises that consider developers &#8220;commodities and low level craftsman&#8221; are doomed to have (at best) average developers working for them.</p>
<p>A close friend of mine works for a company that has experienced a mass exodus of developers for this very reason. The best left first, the mid-range followed. What&#8217;s left are the people who clock in 9 to 5 for the paycheck and don&#8217;t take pride in what they&#8217;re building. The company now has what they asked for: a team of low-level code jockies. The people with initiative, energy, and passion have left.</p>
<p>Since you don&#8217;t want to work for a company like that, how do you determine if they view developers this way? The last time I interviewed for a salaried position I brought a list of questions with me and interviewed the company as hard as they interviewed me. I also made it a point to speak to one of their developers, and asked him several questions about the working environment, hours, etc&#8230; Most developers won&#8217;t lie to you about this sort of thing.</p>
<p><strong>Q: I like coding, but isn&#8217;t management a more secure job?</strong><br />
Not in my book &#8211; developers have hard skills. I could move to nearly any city in the country, walk    in to a company, and demonstrate that I know my stuff. It&#8217;s true that the job market is wide open for great    managers <em>and</em> coders, but not only is it easier to prove you know how to code, there are    more development positions than development manager positions.</p>
<p><strong>Q: Doesn&#8217;t a manager generally make      significantly more than a coder?</strong><br />
If I posted this on my blog we&#8217;d get 50 different answers (cue you, the reader, to post your opinion in the comments). At my job with the City I managed 10 people and I made more than most of them (the few who made more than me had been there for many years).</p>
<p>At my next position our manager made a tad more than us (around 10%), and he received more stock. He put up with 100% more headaches than we did, so we considered ourselves ahead on the deal.</p>
<p><strong>Q: I&#8217;m trying to find something I    love that pays very well. I&#8217;m really exploring if there is more of a    ceiling as a developer than as a manager. If there is, I need to    figure out how to get above it.</strong></p>
<p><strong>One thing about this industry that    I still don&#8217;t understand is no pay over 40 hours. Virtually everyone    does this. My question is why and why do developers accept it? If    they calculate their per hour pay against that 60 hour week, they could    probably do better working as a laborer on a pipeline. Does that really    make any sense?</strong></p>
<p>Here&#8217;s one way to get around the salary cap <em>and</em> get paid for every hour you work: start your own consulting firm or become a contractor. (A quick aside on how I differentiate consultants from contractors: consultants do a lot of work away from the client&#8217;s office, and they perform more project-oriented work. Contractors tend to have a cubicle at the company&#8217;s office and often do the same tasks as salaried employees.) Either way you&#8217;re paid well to write code and are typically paid for every hour you work.</p>
<p>This is why I left a salary in favor of running a <a href="http://www.thenumagroup.com/" title="consulting firm " target="_blank">consulting firm</a> &#8211; for the freedom to choose what work I do, the ability to get paid for every hour I work, to continue to code, and to make more money than a salaried employee.</p>
<p><strong>Q: If you want to keep climbing the corporate      ladder up into Direct or VP, don&#8217;t you have to go through a management role      to get there?</strong></p>
<p>Yes. If that&#8217;s your goal, then go into management.</p>
<p>I know of only one exception to this rule. It&#8217;s a company in New Jersey that has a technical advancement track that parallels the management advancement track. In other words, people can stay completely technical and still advance in their companies.</p>
<p>At this company, if you don&#8217;t want to become a manager when you&#8217;re up for a promotion there&#8217;s a technical track you can request. I don&#8217;t know the exact titles, but these &#8220;Technical Directors&#8221; are on the same level in terms of power and seniority as their management counterparts; the major difference is they don&#8217;t have anyone reporting to them. They operate relatively independently in the company, but at a very technical level. The problem with the management track is that there&#8217;s a limited number of slots, because the company needs to have people reporting to a manager. But a company can have as many technical directors as it wants because they don&#8217;t require people underneath them.</p>
<p>Another big advantage of technical directors is that when cutbacks come, they don&#8217;t need to worry about retaining their team sizes. As a manager if enough layoffs happen and nobody reports to you, then by default your job is unnecessary. The technical director doesn&#8217;t have this problem.</p>
<p><strong>A question for you, dear reader: How have your experiences been the same or different from what&#8217;s been said above?</strong></p>
<p>[tags]programming, management, salary[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/10/15/q-a-on-leaving-management-for-development/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>A Conversation with Joel Spolsky</title>
		<link>http://www.softwarebyrob.com/2007/09/25/a-conversation-with-joel-spolsky/</link>
		<comments>http://www.softwarebyrob.com/2007/09/25/a-conversation-with-joel-spolsky/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 09:39:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Cool News, Links & Reviews]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/09/25/a-conversation-with-joel-spolsky/</guid>
		<description><![CDATA[I relocated from Los Angeles to Connecticut a few months ago, and a few of my geekier friends joked that I had to meet Joel Spolsky and Paul Graham before I came back to California. Joel is in the midst of his 21-city FogBugz World Tour and one of his first stops was in New [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F09%2F25%2Fa-conversation-with-joel-spolsky%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F09%2F25%2Fa-conversation-with-joel-spolsky%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I relocated from Los Angeles to Connecticut a few months ago, and a few of my geekier friends joked that I had to meet Joel Spolsky and Paul Graham before I came back to California.</p>
<p>Joel is in the midst of his 21-city <a href="http://www.joelonsoftware.com/items/2007/08/16.html" id="zpgv" target="_blank" title="FogBugz World Tour">FogBugz World Tour</a> and one of his first stops was in New York City, where I saw him demo FogBugz 6.0 two weeks ago. In fact, in the picture at the top of <a href="http://www.joelonsoftware.com/items/2007/09/11.html" id="qd6s" target="_blank" title="Joel's post">Joel&#8217;s post</a> about the session, you can barely see my head peeping out over the guy with the black shirt and white stripes on the left side. Those stinking paparazzi never leave me alone.</p>
<p><strong>FogBugz 6.0</strong><br />
The demo went well; it wasn&#8217;t spectacular, but it was a good 40-minute overview of FogBugz&#8217;s main components: a wiki, forums, bug tracking, and scheduling. But it didn&#8217;t need a big flashy presentation &#8211; the application itself is seriously impressive.</p>
<p><span id="more-224"></span>I don&#8217;t know when FogBugz became a complete project tracking and support tool for small software shops, but it&#8217;s no longer just a bug tracker. The wiki looks really sharp &#8211; the WYSIWYG editor is completely custom, and the AJAX everywhere makes for a fantastic user experience. Joel said they spent between 2 and 3 person-years developing their AJAX library from scratch since they encountered too many issues with third party libraries.</p>
<p>I&#8217;ve been using FogBugz on Demand (their hosted solution) for the past several months and I hadn&#8217;t even noticed there&#8217;s a wiki (intended for writing specs and documentation), forums, group email (perfect for a support team serving external customers), and the awesome <a href="http://www.fogcreek.com/FogBugz/docs/60/topics/schedules/Evidence-BasedScheduling.html" id="wx9o" target="_blank" title="evidence-based scheduling">evidence-based scheduling</a> piece.</p>
<p><strong>Evidence-Based Scheduling</strong><br />
In evidence-based scheduling a completion date is constructed from developer estimates, but the completion date is actually a range of dates with probabilities that each date will be met. So you can look at the calendar and say &#8220;We have a 50% chance of finishing by October 31st, and a 90% chance of finishing by November 23rd.&#8221; In addition, the schedule is based on the developers&#8217; past estimating accuracy, so the better their estimates (compared to their actual time spent), the tighter the completion timeframe. Bad estimators means a wider timeframe.</p>
<p>It&#8217;s the right way to handle the task of determining a completion date, and now that they&#8217;ve implemented it I&#8217;m amazed no one has done it before. Some form of evidence-based scheduling is going to find its way into every project management tool over the next few years. If you&#8217;re not happy with your bug tracking or project management application you should take another look at FogBugz.</p>
<p><strong>The Wrap-Up</strong><br />
The capstone of the morning was during the casual Q&amp;A session after the official meeting. Most people left quickly and I found myself in a room filled with about 10 other attendees and the entire staff of Fog Creek Software.</p>
<p>After talking to a couple Fog Creek developers I wound up having a 15-minute conversation with Joel about consulting vs. products, leverage, and SaaS. He&#8217;s as smart in person as he sounds in his blog, and it&#8217;s obvious he&#8217;s given a lot of thought to the issues we discussed. Having read Joel&#8217;s blog since 2000 it was cool to finally meet him face to face.</p>
<p>[tags]joel spolsky, fogbugz, evidence based scheduling, programming[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/09/25/a-conversation-with-joel-spolsky/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Article: Computer Science Enrollment is Going Down, and Taking Software Jobs With It</title>
		<link>http://www.softwarebyrob.com/2007/06/28/new-article-computer-science-enrollment-going-down-taking-software-jobs/</link>
		<comments>http://www.softwarebyrob.com/2007/06/28/new-article-computer-science-enrollment-going-down-taking-software-jobs/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 06:10:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/06/28/new-article-computer-science-enrollment-going-down-taking-software-jobs/</guid>
		<description><![CDATA[From my new article Computer Science Enrollment is Going Down, and Taking Software Jobs With It: &#8220;How many of us would kill to work with ultra-qualified, talented developers instead of whoever we can find that has a pulse and once wrote an Excel macro for a junior high class project? If Computer Science enrollment continues [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F06%2F28%2Fnew-article-computer-science-enrollment-going-down-taking-software-jobs%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F06%2F28%2Fnew-article-computer-science-enrollment-going-down-taking-software-jobs%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>From my new article <span style="font-style: italic"><a href="http://www.softwarebyrob.com/articles/Computer_Science_Enrollment_Going_Down_Taking_Software_Jobs.aspx">Computer Science Enrollment is Going Down, and Taking Software Jobs With It</a></span>:</p>
<p>&#8220;How many of us would kill to work with ultra-qualified, talented developers instead of whoever we can find that has a pulse and once wrote an Excel macro for a junior high class project? If Computer Science enrollment continues to drop people will eventually get hired, with or without degrees and regardless of how qualified they are, because companies will be desperate. And then we&#8217;ll be stuck working with folks who can&#8217;t find their text editor with two hands and an issue of Dr. Dobb&#8217;s Journal.&#8221;</p>
<p>Read the complete article <a href="http://www.softwarebyrob.com/articles/Computer_Science_Enrollment_Going_Down_Taking_Software_Jobs.aspx">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/06/28/new-article-computer-science-enrollment-going-down-taking-software-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Good Developers are Promoted into Unhappiness</title>
		<link>http://www.softwarebyrob.com/2007/06/27/why-good-developers-are-promoted-into-unhappiness/</link>
		<comments>http://www.softwarebyrob.com/2007/06/27/why-good-developers-are-promoted-into-unhappiness/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 11:20:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/06/27/why-good-developers-are-promoted-into-unhappiness/</guid>
		<description><![CDATA[I once thought I had traveled a unique career path. Graduating from college with a degree in computer engineering and electrical engineering I was on fire to be a manager. My dad had worked for the same electrical contractor for 30-something years and I knew everyone from the Chairman of the Board down to the [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F06%2F27%2Fwhy-good-developers-are-promoted-into-unhappiness%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F06%2F27%2Fwhy-good-developers-are-promoted-into-unhappiness%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I once thought I had traveled a unique career path. Graduating from college with a degree in computer engineering and electrical engineering I was on fire to be a manager. My dad had worked for the same electrical contractor for 30-something years and I knew everyone from the Chairman of the Board down to the woman who worked the front desk. I had a major &#8220;in&#8221; and was quickly shuffled into a management training program, with my sights set on one day becoming CEO of the $600 million firm.</p>
<p>18 months later I left for a job writing software for a dot com in Sacramento, and within 3 months I was running multiple project teams (albeit, small ones). I was young, it was fast paced, and I loved it.</p>
<p>When that company experienced difficult times in 2001, I transitioned into contracting, which I did for about three years before taking a position as the Application Development and Database Supervisor at the City of Pasadena, directly responsible for the management and supervision of 10 developers and DBAs. The prestige? High. The paycheck? Fat. The job? Hated it.</p>
<p><span id="more-215"></span>I couldn&#8217;t get past a number of issues with this &#8220;perfect&#8221; position, namely that I couldn&#8217;t hire and fire as I pleased, our technology was dated, and it took movement from the hand of God himself to be able to write a few lines of code. On a side note, many of the people I worked with at the City were very good to work with and knew how to do their jobs. Pasadena is one of the most progressive cities in the state, if not the country, in terms of technology. But the job didn&#8217;t fit me and I started to interview elsewhere.</p>
<p>By this time I was burned out on managing people and knew what I wanted to do: write code.</p>
<p>&#8220;Do you want to manage?&#8221;<br />
Nope, I want to write code.</p>
<p>&#8220;Do you want to run a team?&#8221;<br />
Nope, write code.</p>
<p>&#8220;Do Architecture?&#8221;<br />
Write code.</p>
<p>&#8220;Talk to your co-workers?&#8221;<br />
CODE!</p>
<p>During this time an interviewer asked me &#8220;Where do you see yourself in five years?&#8221; and my answer was &#8220;I just want to write code. I don&#8217;t want to manage people. I&#8217;ve been there and I didn&#8217;t enjoy it. I want to get back to learning .NET and come up for air in about 3 months.&#8221;</p>
<p>And code I did. I arrived in the morning, threw on my headphones and wrote mad stacks of functionality. I produced more software in 6 months than I had in the previous year. It was a fun time and I look back on it with fondness, if not a bit of envy. But I was naive to think I could continue doing that for very long.</p>
<p>After 6 months I was asked to run a project. I accepted and what started as a two-person team evolved into 10 developers cranking on the largest software project our company had every undertaken. And I was at the helm.</p>
<p>During this time I didn&#8217;t write a line of code for 15 months, but my Visio skills were like nothing you can imagine. I knew every keyboard shortcut and every right-click. I saw Visio shapes attacking me in my dreams and I knew the exact mouse movements and clicks to re-size them so they could do me no harm.</p>
<p>I left the company within a year of completing that project. I had voiced my &#8211; lets call them <em>concerns</em> &#8211; many times but the &#8220;good of the project&#8221; always overruled my desire to return to writing code. After nearly a year of asking to return to the battlefield, I turned in my badge and made my way back to the world of consulting.</p>
<p>I discovered that although I enjoy running small teams, I have an innate desire to <em>create. </em>And unfortunately, while managing people requires creativity, it does not allow you to create. Although my teams and bosses liked me and my results, it did not fulfill deep need to take dead bits and make them into something living.</p>
<p><strong>We&#8217;re Not Alone</strong><br />
Within the last year I&#8217;ve heard nearly identical stories from <strike>four</strike> five other developers whom I&#8217;ve known for many years. One friend, while telling me his tale of being forced into project management, described a conversation where he told his manager &#8220;I just want to code.&#8221; I laughed out loud at his word-for-word use of what had become my mantra for the past 15 months.</p>
<p>Another friend of mine said:</p>
<p>&#8220;I feel I may be on a similar track to what you&#8217;ve traveled, starting from a developer and moving into project oversight on a $1 Billion project. Maybe one day I could be a programmer again, having come full circle. Programmers are not bottom feeders but something to aspire to, even for people who are currently managers, not just for college grads looking for entry level positions. Working my way &#8216;down&#8217; to a programmer might work my way back to a place I really enjoyed and have fond memories of. Instead of reverse engineering it&#8217;s sort of a reverse career track.&#8221;</p>
<p>I imagine there are more stories where these came from.</p>
<p><strong>Why It&#8217;s Bad</strong><br />
Promoting developers into management or project management is not bad. On the contrary, I have most enjoyed working for managers who at one time in their career made the 1&#8242;s and 0&#8242;s dance.</p>
<p>The problem is not that developers are promoted, it&#8217;s that the developers who tend to be promoted are the &#8220;big producers,&#8221; the ones who come through on their projects. These are the same developers who stay late and read software books on the weekend because of their love for programming; that&#8217;s why they come through on their projects. Promoting someone who loves to write software into a position where they will write little or no software doesn&#8217;t make an ounce of sense.</p>
<p>Someone else said this first, but if Willie Mays played for your baseball team would you promote him to manager? True, he delivers more than his teammates, and he is one of the best players of all time, but a player of that caliber should be left where he can do the most good: smacking balls out of the park. Moving him into manager not only reduces his direct contribution to the team, but is done under the assumption that he has a clue how to manage his fellow players, instead of what he&#8217;s obviously demonstrated he can do: hit a baseball like few people in history have.</p>
<p>The answer? Promote developers who demonstrate management skills instead of top notch development skills. They may be hard to find, but top notch developers are even harder to find.</p>
<p>The end result of promoting your best developers is at best a few unhappy months or years as they struggle with their unhappiness and their desire to return to code, while (perhaps) not wanting to disappoint you. The worst case is they feel unbridled resentment as you watch them rush out the door like there were a 70%-off sale at Barnes &amp; Noble.</p>
<p><strong>Why We Fall for It</strong><br />
Every developer I&#8217;ve talked to said the same thing: they went into management for the prestige, the money, pressure from their bosses or upper management, and not wanting to &#8220;stir the pot.&#8221;</p>
<p>Perhaps it&#8217;s the fact that the best developers I know are easy to get along with, good listeners, and generally pleasant to work with. Hence, when a manager or executive asks them to run a huge project they take it as a challenge and a compliment. It&#8217;s not until 10 months later when they&#8217;ve lost their ability to write a while loop that they realize they may have made a mistake.</p>
<p>If you find yourself in management and wish you were coding, don&#8217;t wait until you&#8217;re completely burned out and bitter; do yourself (and your company) a favor &#8211; and do it now. Get yourself back into the code jockey seat. If your current company won&#8217;t work with you, there are companies out there who will.</p>
<p>[tags]programming, management, promotions[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/06/27/why-good-developers-are-promoted-into-unhappiness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Attract Software Developers that Fit Your Company</title>
		<link>http://www.softwarebyrob.com/2007/04/09/how-to-attract-software-developers-fit-your-company/</link>
		<comments>http://www.softwarebyrob.com/2007/04/09/how-to-attract-software-developers-fit-your-company/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 09:12:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/04/09/how-to-attract-software-developers-fit-your-company/</guid>
		<description><![CDATA[I&#8217;ve worked for startups and stalwarts, small shops and large corporations, firms where software is the means to an end, and firms where it was an end in itself. After years of exploring what I love about building software I&#8217;ve realized that coding for a 17-person dot com is a far cry from building enterprise [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F04%2F09%2Fhow-to-attract-software-developers-fit-your-company%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F04%2F09%2Fhow-to-attract-software-developers-fit-your-company%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;ve worked for startups and stalwarts, small shops and large corporations, firms where software is the means to an end, and firms where it was an end in itself. After years of exploring what I love about building software I&#8217;ve realized that coding for a 17-person dot com is a far cry from building enterprise software for a 300-person credit card company. It only took me eight years to figure out why.</p>
<p>There are a myriad of articles on interviewing, evaluating, and hiring software developers, but a topic that&#8217;s rarely discussed is <em>how to attract software developers that fit your company&#8217;s environment</em>. With the current state of the software job market, it&#8217;s critical as a hirer that you determine not only what type of developers will be happy in your environment (your &#8220;developer demographic&#8221;), but how you can become more attractive to that particular slice of the market.</p>
<p><strong>Your Developer Demographic</strong><br />
As an example, IndyMac and Countrywide are large financial institutions with development offices in Los Angeles. They attract people looking for stable jobs with good benefits where they can code 9 to 5 and then go home and not think about it from 5 to 9. I envy people who do not grow bored with this environment; I really do. Life would be much, much simpler if I could handle it.</p>
<p>There are also tech startups that attract caffeine-junkies. Long hours with potentially large reward, and the prospect of building something really cool in a short amount of time that could make a difference in peoples&#8217; lives. Or, more likely, be relegated to the failed startup scrap heap. These companies should be looking for people who love using new technology, are typically younger, willing to take risks, and willing to shoot from the hip.</p>
<p>These may be extreme cases, but they illustrate the point: certain attitudes and personality traits play nicely with certain environments. Often, a developer who thrives in one environment will find that she slowly withers away in others.</p>
<p><strong>The Three Dimensions</strong><br />
To get more specific, there are three dimensions to a company that most affect the internal environment for a software developer. It&#8217;s critical that you know which of these your company falls into, and not only market to, but ensure you can retain developers who fit that demographic. The descriptions of the software developers who like to work at each corporate classification are generalized, but they serve as a guide to get you thinking about the personality of your ideal candidate.</p>
<p>Your company may not match exactly with one of the choices below each dimension, but do your best to categorize it. Many companies start off as one thing and transition to something very different in the first year or two.</p>
<p>&nbsp;</p>
<ol>
<li><strong>Size</strong>
<ul>
<li><strong>Small</strong> &#8211; Some small companies are startups, and some are 10-year old, profitable, mature businesses that make money hand over fist with 9 employees. Software developers who like small companies are typically social, they like the vibe of knowing everyone, going to lunch with the same people, and knowing that they contribute a great deal to the success or failure of the enterprise.</li>
<li><strong>Large</strong> &#8211; The bulk of corporate development is for larger companies. They tend to have big teams, lots of process, and decent-sized QA and Change Management teams. Software developers who like large companies tend to enjoy more process, like working on larger teams where they can either lead or be led, and enjoy the possibility for growth that comes with a large organization.</li>
</ul>
</li>
<li><strong>Chaos Level</strong>
<ul>
<li><strong>Stable</strong> &#8211; Stable companies tend to be, um&#8230;stable. They have good benefits, and employees can often get away with working 8 or 9 hour days. Developers who prefer stable companies are likely a little further along in their career, may have a family, like the consistency of coming in to the same office each day, and enjoy their time out of the office when they don&#8217;t have to think about software.</li>
<li><strong>Startup</strong> &#8211; Startups tend to be more risky with the possibility of more reward. The salary may not be as high as that of a stable company, but the stock options will be worth six-figures if you can get your bleeding-edge online calendar out the door before Google&#8217;s. Benefits tend to be spotty. The hours are long, but it&#8217;s more than worth it for developers who are passionate about technology (read: bring books about ASP.NET to the beach), love building software that matters, and enjoy the camaraderie of working on a team of people who share their interests.</li>
</ul>
</li>
<li><strong>Focus</strong>
<ul>
<li><strong>Software (or a technology that relies on software) </strong>- These companies rely on software for their main source of revenue, whether they sell it (Microsoft, Intuit), give it away (Google, Craigslist), or offer it on some type of &#8220;pay to play&#8221; basis (eBay, salesforce.com). Technology firms that rely on software are companies like Palm, <a href="https://www.facebook.com/pages/Jenzabar/76544579474">Jenzabar</a>, Apple, or the guys who make the fingerprint readers I keep seeing at data centers. Software may not be their main source of income, but they are technology companies and software is critical to their product. Software developers who prefer these types of companies enjoy being around other software people; they like the idea that technology is at the core of their company, and they love that they work on real products that people use. In addition, they relish the fact that software firms tend to live towards the cutting edge and are able to constantly upgrade their skills to the latest and greatest.</li>
<li><strong>Everything Else</strong> &#8211; These companies make up the majority of companies in the world; their main source of revenue is something other than software &#8211; credit cards, lawn furniture &#8211; you name it. &#8220;Everything else&#8221; companies use software to support their business: to track widgets, support their call center, and balance their books. The majority of corporate software jobs are working for companies under this umbrella. Software developers who enjoy this type of company like building applications to support accounting, management, and the people who produce or sell the company&#8217;s main product, and they are either very content to know they can go home at night and not think about developing software, or they go home at night and all they think about is they day they can leave the company and work for someone like Google.</li>
</ul>
</li>
</ol>
<p><strong>Your Company, Your Developer Demographic, Your Job Description</strong><br />
Before writing your job description think hard about where you fall in each of the dimensions. Then think twice as hard about the kind of developer who will be happy at your company. Don&#8217;t kid yourself; you can convince the 24 year-old tech hot-shot to work for your financial services company by offering him a huge salary, but he&#8217;ll be gone in 9 months because you&#8217;re using three-year old technology and developing boring (from his perspective), back-office software.</p>
<p>Once you&#8217;ve determined who will be happy at your company, <em>write your job description with that person in mind.</em></p>
<p>You&#8217;re a large company with great benefits? Spell it out in bullet points: plain, simple, and official. <em>Play up your stability.</em></p>
<p>You&#8217;re a small startup with no benefits? Use a casual tone and create excitement. <em>Make that 24-year old hot-shot be dying to work for you.</em></p>
<p>&nbsp;</p>
<p>Even if he has to pay for his own health care.</p>
<p><a href="http://digg.com/programming/How_to_Attract_Software_Developers_that_Fit_Your_Company" target="_blank">[Digg this]</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/04/09/how-to-attract-software-developers-fit-your-company/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deadlines: On Being a Professional Software Developer</title>
		<link>http://www.softwarebyrob.com/2007/04/04/deadlines-on-being-a-professional-software-developer/</link>
		<comments>http://www.softwarebyrob.com/2007/04/04/deadlines-on-being-a-professional-software-developer/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 11:02:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Becoming a Better Developer]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/04/04/deadlines-on-being-a-professional-software-developer/</guid>
		<description><![CDATA[When I was in college I was a professional comic book writer. After numerous submissions I had several stories accepted by three independent comic book companies, all slated for publication. I even received a $100 advance for one of the stories, with all of them paying royalties on the &#8220;back end,&#8221; meaning I&#8217;d probably wind [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F04%2F04%2Fdeadlines-on-being-a-professional-software-developer%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F04%2F04%2Fdeadlines-on-being-a-professional-software-developer%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>When I was in college I was a professional comic book writer. After numerous submissions I had several stories accepted by three independent comic book companies, all slated for publication.</p>
<p>I even received a $100 advance for one of the stories, with all of them paying royalties on the &#8220;back end,&#8221; meaning I&#8217;d probably wind up making $100 per story if I was lucky. And back then $100 was a lot of&#8230;no, let&#8217;s face it, even back then $100 was nothing. But I could call myself a professional comic book writer. <br /><br style="font-weight: bold;"><span style="font-weight: bold;"> On Being a Professional</span><br />Which is a joke, of course, because I wasn&#8217;t a professional. I was writing in a tiny bedroom, typically from 10 at night until 2 in the morning, cranking out a short script every week or two. Sure, I had honed my skills as a writer enough to match the myriad of others trying to make it, but I was not a professional writer. And I&#8217;ve had a hard time puting my finger on what it was that distinguished me from those whom I considered &#8220;legitimate&#8221; comic book writers. It wasn&#8217;t the fact that I worked out of a small apartment. Or that I wrote at night. </p>
<p><span style="font-style: italic;"> It was the fact that I didn&#8217;t consistently deliver under the pressure of deadlines. </span></p>
<p>I&#8217;m sure I&#8217;ll receive a few comments saying that a professional is someone who gets paid for what they do, or someone who does something as their main source of income, or someone who&#8217;s easy to work with, or someone who comments their code. Those <span style="font-style: italic;">are </span>some of the components of being a professional, but one of the most important and often overlooked pieces of being a professional is <span style="font-style: italic;">consistently delivering a usable product in the face of deadlines.</p>
<p></span><span style="font-weight: bold;">How Many Deadlines Must a Man Walk Down…</span><br />I knew at least two guys who were amazing comic book artists. Both drew as well as the books on the shelves, but neither could draw an entire 22-page comic in a month&#8230;and that&#8217;s what it takes to be a professional in that game. </p>
<p> I&#8217;m not saying if you miss a deadline you&#8217;re suddenly an amateur &#8211; the continuum is much less binary than it is <a href="http://en.wikipedia.org/wiki/Fuzzy_logic" target="_blank">fuzzy</a>. But during your career, your present job, or the past 6 months, how many deadlines have you hit? How many have you missed? </p>
<p> There are going to be extenuating circumstances. There are going to be times when a third party vendor flops and the project falls apart at the last minute. And there are going to be times when the deadline is set externally and you know from the outset you&#8217;ll never hit it. But if you find that there&#8217;s always a reason you aren&#8217;t hitting deadlines you have to start asking yourself: <span style="font-style: italic;">Is it you?</span> </p>
<p> I know that somewhere between <a href="http://www.amdsolutions.ziffdavis.com/article/The+Sad+Truth/185306_1.aspx" target="_blank">55</a> and <a href="http://www.itweek.co.uk/itweek/analysis/2171281/why-projects-fail" target="_blank">90</a> percent of software projects fail. Missing deadlines is easy; I could get my mom, who knows nothing about software development, to come in and miss project deadlines. Does the fact that she showed up and collected a check make her a professional developer? She&#8217;s easy to work with and comments her code.</p>
<p> So here is my question: during your career, your present job, or the past 6 months, how many deadlines have you hit and how many have you missed? </p>
<p> This isn&#8217;t a show of hands, just a gut check.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/04/04/deadlines-on-being-a-professional-software-developer/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>[My Reply] You Be the Manager: A Case Study of Unmotivated Developers</title>
		<link>http://www.softwarebyrob.com/2007/04/02/my-reply-you-be-the-manager-a-case-study-of-unmotivated-developers/</link>
		<comments>http://www.softwarebyrob.com/2007/04/02/my-reply-you-be-the-manager-a-case-study-of-unmotivated-developers/#comments</comments>
		<pubDate>Mon, 02 Apr 2007 06:59:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/04/02/my-reply-you-be-the-manager-a-case-study-of-unmotivated-developers/</guid>
		<description><![CDATA[On Tuesday I posted a You Be The Manager scenario about a real group of unmotivated software developers. My reply to the original author was sent several weeks ago, and in retrospect I wish I had included some of the creative thinking many of you offered in the comments. If you haven&#8217;t read them I [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F04%2F02%2Fmy-reply-you-be-the-manager-a-case-study-of-unmotivated-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F04%2F02%2Fmy-reply-you-be-the-manager-a-case-study-of-unmotivated-developers%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div>On Tuesday I posted a <a href="/archive/2007/03/27/You_Be_the_Manager_A_Case_Study_of_Unmotivated_Developers.aspx#comments" target="_blank">You Be The Manager</a> scenario about a real group of unmotivated software developers. My reply to the original author was sent several weeks ago, and in retrospect I wish I had included some of the creative thinking many of you offered in the comments. If you haven&#8217;t read them I suggest <a href="/archive/2007/03/27/You_Be_the_Manager_A_Case_Study_of_Unmotivated_Developers.aspx#comments" target="_blank">you do</a>; there are some exceptional insights into how to improve (or abandon) the situation. </p>
<p> I took a straight-on approach and offered suggestions for determining why these software developers are unmotivated, and how to start returning motivation to their dismal existence (I say dismal because spending 5 years on an ERP project sounds like the worst thing since hitting yourself in the head with a hammer).</p>
<p>If you&#8217;ve been a reader for any length of time you know I don&#8217;t condone working overtime as a general practice, but I&#8217;ve found that a couple times a year it&#8217;s necessary to work extra hours to hit a crucial deadline, and this is the approach I took in my response: that this project is in the final stretch and needs one last &#8220;push&#8221; for completion.</p>
<p>Here were the thoughts I offered the consultant faced with the scenario of the unmotivated software developers:   <span style="font-style: italic;"></p>
<p></span>&#8220;No one wants to fail. If the developers sensed     the project would not be completed on time they may have begun to mentally distance     themselves from it. Even if they supplied the deadline, did they     really believe they would hit it, or did they just spit out a date because     they were forced to?       <span style="font-style: italic;"><br /></span>
<ul style="font-style: italic;">
<li>If they believed in the deadline at the beginning and started feeling behind, it         surprises me that at least one of them did not start working extra         hours. If this is the case, the the company/department might be an &#8220;8 to 5&#8243; culture. My         immediate thought is that there are 1 or 2 leaders who set that pace         and, if they were not present, the others may be willing to work extra         hours to hit that deadline (assuming it was reasonable in the first place).</li>
<li>If they never believed the deadline, that&#8217;s a major problem. Why would they supply a deadline where they had no buy in? This rings of a lack of faith in their management, or their team&#8217;s ability to actually complete the work. After 5 years a lack of faith is not surprising, and it&#8217;s not out of the question that they simply made up a deadline to satisfy you.</li>
<li>       If they feel like they aren&#8217;t able to move forward because of political or       &#8220;people&#8221; issues, someone has to clear them out of the way, and fast.</li>
<li>Does the project sponsor have the respect of the developers? At a company I used to work for the CEO would stop in on a meeting every once in a while during a hard project, and explain why the project was so important to the success of the company. Having a high-level manager who the team respects stop by shows the team that this project has major visibility, and that failure will be noticed. Now, I am vehemently against motivating people through the promise of punishment, but if the team has no accountability and seems to be running on their own schedule then it&#8217;s quite possible they could use a little something to get them back on track. BTW &#8211; if there is no project sponsor that&#8217;s a major red flag and unmotivated developers are the least of your worries.&#8221;
<ul>         </ul>
</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/04/02/my-reply-you-be-the-manager-a-case-study-of-unmotivated-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You Be the Manager: A Case Study of Unmotivated Developers</title>
		<link>http://www.softwarebyrob.com/2007/03/27/you-be-the-manager-a-case-study-of-unmotivated-developers/</link>
		<comments>http://www.softwarebyrob.com/2007/03/27/you-be-the-manager-a-case-study-of-unmotivated-developers/#comments</comments>
		<pubDate>Tue, 27 Mar 2007 13:45:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/03/27/you-be-the-manager-a-case-study-of-unmotivated-developers/</guid>
		<description><![CDATA[An SbR reader contacted me looking for guidance on how to work with a group of un-motivated developers; his email is below (posted with permission). I will post my reply next Monday, after giving you a chance to weigh in on the situation. Q: &#8220;In the course of providing Change Management consulting services to an [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F03%2F27%2Fyou-be-the-manager-a-case-study-of-unmotivated-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F03%2F27%2Fyou-be-the-manager-a-case-study-of-unmotivated-developers%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>An SbR reader contacted me looking for guidance on how to work with a group of un-motivated developers; his email is below (posted with permission).</p>
<p>I will post my reply next Monday, after giving you a chance to weigh in on the situation.<br /> 
<p>   <strong>Q: </strong><em>&#8220;In   the course of providing Change Management consulting services to an owner   operated company, I got involved in trying to find out what was happening in   their IT department (4 Software Engineers). They are all on salary with full   benefits.</em> </p>
<p>   <em>The   IT Departments absolute priority is to insure the company’s current software   and network system is operational. In general the current company system only   requires minimal daily maintenance with periodic planned upgrades. Accordingly   the Software Developers are able to focus the majority of their time on   development of a new ERP software system.</em> </p>
<p>   <em>They   have been at the project for approximately 5 years. Design is complete and   development is underway. After much discussion and prodding I managed to get   them to produce a timeline to deployment versus completion. Deployment defined   as being able to switch from using the current system to the new system with a   minimum of equal functionality to the current system. The timeline is to a   specific date versus effort in months. They arrived at the deployment via   sophisticated process versus an educated guess so I believe it is realistic.   </em> </p>
<p>   <em>In   my view stakeholders must have a deployment date and developers need a   realistic deadline. We have our deployment date (set by the developers, not   stakeholders) but I suspect they are not committed to it. They start at 8:00   am on the dot and are out the door at 5:00 pm. Lunch and coffee breaks are   never missed. My concern is that they have been spoiled by not previously   having a definitive deployment date so it is expected to balk at   accountability.    </em> </p>
<p>   <em>My   instinct is to shut the project down but I also do not like to give up.</em></p>
<p><em>[I'm looking for] direction on how to motivate this group to want to take ownership and to rise   to the challenge of meeting the deployment date.&#8221;</em></p>
<p>If you were in his shoes, how would you handle this situation?<br /><em></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/03/27/you-be-the-manager-a-case-study-of-unmotivated-developers/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>A Survey to Determine if Your Developers Are Happy</title>
		<link>http://www.softwarebyrob.com/2007/02/09/a-survey-to-determine-if-your-developers-are-happy/</link>
		<comments>http://www.softwarebyrob.com/2007/02/09/a-survey-to-determine-if-your-developers-are-happy/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 08:17:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2007/02/09/a-survey-to-determine-if-your-developers-are-happy/</guid>
		<description><![CDATA[After publishing Nine Things Developers Want More Than Money late last year, I received several requests for something that could provide more specific information than the 1-9 score on Rob&#8217;s Criteria for Keeping Your Developers Happy. In other words, managers want to know which of the nine areas to focus on, and most who wrote [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F02%2F09%2Fa-survey-to-determine-if-your-developers-are-happy%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2007%2F02%2F09%2Fa-survey-to-determine-if-your-developers-are-happy%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>After publishing <span style="font-style: italic;"><a href="/articles/Nine_Things_Developers_Want_More_Than_Money.aspx" target="_blank">Nine Things Developers Want More Than Money</a></span> late last year, I received several requests for something that could provide more specific information than the 1-9 score on <span style="font-style: italic;">Rob&#8217;s Criteria for Keeping Your Developers Happy</span>. In other words, managers want to know <span style="font-style: italic;">which </span>of the nine areas to focus on, and most who wrote suggested I create a survey they could give anonymously to their developers.</p>
<p>In response, I&#8217;ve created a <a href="/popups/Nine_Things_Developers_Want_More_Than_Money_Survey.html" target="_blank">29-question survey</a> that covers all nine of <span style="font-style: italic;">Rob&#8217;s Criteria</span>. I built it in HTML so you can print it out and distribute paper copies, or write code to place the responses in a database for easier analysis. If you wind up using a database I&#8217;d appreciate if you would send me a copy of your code so I can post it here.</p>
<p>The survey does not have a norm since it has not been administered to anyone. As a result, determining the results will be up to your interpretation. Hopefully that&#8217;s not too difficult given the nature of the questions.</p>
<p>If you have other questions you&#8217;d like included, or stories to share about survey results, please post them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2007/02/09/a-survey-to-determine-if-your-developers-are-happy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An Open Letter to the Software Managers of the World</title>
		<link>http://www.softwarebyrob.com/2006/12/06/open-letter-to-software-managers-of-the-world/</link>
		<comments>http://www.softwarebyrob.com/2006/12/06/open-letter-to-software-managers-of-the-world/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 10:01:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/12/06/open-letter-to-software-managers-of-the-world/</guid>
		<description><![CDATA[Dear Software Managers of the World: We, the Software Developers of the World, realize that our two factions have had many disagreements over the years. Through this letter we would like to extend our hand in a gesture of reconciliation. This letter contains two lists: the first list describes responsibilities we are willing to accept [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F12%2F06%2Fopen-letter-to-software-managers-of-the-world%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F12%2F06%2Fopen-letter-to-software-managers-of-the-world%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Dear <span style="font-style: italic;">Software Managers of the World</span>:
<p>We, the <span style="font-style: italic;">Software Developers of the World</span>, realize that our two factions have  had many disagreements over the years. Through this letter we would like to  extend our hand in a gesture of reconciliation.</p>
<p>This letter contains two lists: the first list describes responsibilities we are  willing to accept wholeheartedly, assuming you are willing to accept the second list with an equal amount of zeal and commitment. These lists are not intended as indictments of either side, rather  glimpses of an ideal world where developers and managers work together in  harmony.</p>
<p>We, the <span style="font-style: italic;">Software Developers of the World</span>, agree to the following: </p>
<ol>
<li>We will do what it takes to get the job done without being asked, including  working extra hours (as long as it does not violate clause 1 in the section  below).  </li>
<li>We will not complain when we are assigned boring tasks, <a title="bad problems" href="/archive/2006/11/17/Single_Important_Rule_Retaining_Software_Developers.aspx" target="blank_">bad problems</a>, or have to maintain someone else&#8217;s code (as long  as it does not violate clauses 4 or 5 in the section below).  </li>
<li>We will bring issues to your attention constructively and with proposed  solutions.  </li>
<li>We will seek to understand a decision before questioning it.  </li>
<li>We will build the best software we are able to.  </li>
<li>We will be loyal to the company and our team.  </li>
<li>We will be passionate about the software we build.  </li>
<li>We will be available when you really need us.  </li>
<li>We will fully document our code and designs.  </li>
<li>We will happily coach and mentor new developers.  </li>
<li>We will tell our friends how cool it is to work at our company.</li>
</ol>
<p>In turn we ask that you, the <span style="font-style: italic;">Software Managers of the World</span>, agree to the  following:</p>
<ol>
<li>You understand that &#8220;crunch time&#8221; is an <em>unexpected</em> part of software  development. Unless we have substantial equity in  the company, crunch time will not exceed 3 weeks during any 6 month period.  </li>
<li>You will give us powerful, best-of-breed PCs, huge hard drives, large  monitors, and the latest development software.  </li>
<li>You will listen and take action when we constructively bring a problem to  your attention.  </li>
<li>You will ensure that at least 80% of our time is spent on <a title="good problems" href="/archive/2006/11/17/Single_Important_Rule_Retaining_Software_Developers.aspx" target="blank_">good problems</a>.  </li>
<li>If you plan to call us when software breaks, we will be given time to  refactor and stabilize it as needed.  </li>
<li>You will not ask us to serve as technical guides for highly paid contractors  only to be held responsible when their code single-handedly brings our  operations to a grinding halt.  </li>
<li>If marketing is allowed to set our deadlines based on their knowledge of  software projects, we will be allowed to set their budget and/or revenue  expectations based on our knowledge of marketing.  </li>
<li>You will not ask us to compromise a solid, stable, and maintainable design  in order to meet an unrealistic deadline.  </li>
<li>You will <a title="communicate expectations" href="/articles/Why_Expectations_Can_Kill_You.aspx" target="blank_">communicate expectations</a> to to the stakeholders. You will  ensure that before we begin building an application, all stakeholders spend  ample time reviewing and understanding the specification.  </li>
<li>You will ensure that as new requirements arise we will be given the  corresponding amount of additional development time.  </li>
<li>You will pay attention to your people more than your bottom line. </li>
<li>You will make our company a cool company to work at so we&#8217;re not lying to  our friends.</li>
</ol>
<p>We hope you take these items under consideration and we look forward to how these changes will  positively affect our relationship as we continue to work together to build  software for many years to come. </p>
<p>Sincerely, </p>
<p><span style="font-style: italic;">The Software Developers of the World</span></p>
<p> <a href="http://digg.com/programming/An_Open_Letter_to_the_Software_Managers_of_the_World" target="_blank"><img src="http://www.softwarebyrob.com/images/digg.gif" alt="Digg this" border="0">Digg this</a>  </p>
<p>If you liked this post you&#8217;ll also like <a href="/articles/Nine_Things_Developers_Want_More_Than_Money.aspx" target="_blank">Nine Things Developers Want More Than Money</a>. </p>
<p> <font size="2">Thanks to </font><font size="2"><a href="http://www.miketaber.net/" target="_blank">Mike Taber</a>, </font><font size="2"><a href="http://www.paradux.com/" target="_blank">Andrew Black</a>, </font><font size="2">Jeremy Lukensmeyer, Dave Standring, and <a href="http://www.axisebusiness.com/adnano/" target="_blank">Adnan Masood</a> for their input. Special thanks to <a href="http://www.miketaber.net/" target="_blank">Mike Taber</a> and Dave Standring for reading drafts of this post.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/12/06/open-letter-to-software-managers-of-the-world/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Top 20 Programming Lessons I&#8217;ve Learned in 20 Years</title>
		<link>http://www.softwarebyrob.com/2006/11/30/top-20-programming-lessons-learned-in-20-years/</link>
		<comments>http://www.softwarebyrob.com/2006/11/30/top-20-programming-lessons-learned-in-20-years/#comments</comments>
		<pubDate>Thu, 30 Nov 2006 10:39:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Becoming a Better Developer]]></category>
		<category><![CDATA[Cool News, Links & Reviews]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/11/30/top-20-programming-lessons-learned-in-20-years/</guid>
		<description><![CDATA[JD over at DCS Media published an insightful post titled Top 20 Programming Lessons I&#8217;ve Learned in 20 Years. A few highlights: Always backup your code You are not the best at programming. Live with it. Simplify the algorithm Reminisce about your code No project is ever simple Software is never finished]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F11%2F30%2Ftop-20-programming-lessons-learned-in-20-years%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F11%2F30%2Ftop-20-programming-lessons-learned-in-20-years%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>JD over at DCS Media published an insightful post titled <span style="font-style: italic;"><a href="http://www.dcs-media.com/desdev/Detail.aspx?ArticleId=578" target="_blank">Top 20 Programming Lessons I&#8217;ve Learned in 20 Years</a></span>. A few highlights:
<ul>
<li>Always backup your code</li>
<li>You are not the best at programming. Live with it.</li>
<li>Simplify the algorithm</li>
<li>Reminisce about your code</li>
<li>No project is ever simple</li>
<li>Software is never finished</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/11/30/top-20-programming-lessons-learned-in-20-years/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Single Most Important Rule for Retaining Software Developers</title>
		<link>http://www.softwarebyrob.com/2006/11/17/single-important-rule-retaining-software-developers/</link>
		<comments>http://www.softwarebyrob.com/2006/11/17/single-important-rule-retaining-software-developers/#comments</comments>
		<pubDate>Fri, 17 Nov 2006 10:39:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/11/17/single-important-rule-retaining-software-developers/</guid>
		<description><![CDATA[There are good problems and bad problems when developing software. A good problem is designing an elegant caching mechanism for your configuration variables, or determining how to architect your service oriented architecture so it doesn&#8217;t look like the New York subway system. A bad problem is figuring out how to re-architect your code to work [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F11%2F17%2Fsingle-important-rule-retaining-software-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F11%2F17%2Fsingle-important-rule-retaining-software-developers%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>There are good problems and bad problems when developing software.</p>
<p>A good problem is designing an elegant caching mechanism for your  configuration variables, or determining how to architect your service oriented  architecture so it doesn&#8217;t look like the New York subway system. </p>
<p>A bad problem is figuring out how to re-architect your code to work with a  partner whose API goes down twice a day, spending three hours trying to get your  code into source control, or filling out ten minutes of paperwork for a five  minute code change.</p>
<p>Paul Graham makes mention of this in <a title="Taste For Makers" href="http://www.paulgraham.com/taste.html" target="blank_"><em>Taste for  Makers</em></a>: </p>
<p><span style="font-style: italic;">&#8220;Not every kind of hard is good. There is good pain and bad pain. You want  the kind of pain you get from going running, not the kind you get from stepping  on a nail. A difficult problem could be good for a designer, but a fickle client  or unreliable materials would not be.&#8221;</span> </p>
<p>And in <em><a title="Great Hackers" href="http://www.paulgraham.com/gh.html" target="blank_">Great Hackers</a></em>: </p>
<p><span style="font-style: italic;">&#8220;One of the worst kinds of projects is writing an interface to a piece of  software that&#8217;s full of bugs&#8230;you don&#8217;t learn anything from [doing this]. Writing a compiler is  interesting because it teaches you what a compiler is. But writing an interface  to a buggy piece of software doesn&#8217;t teach you anything, because the bugs are  random&#8230;Working on nasty little problems makes you stupid.&#8221;</span></p>
<p>Bad problems are not interesting, not fun, and they teach you nothing. They create frustration and, given enough of them, will eventually cause  burnout.</p>
<p>I&#8217;ve seen a string of bad problems last for months, and cause developer after  developer to leave a company in search of more interesting work. Bad problems  wreak havoc on your ability to meet <a title="Rob's Criteria for Keeping Your Developers Happy" href="/articles/Nine_Things_Developers_Want_More_Than_Money.aspx" target="blank_"><em>Rob&#8217;s Criteria for Keeping Your Developers Happy</em></a>.  </p>
<p>Look at any large financial institution, government agency, and  [<span style="font-style: italic;">insert name of large organization that considers developers to be a cog in  their wheel here</span>]. I&#8217;ve worked at a few of these companies, and often hear developers who are out of work joking: &#8220;If things get bad enough I could  always go work for Company X.&#8221; Ouch&#8230;tell me that doesn&#8217;t hurt your ability to  find good people.</p>
<p>On the flip side, look at Google, Fog Creek Software, and  SourceGear. I&#8217;ve never worked at these companies, but evidence is strong that  good problems are at the forefront of their agendas. And by some shocking  coincidence they get a bazillion resumes for every open position.</p>
<p>A steady stream of good problems is the foundation for keeping your  developers happy. Minimizing bad problems and maximizing good problems should  be every development manager&#8217;s #1 goal.</p>
<p>  <a href="http://digg.com/programming/The_Single_Most_Important_Rule_for_Retaining_Software_Developers" target="pop">[Digg this post]</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/11/17/single-important-rule-retaining-software-developers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New Article: Nine Things Developers Want More Than Money</title>
		<link>http://www.softwarebyrob.com/2006/11/01/new-article-nine-things-developers-want-more-than-money/</link>
		<comments>http://www.softwarebyrob.com/2006/11/01/new-article-nine-things-developers-want-more-than-money/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 08:56:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Becoming a Better Developer]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/11/01/new-article-nine-things-developers-want-more-than-money/</guid>
		<description><![CDATA[From my new article Nine Things Developers Want More Than Money: &#8220;If you want to collect a paycheck for 25 years and retire with a gold watch and a pension then go for companies that have the hygiene factors nailed. Stroll in at 8, head for the door at 4:59, and count the years until [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F11%2F01%2Fnew-article-nine-things-developers-want-more-than-money%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F11%2F01%2Fnew-article-nine-things-developers-want-more-than-money%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>From my new article <span style="font-style: italic;"><a href="/articles/Nine_Things_Developers_Want_More_Than_Money.aspx">Nine Things Developers Want More Than Money</a></span>:</p>
<p>&#8220;If you want to collect a paycheck for 25 years and retire with a gold watch and a pension then go for companies that have the hygiene factors nailed. Stroll in at 8, head for the door at 4:59, and count the years until you&#8217;re kicking up your feet on a beach bar in Costa Rica.</p>
<p>But if you&#8217;re reading this, odds are that you aren&#8217;t the kind of person who never thinks about code after 5:01; you&#8217;re more likely to have a collection of DVDs that come up in an Amazon search for &#8220;Silicon Valley.&#8221; You&#8217;re probably one of those people who <span style="font-style: italic;">needs </span>motivation factors or you go crazy with restlessness, and when the motivation factors are in place you&#8217;ll work ridiculous hours for low pay just because it&#8217;s so damn fun.</p>
<p>I talked to a dozen colleagues and pored over my own experiences to arrive at this list of nine software development motivation factors &#8211; Rob&#8217;s Criteria for Keeping Your Developers Happy.&#8221;</p>
<p>Read the complete article <a href="/articles/Nine_Things_Developers_Want_More_Than_Money.aspx">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/11/01/new-article-nine-things-developers-want-more-than-money/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nine Things Developers Want More Than Money</title>
		<link>http://www.softwarebyrob.com/2006/10/31/nine-things-developers-want-more-than-money/</link>
		<comments>http://www.softwarebyrob.com/2006/10/31/nine-things-developers-want-more-than-money/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 15:42:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/10/31/nine-things-developers-want-more-than-money/</guid>
		<description><![CDATA[This article has been translated into: Belorussian. Many of the developers I know have been programming since they were in junior high. Whether it was building text-based games on an Apple IIe or creating a high school football roster app in Visual Basic, it&#8217;s something they did for the challenge, for the love of learning [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F10%2F31%2Fnine-things-developers-want-more-than-money%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F10%2F31%2Fnine-things-developers-want-more-than-money%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>This article has been translated into: <a href="http://webhostingrating.com/libs/more-than-money-be">Belorussian</a>.</p>
<p>Many of the developers I know have been programming since they were in junior high. Whether it was building text-based games on an Apple IIe or creating a high school football roster app in Visual Basic, it&#8217;s something they did for the challenge, for the love of learning new things and, oh yes, for the ladies. Ladies love a man who can speak BASIC to his Apple.</p>
<p><img class="left" src="http://www.softwarebyrob.com/images/programming.jpg" border="0" alt="Code" /></p>
<p>College graduates face a sad reality when they leave the protective womb of a university and have to get their first real job. Many of my friends found jobs paying around $25k out of school, and were amazed that the starting engineering and computer science salaries were nearly double that. But the majority of the engineers in my class didn&#8217;t become engineers for the money; we did it because it touched on a deep inner yearning to tinker and impress their friends. And did I mention the ladies?</p>
<p>Money is a motivating factor for most of us, but assuming comparable pay, what is it that makes some companies attract and retain developers while others churn through them like toilet paper?</p>
<p><span style="font-weight: bold;">Hygiene and Motivation</span><br />
In the 1950s a researcher named <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FMotivation-Work-Frederick-Herzberg%2Fdp%2F156000634X%2Fsr%3D8-1%2Fqid%3D1162593849%3Fie%3DUTF8%26s%3Dbooks&amp;tag=softwarbyrob-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">Frederick Herzberg</a> studied 200 engineers and accountants in the US. He asked them a few simple questions and came up with what is one of the most widely-accepted theories on job satisfaction called <a title="Two Factor Theory" href="http://www.12manage.com/methods_herzberg_two_factor_theory.html" target="blank_">Two Factor Theory</a>.</p>
<p>His theory breaks job satisfaction into two factors:</p>
<ul>
<li><span style="font-style: italic;">hygiene factors</span> such as working conditions, quality of supervision, salary, safety, and company policies</li>
<li><span style="font-style: italic;">motivation factors</span> such as achievement, recognition, responsibility, the work itself, personal growth, and advancement</li>
</ul>
<p>Hygiene factors are necessary to ensure employees don&#8217;t become dissatisfied, but they don&#8217;t contribute to higher levels of motivation. Motivation factors are what create motivation and job satisfaction by fulfilling a person&#8217;s need for meaning and personal growth.</p>
<p>Think of a large financial company like Countrywide or IndyMac. Although I&#8217;ve never worked for either, the stories I&#8217;ve heard indicate the hygiene factors are well taken care of: working conditions are good, supervision is reasonable, salaries are decent, they have good benefits, etc&#8230;</p>
<p>However, the motivation factors are, shall we say, incognito. As Herzberg noticed, this scenario leads to employees viewing the job as little more than a paycheck, which is probably all right for companies like Countrywide and IndyMac.</p>
<p><img class="right" src="http://www.softwarebyrob.com/images/football.jpg" border="0" alt="Football" /></p>
<p>Take the flip side: a tiny startup in a dingy office with no windows, crappy benefits, little supervision (because the CEO&#8217;s on the road making sales), and no company policies (because the CEO&#8217;s on the road making sales). But the constant rush of learning, being responsible for the company&#8217;s success or failure (almost single-handedly at times), and believing in the company&#8217;s future growth makes this job much more desirable for many developers.</p>
<p>One of my early programming jobs was for a web consulting startup during the dot-com boom. There were 7 of us (we grew to 17 during the height of the boom) shooting each other with water pistols, throwing Nerf footballs around the office, and cranking out insane amounts of caffeine-driven code. We learned a new language every project and were always on the cutting edge.</p>
<p>I remember thinking that a company across town could have offered me a $15,000 dollar raise and I wouldn&#8217;t have taken it. The motivation factors were overpowering.</p>
<p>On the flip side, the benefits were terrible, the office was a series of tiny cubicles, gray from years of neglect &#8211; Smurf-blue network cables hung from the ceiling, and supervision was&#8230;well&#8230;non-existent. And although hygiene factors were lacking, developers flocked to work for this company and only one left while I was there. She was interested in a more stable work environment and better benefits, and went to work for a large financial institution much like IndyMac.<span style="color: #ff0000;"> </span></p>
<p><span style="font-weight: bold;">Rob&#8217;s Criteria for Keeping Your Developers Happy</span><br />
If you want to collect a paycheck for 25 years and retire with a gold watch and a pension then go for companies that have the hygiene factors nailed. Stroll in at 8, head for the door at 4:59, and count the years until you&#8217;re kicking up your feet on a beach bar in Costa Rica.</p>
<p><img class="left" src="http://www.softwarebyrob.com/images/building.jpg" border="0" alt="Big Building" /></p>
<p>But if you&#8217;re reading this, odds are that you aren&#8217;t the kind of person who never thinks about code after 5:01; you&#8217;re more likely to have a collection of DVDs that come up in an <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Furl%3Dsearch-alias%253Daps%26field-keywords%3Dsilicon%2Bvalley%26Go.x%3D1%26Go.y%3D11&amp;tag=softwarbyrob-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325" target="_blank">Amazon search for &#8220;Silicon Valley.&#8221;</a> You&#8217;re probably one of those people who <span style="font-style: italic;">needs</span> motivation factors or you go crazy with restlessness, and when the motivation factors are in place you&#8217;ll work ridiculous hours for low pay just because it&#8217;s so damn fun.</p>
<p>I talked to a dozen colleagues and pored over my own experiences to arrive at this list of nine software development motivation factors &#8211; <span style="font-style: italic;">Rob&#8217;s Criteria for Keeping Your Developers Happy</span>.</p>
<p>There&#8217;s only one rule when determining your score: your vote doesn&#8217;t count unless you&#8217;re a developer. If you&#8217;re not in the trenches writing code then forward this article to someone who does and ask for their opinion. In addition to keeping management from making an unfair assessment, my greater hope is that this <span style="font-style: italic;">inspires conversation </span>and forces management and developers to talk about these issues so we can get them out in the open.</p>
<p>Without further ado, here they are:</p>
<p><span><strong>1. Being Set Up to Succeed</strong><br />
It&#8217;s a sad reality, but most software projects are set up to fail. Every developer has their horror stories; the &#8220;anti-patterns&#8221; of software project management. </span><span>I&#8217;ve seen an architect given documentation for a legacy system that he pored over for week while designing a new interface for the product. After the design was complete he found out that the documentation was three years old and didn&#8217;t reflect several major changes the system.</span></p>
<p>I&#8217;ve spent hours preparing a detailed technical estimate only to be told that the real deadline, already set by product development, gives me half the time I need.</p>
<p>Realistic deadlines are a huge part of being set up to succeed. Developers want to build software that not only works, but is maintainable; something they can take pride in. This is not in-line with product development&#8217;s goals, which are for developers to build software that works, and nothing more.</p>
<p>The first thing to go when time is tight is quality and maintainability. Being forced to build crap is one of the worst things you can do to a craftsman. Delivering a project on-time but knowing it&#8217;s a piece of crap feels a heck of a lot like failure to someone who takes pride in what they build.<br />
<img class="right" src="http://www.softwarebyrob.com/images/wheat.jpg" border="0" alt="Wheat" /><br />
It&#8217;s critical to have buy-in to do things the right way, and not just the quick way. As one developer I talked to put it &#8220;Quality is as important as feature count and budget.&#8221;</p>
<p>Schedule is not the only way a project can be set up to fail, but it is the most common. Others include: being forced to use cheap tools (be it software or hardware), working with a partner who doesn&#8217;t deliver, bad project management (see #2, below), changing scope, and <a title="unspoken expectations" href="../../articles/Why_Expectations_Can_Kill_You.aspx" target="blank_">unspoken expectations</a>, among others.</p>
<p><span style="font-weight: bold;">2. Having Excellent Management<br />
</span>Excellent management, both for projects and people, is a must-have motivation factor. This means no micro-managing, the encouragement of independent thinking, knowing what it takes to build quality software, quick decision making, and a willingness to take a bullet for the team when product development tries to shorten the schedule</p>
<p>These are the traits of an amazing software manager; the traits of a manager whose team would bathe in boiling oil to defend her, and work all-nighters to prove her right. When a manager takes bullets for the team, good developers tend to return the favor and then some. It creates an almost cult-ish loyalty, and the results are not only motivated developers, but insanely good software.</p>
<p><strong>3. Learning New Things</strong><br />
Behavioral research indicates we&#8217;re happiest when we&#8217;re learning new skills or challenging old ones. A <a title="recent article" href="http://money.cnn.com/magazines/moneymag/moneymag_archive/2006/08/01/8382225/index.htm" target="blank_">recent article</a> cites a study by two University of Columbia researchers suggesting that workers would be happy to forgo as much as a 20% raise if it meant a job with more variety or one that required more skill. This research suggests that we are willing to be paid less for work that&#8217;s interesting, fun, and teaches us new skills.</p>
<p>This is why companies using Ruby can find experienced programmers willing to work for less than their typical salaries.<span style="color: #ff0000;"> </span>The learning factor is huge when it comes to negotiating compensation.<br />
<strong> </strong></p>
<p><strong><span style="font-weight: normal;">Every developer I know loves playing with flashy new technologies. It was Perl and HTML in the mid-90s, ASP, PHP and Java in the late-90s, ASP.NET and XML a few years ago, and today it&#8217;s AJAX and Ruby (and in some circles ASP.NET 2.0). Give someone a chance to use these toys and they&#8217;ll not only be able to impress their friends, but fulfill that piece inside of them that needs to learn.</span></strong></p>
<p><strong><span style="font-weight: normal;">Keep a developer learning and they&#8217;ll be happy working in a windowless basement eating stale food pushed through a slot in the door. And they&#8217;ll never ask for a raise.<br />
</span></strong></p>
<p><strong>4. Exercising Creativity and Solving the Right Kind of Problems</strong><br />
Developers love a challenge. Without them we get bored, our minds wander, we balance our checkbook, check our email, hit Digg and Slashdot, read a few blogs, hit the water cooler, and see if any of our friends are online so we can once and for all settle the debate surrounding your uncle, the IDisposable interface, and that piece of toast shaped like the Virgin Mary.</p>
<p><img class="left" src="http://www.softwarebyrob.com/images/droplets.jpg" border="0" alt="Droplets" /></p>
<p>I&#8217;ve watched developers on multiple occasions stay up until sunrise to solve a technical problem <span style="font-style: italic;">without being asked and without extra pay</span>. The best developers are addicted to problem solving. Just drop a Sudoku in the middle of a group and watch them attack it.</p>
<p>Faced with the right type of challenge many developers will not stop until it&#8217;s fixed, especially if it requires a particularly creative solution. Faced with the wrong type of challenge and they&#8217;re back on instant messenger describing the toast.</p>
<p>The right type of challenge is a technical challenge that teaches a new skill, preferably one everyone&#8217;s talking about. One example could be: &#8220;Consume these five RSS feeds, aggregate the data, and display the headlines on a web page&#8230;and figure out how to use AJAX to make it cool.&#8221;</p>
<p>The wrong types of challenges are things like: &#8220;Fix that other guy&#8217;s code. You know, the one we didn&#8217;t fire because we were afraid he might cause problems. Well, he wrote a really crappy system and now we need to fix it and make it high-quality and maintainable. Oh, and you have until tomorrow.&#8221;</p>
<p>If your business doesn&#8217;t provide challenging work to developers, figure out how you can start. If there is no chance you&#8217;ll ever be able to provide challenging work, find developers who are into hygiene factors, because developers who need motivation factors won&#8217;t stay long.<br />
<span style="font-weight: bold;"><br />
</span><span style="font-weight: bold;">5. Having a Voice</span><br />
Developers are in the trenches, and they&#8217;re the first ones to know when a system or process is not working. One developer I spoke with told me:</p>
<p>&#8220;[I want] someone to listen to my problems and actually take them seriously. I&#8217;ve worked at a few places where more RAM, more hard disk space, or faster/dual CPUs were simply not a priority for the company, but it was incredibly aggravating to the point of impeding my work. At one place I worked, every time I wanted to compile the software I had to clear all my temporary files because I needed more disk space. Talk about asinine. Being forced to work using outdated technology is really frustrating.&#8221;<br />
<img class="right" src="http://www.softwarebyrob.com/images/speaker.jpg" border="0" alt="Speaker" /></p>
<p>When a developer speaks, someone should listen. When several developers are saying the same thing, someone should listen and act&#8230;quickly.</p>
<p><span style="font-weight: bold;">6. Being Recognized for Hard Work</span><br />
As engineers we love building things that impress ourselves and our friends. At least the ones who realize how hard it is to write a Perl compiler. From scratch. In FORTRAN. On a Vic 20.</p>
<p>Building something great is fun, but it&#8217;s much more fun when someone&#8217;s there to pat you on the back, throw you a party, sing your praises, or buy you a steak dinner. Most developers enjoy hearing praise and receiving recognition for hard work, but even the ones who don&#8217;t need it are somehow soured when they don&#8217;t receive it (or worse yet, someone else receives recognition for your work).</p>
<p>Recognition is one of Herzberg&#8217;s core motivation factors and it applies to software developers as much as the engineers originally interviewed.</p>
<p><span style="font-weight: bold;">7. Building Something that Matters</span><br />
Even though we&#8217;re not medics in Bosnia or food carriers in Sudan, most people want to feel like we&#8217;re somehow doing our part to make the world a better place, both technologically and socially. Some of us might <span style="font-style: italic;">think</span> we do it just for the sake of technology, but in the back of our minds we see ourselves as part of a grand scheme.</p>
<p>For instance, a friend of mine works for a financial company and cherishes every time they launch a product that helps the under-served financial community.</p>
<p>An Albertsons <a href="http://www.advanceware.net/">inventory software</a> developer enjoys coming to work every day because his work ensures, via complex supply and demand algorithms, that the baby cereals are always available on the shelves.</p>
<p>Building something that matters makes an L.A. Times software engineer ecstatic that the trucks are now saving over 30% of their mileage and fuel costs due to his shortest path finding software implementation for newspaper delivery.</p>
<p>On the other hand, writing an interface to a buggy API that&#8217;ll be used a total of 15 times in the next year doesn&#8217;t seem like it matters much.</p>
<p>Copying and pasting an entire application and changing a bunch of labels isn&#8217;t as exciting as it might sound.</p>
<p>And hacking in a few more case statements in a ridiculously complex stored procedure in order to service yet another customer without creating a proper data structure somehow doesn&#8217;t seem to fulfill that part of us that wants to build something that matters.</p>
<p><img class="right" src="http://www.softwarebyrob.com/images/library.jpg" border="0" alt="Library" /></p>
<p><span style="font-weight: bold;">8. Building Software without an Act of Congress</span><br />
I was a contractor for three years starting in 2001, and during that time I built a ton of web applications. Since much of my development was off-site I became accustomed to writing software really quickly once we knew what to build. Another developer and I built insane amounts of software over the course of two years.</p>
<p>When I got my next full-time job it felt like I was dragging 50-pound weights. For every page I wanted to build I had to call a meeting with six people. Any change to the database required three approvals. It was nuts, and applications took 5x longer to build. Talk about frustrating.</p>
<p>The authority to make project decisions without calling a meeting is <span style="font-style: italic;">huge</span>.</p>
<p><span style="font-weight: bold;">9. Having Few Legacy Constraints</span><br />
No one likes developing against buggy interfaces, crappy code, and poorly-designed data models. Too many legacy constraints kill creativity, require an act of congress to modify, and generally sucks the fun out of building software (see several of the previous points for why this is bad).</p>
<p>If you have gobs of legacy liability, try to figure out a way to minimize its impact on future development. If you can&#8217;t, look for people who value hygiene factors, because motivation factor developers are not going to maintain the same poor-quality applications for very long.</p>
<p><span style="font-weight: bold;">Determining Your Score</span><br />
Let&#8217;s face it, the bar has been set pretty low when it comes to motivating developers. How many companies can you think of that would score even as high as a 3?</p>
<p>Since this test hasn&#8217;t been administered to companies across the globe there&#8217;s no basis for comparison, but that&#8217;s where you come in. I&#8217;d like to do an informal survey so we can get an idea of how things are in the real world. <span>Please post your company&#8217;s score in the comments (you don&#8217;t have to post the company name).<br />
</span></p>
<p>Most large companies I can think of would be lucky to score a 1. Google would probably score an 8 or a 9.</p>
<p><span><span style="font-weight: bold;">Wrap Up</span></span><span><span><br />
If you&#8217;re a manager, when was the last time you asked your developers about these issues? If you&#8217;re a developer, when was the last time you respectfully raised one of these issues, providing examples and a possible solution?</span><br />
</span><span>If the answer is &#8220;a long time ago&#8221; then you have some work to do. Send this article to a few of your colleagues and <span style="font-style: italic;">start discussing how to enact change</span>.</span></p>
<p><!-- DIGG --><a href="http://digg.com/programming/Nine_Things_Developers_Want_More_Than_Money" target="_blank"><img src="http://www.softwarebyrob.com/images/digg.gif" border="0" alt="add to Digg" />Digg this</a> &#8211; <!-- REDDIT--><a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.softwarebyrob.com%2Farticles%2FNine_Things_Developers_Want_More_Than_Money.aspx&amp;title=Software%20by%20Rob%20%3A%20Nine%20Things%20Developers%20Want%20More%20Than%20Money" target="_blank"><img src="http://www.softwarebyrob.com/images/reddit.gif" border="0" alt="add to Reddit" />Reddit</a> &#8211; <!-- DEL.ICIO.US --><a href="http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http://www.softwarebyrob.com/articles/Nine_Things_Developers_Want_More_Than_Money.aspx&amp;title=Nine%20Things%20Developers%20Want%20More%20Than%20Money" target="_blank"><img src="http://www.softwarebyrob.com/images/delicious.gif" border="0" alt="add to del.icio.us" />del.icio.us</a><!-- FURL --></p>
<p>If you liked this article you&#8217;ll also like my article <a href="/articles/Personality_Traits_of_the_Best_Software_Developers.aspx">Personality Traits of the Best Software Developers</a>.</p>
<p><span style="font-size: x-small;"><br />
Thanks to Jeremy Lukensmeyer, Curtis Fields, Rick Kopitzke, <a href="http://www.axisebusiness.com/adnano/" target="_blank">Adnan Masood</a>, <a title="Mike Taber" href="http://www.miketaber.net/" target="blank_">Mike Taber</a>, and a few others for their input into this article.</span></p>
<p><span style="font-size: x-small;">Special thanks to <a title="Mike Taber" href="http://www.miketaber.net/" target="blank_">Mike Taber</a></span><span style="font-size: x-small;"> for reading a draft of this article.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/10/31/nine-things-developers-want-more-than-money/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>Becoming a Better Developer Part 10: What Do Your Colleagues Think of You?</title>
		<link>http://www.softwarebyrob.com/2006/10/19/becoming-better-developer-what-your-colleages-think-you/</link>
		<comments>http://www.softwarebyrob.com/2006/10/19/becoming-better-developer-what-your-colleages-think-you/#comments</comments>
		<pubDate>Thu, 19 Oct 2006 17:54:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Becoming a Better Developer]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/10/19/becoming-better-developer-what-your-colleages-think-you/</guid>
		<description><![CDATA[This is part of an ongoing series centered on becoming a better software developer. For other posts in the series, see the Becoming a Better Developer heading in the right navigation.&#8211; In the book Joy at Work, the former CEO of an $8 billion energy company describes an experiment where he allowed a business development [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F10%2F19%2Fbecoming-better-developer-what-your-colleages-think-you%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F10%2F19%2Fbecoming-better-developer-what-your-colleages-think-you%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>This is part of an ongoing series centered on becoming a better software developer. For other posts in the series, see the <span style="font-weight: bold;">Becoming a Better Developer</span> heading in the right navigation.<br />&#8211;<br /> In the book <a title="Joy at Work" target="blank_" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FJoy-Work-Revolutionary-Approach-Job%2Fdp%2F0976268647%2Fsr%3D8-2%2Fqid%3D1161307326%3Fie%3DUTF8&#038;tag=softwarbyrob-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Joy at Work,</a> the former CEO of an $8 billion energy company describes an experiment where he allowed a business development group to determine their own salaries over the course of two years.</p>
<p>The first year everyone chose their own salary but the numbers were kept private. The result was that the best people paid themselves too little, and the average and under-performing people paid themselves too much. This is in line with Paul Graham&#8217;s quote: &#8220;&#8230;people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent.&#8221;
<p>The next year the company set a total budget for the department&#8217;s salaries and   repeated the exercise, except this time all of the employees had to submit their   proposed pay to their colleagues for comment &#8211; not to be approved or rejected,   simply for comment. When everything was said and done the department was   only slightly over budget, and upon closer inspection the company determined one   person was highly overpaid based on the salaries of his colleagues with similar   abilities. This person had not listened to the feedback of his co-workers   who had told him he was overpaying himself. After being informed of this, he   reduced his salary and they met their budget. </p>
<p>   What does this tell us?</p>
<p>First, <span style="font-style: italic;">people who think   they are underpaid are probably not very good at what they do.</span></p>
<p>Second, <span style="font-style: italic;">people who think they are overpaid are probably pretty good.</span></p>
<p>Finally, <span style="font-style: italic;">the people you work with are the best judge of your   abilities. Yes, even better than you.</span></p>
<p><span style="font-style: italic;"></span>If everyone at work thinks you&#8217;re abrasive, it&#8217;s time to take a serious look   at your interpersonal style. </p>
<p>Have you ever seen yourself give a speech or teach a class? Every time I see footage of myself I&#8217;m shocked at how I look when I&#8217;m in front of a group. I&#8217;m appalled at my posture and nervous ticks I didn&#8217;t know I had.  </p>
<p>Your colleagues are the video camera that can see your ability to write code, deal with stress, communicate your ideas, write clearly, and a whole slew of other things that are critical to our jobs as software developers. If you&#8217;re not using them as a resource you are overlooking a powerful tool that can help improve both your technical and non-technical abilities. </p>
<p>The moral: If you are genuinely interested in improving as a developer, ask your colleagues what they think of your abilities. Not just your development skills, but your writing skills, interpersonal style, ability to deal with stress, etc&#8230;</p>
<p>Then ask them again and tell them to be honest.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/10/19/becoming-better-developer-what-your-colleages-think-you/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Becoming a Better Developer Part 9: How to Criticize a Software Developer Without Getting Punched</title>
		<link>http://www.softwarebyrob.com/2006/09/27/how-to-criticize-a-software-developer-punched/</link>
		<comments>http://www.softwarebyrob.com/2006/09/27/how-to-criticize-a-software-developer-punched/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 17:28:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Becoming a Better Developer]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/09/27/how-to-criticize-a-software-developer-punched/</guid>
		<description><![CDATA[There comes a point in every person&#8217;s career when we have to offer criticism of someone else&#8217;s work. For software developers and managers this can be especially difficult since most programmers view the software they write as an extension of themselves, and take criticism of that software very personally. We all know how to criticize, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F27%2Fhow-to-criticize-a-software-developer-punched%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F27%2Fhow-to-criticize-a-software-developer-punched%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>There comes a point in every person&#8217;s career when we have to offer criticism of someone else&#8217;s work.  For software developers and managers this can be especially difficult since most  programmers view the software they write as an extension of themselves, and take criticism of that software very personally.</p>
<p>We all know how to criticize, but the question is how to criticize <em>well</em>.</p>
<p><strong>Be Specific</strong><br />The #1 rule of good criticism is <em>be specific.</em></p>
<p>In <a title="Freaknomics" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FFreakonomics-Economist-Explores-Hidden-Everything%2Fdp%2F006073132X%2Fsr%3D8-1%2Fqid%3D1159406044%2Fref%3Dpd%5Fbbs%5F1%3Fie%3DUTF8%26s%3Dbooks&#038;tag=softwarbyrob-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325" target="blank_">Freaknomics</a>, Steven D. Levitt examined phrases in real estate  listings that had a positive correlation on sale price (meaning a higher sale  price), and ones that had a negative correlation (lower sale price). The results  were as follows:</p>
<p><u>Higher Sale Price</u><br />granite<br />state of the art<br />corian<br />maple<br />gourmet<br />new<br />move in condition</p>
<p><u>Lower Sale Price</u><br />well maintained<br />fantastic<br />spacious<br />charming<br />!<br />great neighborhood<br />wonderful<br />immaculate</p>
<p>What you&#8217;ll notice is that higher sale prices resulted from being more  specific. Tangible, real things like granite, corian, maple, new, outweigh  ambiguous, possibly made-up things like fantastic, charming and wonderful.</p>
<p>And so it is with criticism. Telling someone their code is &#8220;total crap&#8221; is  not helpful. Telling them they misspelled two variable names, have several place  where they&#8217;ve repeated code, and they need error handling in all of their  methods is much more helpful. It not only allows them to improve their current  code, but perhaps it will help them out in the future, as well. They still may  get mad, but that&#8217;s up to them.</p>
<p>It certainly takes more time to itemize mistakes, but it&#8217;s worth it.</p>
<p><strong>Criticize the Code, Not the Person</strong><br />If someone writes crappy code, talk about the code, not about the person&#8217;s  <em>ability</em> to code. If someone doesn&#8217;t meet a deadline, talk about how  that affected you and what needs to happen in the future, don&#8217;t talk about how  the person is a complete slacker (at least not the first time you discuss it).  Doing so will help keep the conversation less personal.</p>
<p><strong>Be Constructive</strong><br />Without much effort at all I can give you a list of negative things about Los  Angeles: traffic, smog, too many people, and a distinct lack of trees.</p>
<p>I could also give you a list of bad things about the internet: spam, viruses,  poorly-designed websites, and pornography. Just because I can point out a ton of  negative things doesn&#8217;t mean that the internet is not worth your time, and  doesn&#8217;t mean you shouldn&#8217;t live in L.A. For all the negatives there are  <em>tons</em> of positives to outweigh them, at least for the 10 million people  who live in L.A. County, or the 1 billion people on the internet.</p>
<p>It&#8217;s easy to be negative. It&#8217;s easy to come into a situation and complain.  It&#8217;s easy to point out the flaws in everything (have you ever read the comments  on Digg or Slashdot?). If you don&#8217;t have a suggested solution in mind it&#8217;s going  to be difficult for people to respect your opinion. Someone who complains often  will be ignored rather quickly.</p>
<p>Constructive critisism is helpful; venting just pisses people off. Before you  criticize something stop to think if it really matters to you and needs to be  improved, and make sure you&#8217;re talking to the person who can do something about  it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/09/27/how-to-criticize-a-software-developer-punched/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Comments on Testing Attention to Detail</title>
		<link>http://www.softwarebyrob.com/2006/09/21/comments-on-testing-attention-to-detail/</link>
		<comments>http://www.softwarebyrob.com/2006/09/21/comments-on-testing-attention-to-detail/#comments</comments>
		<pubDate>Thu, 21 Sep 2006 12:17:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/09/21/comments-on-testing-attention-to-detail/</guid>
		<description><![CDATA[Developer Interview Questions: Testing Attention to Detail generated several comments that I&#8217;d like to address. The first one is &#8220;I think that your questions test the trait on a superficial and&#8230;formal level&#8230;Give the candidate a problem which is prone to off-by-one errors; make sure that, if the proposed solution has the error, the candidate is [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F21%2Fcomments-on-testing-attention-to-detail%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F21%2Fcomments-on-testing-attention-to-detail%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><span style="font-style: italic;"><a href="/archive/2006/09/11/Developer_Interview_Questions_Testing_Attention_to_Detail.aspx" target="_blank">Developer Interview Questions: Testing Attention to Detail</a></span> generated several comments that I&#8217;d like to address.</p>
<p><span style="font-weight: bold;">The first one</span> is &#8220;I think that your questions test the trait on a superficial and&#8230;formal level&#8230;Give the candidate a problem which is prone to off-by-one errors; make sure  that, if the proposed solution has the error, the candidate is aware of the  possibility of the error and knows how to test. [Secondly, present a] problem with  potential &#8220;special cases&#8221; &#8211; something along the lines of writing a function that  calculates 1/x, but a little bit more complex, so it will not be that obvious.&#8221;</p>
<p>Those are two excellent questions for finding out if someone knows how to see errors in code, which is one kind of attention to detail.</p>
<p>The other kind of attention to detail is equally necessary and if you&#8217;re not interviewing for it, you&#8217;re hiring bad developers. Corporate development has tons of hoops you have to jump through to have a stable, standardized system. Things like naming conventions, a well-defined source control structure, coding standards, SQL standards, UI standards, etc&#8230;</p>
<p>Although unncessary in small projects, these hoops are what allow a group of 20+ developers to produce software with any manner of efficiency. Being able to recognize these hoops, understand them, and follow them all fit into the bucket of &#8220;non-code attention to detail,&#8221; which is a trait I am looking for when hiring for our team. This is why there aren&#8217;t any &#8220;find the bug in the code&#8221; questions in my list (although I do ask these types of questions in interviews).</p>
<p><span style="font-weight: bold;">Another comment</span> was &#8220;These tests won&#8217;t show you if a candidate pay [sic] attention to details. They only  show that, on that given moment, he was nervous. It is much better to  talk to them, and bring this topic during conversation: &#8216;do you focus on  details? are you more interested on general concepts?&#8217; etc. Talking is  much better than silly tests.&#8221;</p>
<p>Talking is absolutely much better than silly tests, but how can you ensure that someone is telling the truth? Here&#8217;s an example of what &#8220;talking&#8221; might look like:</p>
<p>Q: &#8220;Do you write good code?&#8221; <br />A: &#8220;Yes&#8221; </p>
<p>Q: &#8220;Do you show up for work on  time?&#8221; <br />A: &#8220;Yes&#8221; </p>
<p>Q: &#8220;Do you focus on details?&#8221; <br />A: &#8220;Yes&#8221;  </p>
<p>You haven&#8217;t learned <span style="font-style: italic;">anything</span> from those answers. Most candidates try to give the &#8220;right&#8221; answer during an interview, which is why you have to ask questions that require knowledge to answer. Asking someone if they pay attention to detail is like asking &#8220;Can you write a method in C# that loops recursively through all the controls in a given parent control?&#8221; And taking their word for it.</p>
<p>On the &#8220;nervous&#8221; portion of that comment, I turn to Vince&#8217;s reply:</p>
<p>&#8220;I just don&#8217;t buy it. I need someone who can analyze problems and make decisions  under pressure, because during the course of a multi-million dollar software  project, pressure situations come up. But mostly, the line of thought  bugs me because even though I&#8217;ve had plenty of interviews where I&#8217;ve been  nervous, I&#8217;ve always been able to think the interview questions through and  reason them out.&#8221;</p>
<p><span style="font-weight: bold;">Finally, </span>Alexander said:</p>
<p>&#8220;[Question] #1. Ask why the company doesn&#8217;t  already have a stored procedure in place for the join? Ask for an explanantion  of the business process being supported to clarify if an inner join is really  necessary. Finally, write the inner join using column numbers instead of names  since the company hasn&#8217;t been able to normalize their spelling. </p>
<p>[Question] #2. Ask  for a copy of all applicable HR documentation detailing the use of the  information you&#8217;re about to provide. Insinuate that the company is using the  hiring process as a cover for the collection of email addresses to sell to  spammers. </p>
<p>[Question] #3. Ask for a copy of the company&#8217;s code creation procedure  manual that documents this process (They do have this stuff written down don&#8217;t  they?), read it back to the interviewer&#8230;&#8221;</p>
<p>Whew! Where to begin?</p>
<p>Regarding #1, I would indicate these are brand new tables and that the candidate has been asked to write the stored procedure. I would give the business justification if asked, but would definitely be wary of the candidate&#8217;s hubris. Finally, if the candidate used column numbers instead of names I would see it as a red flag. Most single answers won&#8217;t get you shown the door, but using column numbers is pretty close.</p>
<p>Regarding #2&#8230;Really?!</p>
<p>Regarding #3: Asking for the company&#8217;s code creation procedure manual is a great answer. I would take that as a sign of someone who knows about corporate development, and who is asking the right questions.</p>
<p><span style="font-weight: bold;">As a closing example</span>, one of the questions I ask during interviews, since we work with Microsoft technologies, is &#8220;Tell me about the Microsoft Application Blocks.&#8221;</p>
<p>If someone has never heard of them are they immediately shown the door? No.</p>
<p>If someone has worked with every one of them do they instantly get an offer? No.</p>
<p>No question is an all-or-nothing game. Folks who evaluate people for a living through psychological tests, IQ tests, certification exams, college-entry exams, etc&#8230;always include multiple questions on a single topic in order to avoid false positives/negatives. The more data points you have, the more accurate your results. Keep this in mind as you interview.</p>
<p>If anything, this discussion has shown how difficult it is to test for a crucial trait like attention to detail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/09/21/comments-on-testing-attention-to-detail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Article: How To Burn $6,540 a Week: Indecision and Software Development</title>
		<link>http://www.softwarebyrob.com/2006/09/04/new-article-how-to-burn-6540-a-week-indecision-and-software-development/</link>
		<comments>http://www.softwarebyrob.com/2006/09/04/new-article-how-to-burn-6540-a-week-indecision-and-software-development/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 17:39:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Becoming a Better Developer]]></category>
		<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/09/04/new-article-how-to-burn-6540-a-week-indecision-and-software-development/</guid>
		<description><![CDATA[From my new article How To Burn $6,540 a Week: Indecision and Software Development: &#8220;These kinds of decisions come up constantly during development. Let&#8217;s say we have five developers working on a project and between them we encounter 10 in a week . If a monkey flipped a coin he&#8217;d choose the right answer half [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F04%2Fnew-article-how-to-burn-6540-a-week-indecision-and-software-development%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F04%2Fnew-article-how-to-burn-6540-a-week-indecision-and-software-development%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>From my new article <span style="font-style: italic;">How To Burn $6,540 a Week: Indecision and Software Development:</span><br /> 
<p>&#8220;These kinds of decisions come up constantly during development. Let&#8217;s say we  have five developers working on a project and between them we encounter 10 in a  week . If a monkey flipped a coin he&#8217;d choose the right answer half the time.  Giving the manager the benefit of the doubt, let&#8217;s say he chooses correctly 60%  of the time. 6 out of 10 times we break even, the other 4 we lose $420, for a  total cost of $1,680 per week. </p>
<p>If we decide not to make any decisions we lose 10 times $822, for a total of  $8,220 per week. </p>
<p>Let me say that again: <em>blanket indecision loses $8,220 per week; making  decisions (including bad ones) loses $1,680 per week. That&#8217;s a difference of $6,540 per week.</em></p>
<p>Give that a few  minutes to sink in.&#8221;</p>
<p>You can read the full article <a href="/articles/How_to_Burn_6540_Week_Indecision_Software_Development.aspx" targe="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/09/04/new-article-how-to-burn-6540-a-week-indecision-and-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Burn $6,540 a Week: Indecision and Software Development</title>
		<link>http://www.softwarebyrob.com/2006/09/04/how-to-burn-6540-week-indecision-software-development/</link>
		<comments>http://www.softwarebyrob.com/2006/09/04/how-to-burn-6540-week-indecision-software-development/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 16:41:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Managing Software Developers]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.softwarebyrob.com/2006/09/04/how-to-burn-6540-week-indecision-software-development/</guid>
		<description><![CDATA[Indecision is a slow and painful death to both productivity and job satisfaction. A recent survey (pdf) found that three of the six main obstacles people face in performing their jobs are tied to decision making. The sad part is that indecision is a management strategy for some (quite a few, according to this study [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F04%2Fhow-to-burn-6540-week-indecision-software-development%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.softwarebyrob.com%2F2006%2F09%2F04%2Fhow-to-burn-6540-week-indecision-software-development%2F&amp;source=robwalling&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Indecision is a slow and painful death to both productivity and job satisfaction. A recent <a title="survey by Sirota Survey intelligence" href="http://www.sirota.com/pressrelease/1-Obstacles_606_Final.pdf" target="blank_">survey </a>(pdf) found that three of the six main obstacles people face in performing their jobs are tied to decision making.</p>
<p>The sad part is that indecision is a management strategy for some (quite a few, according to <a title="this study" href="http://www.human-synergistics.com.au/content/articles/papers/zb-campaign-michael-gourley-apr-04/organisational-culture.asp" target="blank_">this study</a> which states &#8220;90% of Australians work in a negative workplace culture of blame, indecision and conformity.&#8221; We can only assume the numbers are similar around the world.)</p>
<p>In software development there are two kinds of indecision: developer and non-developer. Non-developers can be managers, internal users, marketing, or your CEO; whoever has a say in how your software will be built. For the sake of this article we&#8217;re going to look at non-developer indecision, and we&#8217;re going to refer to it, for ease of readability, as &#8220;management indecision.&#8221;</p>
<p><strong>How Indecision Kills Productivity</strong><br />
What is the impact of management indecision on software development?</p>
<p><img class="right frame" style="border: 0pt none;" src="http://www.softwarebyrob.com/images/which_way2.jpg" border="0" alt="Which Way?" width="300" height="222" /></p>
<p>One <a title="study" href="http://portal.acm.org/citation.cfm?id=257290&amp;dl=ACM&amp;coll=GUIDE&amp;CFID=11111111&amp;CFTOKEN=2222222" target="blank_">study</a> examined the disruptions caused by technology and resource failures in the workplace. They grouped the disruptions into two types: simple disruptions, and what they call &#8220;agenda benders.&#8221; Agenda benders &#8220;create a period of uncertainty and indecision, during which any existing plans are suspended; <span class="misspell">replanning</span> may become difficult if not impossible. [Agenda benders] can, at worst, cause the entire dayï¿½s agenda to be abandoned, and at the very least, will leave it seriously bent out of shape.&#8221;</p>
<p>The study goes on to say:</p>
<p>&#8220;[When an agenda bender strikes] not only does she switch from doing high-priority tasks to filling in time with relative trivia, but she has no idea when her workstation will revive and must <span class="misspell">replan</span> her day without adequate information. This uncertainty ultimately contributes to her inability to complete the ï¿½write specs ï¿½ plan. Agenda benders appear to arise through a loss or breakdown of essential resources, for a period of significant but unpredictable length. Sometimes the missing resource is a person, e.g., a colleague who cannot be found for a vital meeting.&#8221; Or, I would add, information that cannot be obtained in a timely manner.</p>
<p>That being said, the impact of indecision is a potentially serious disruption to the development process due to a number of causes:</p>
<ul>
<li>The tendency for most people to freeze when faced with a question where they don&#8217;t have all the necessary information (described in the book <a title="How Would You Move Mount Fuji?" href="http://www.amazon.com/gp/redirect.html?link_code=ur2&amp;tag=softwarbyrob-20&amp;camp=1789&amp;creative=9325&amp;location=%2FHow-Would-Move-Mount-Fuji%2Fdp%2F0316778494%2Fsr%3D8-1%2Fqid%3D1157238063%2Fref%3Dpd_bbs_1%3Fie%3DUTF8%26s%3Dbooks" target="blank_">How Would You Move Mount Fuji?</a>)</li>
<li>The effort it takes to note there&#8217;s a gap and come back to it once a decision has been made</li>
<li>The mental exhaustion of feeling like you&#8217;re building a well-designed application that&#8217;s full of holes because no one will fill those holes with decisions</li>
</ul>
<p><strong>Why Developers Hate Indecision</strong><br />
If you&#8217;re a developer you know the frustration of not having the answers you need to keep working. You&#8217;ve probably experienced this more than you care to remember:</p>
<p>You start working on a new page, script, design, data model, etc&#8230; and realize the spec you&#8217;ve been given doesn&#8217;t have enough information for you to do your job. You walk over to your manager&#8217;s desk in search of an answer but he&#8217;s working on another issue and you have to wait.</p>
<p><img class="left frame" src="http://www.softwarebyrob.com/images/cube.jpg" border="0" alt="Cubes" /></p>
<p>You trudge back to your cube, realizing your deadline is not budging, but unable to continue your work until you have an answer. Your stress begins to increase and you resort to one of two things: sending an email and sitting on your hands until you get an answer (but looking busy, of course), or making the call yourself and living with the consequences. Either way your productivity is hammered and you&#8217;re now feeling the stress of having one more loose end on your mind.</p>
<p>&#8220;Surveys frequently rank managerial indecision as one of the top office torments, even above issues like low pay.&#8221; (<a title="source" href="http://www.careerjournal.com/columnists/cubicleculture/20051109-cubicle.html" target="blank_">source</a>)</p>
<p>So why is it that no ones seems to make decisions?</p>
<p>Most of the time your question is a lower priority than the other tasks on a manager&#8217;s plate. Other times it&#8217;s due to corporate politics; no one wants to be responsible for a bad decision on a UI that doesn&#8217;t work for the Accounting team simply because he made a hasty decision and didn&#8217;t ask the accounting team what they wanted.</p>
<p>I genuinely believe that the majority or managers, internal users and yes, even CEOs, are not intentionally trying to see how much stress you can take before your head implodes. For better or worse, this is just one of the realities of working in a corporate environment.<strong><br />
</strong></p>
<p><strong>Why Managers <span style="font-style: italic">Should</span> Hate Indecision: The True Cost</strong><br />
Summary so far: indecision is bad. It&#8217;s so bad, in fact, I maintain that most of the time <em>a poor decision is better than no decision at all</em>. This doesn&#8217;t hold true when launching nuclear missiles, performing heart surgery, or making software architecture decisions, but in most common software development scenarios it does. Let&#8217;s look at an example:</p>
<p><em>Developer</em>: &#8220;The spec doesn&#8217;t say if we should show all products on this page, or only enabled products. What should I do?&#8221;</p>
<p><em>Manager</em>: &#8220;Let&#8217;s call a meeting. We&#8217;ll get the four key people together, discuss it and come up with an answer. The soonest everyone can meet is next week.&#8221;</p>
<p><em>Developer</em>: &#8220;But this is the core of the page. I need a decision to finish it.&#8221;</p>
<p><em>Manager</em>: &#8220;Well, then, put it on hold and move on to something else.&#8221;</p>
<p>Now let&#8217;s examine the impact this has on the developer&#8217;s productivity and, ultimately, cost.</p>
<p>[<em>Note: I know this next section will elicit a slew of comments like "Developers don't make that much/little," or "It would never take 2 hours to shift to another task." In the end I decided that a practical example, even one that requires some subjectivity, is such a helpful part of this discussion that it's worth including.</em>]</p>
<p>To begin, the average salary of a Mid-level software developer in Los Angeles is $88,750 (<a title="Robert Half's 2006 Salary Guide" href="http://www.roberthalftechnology.com/portal/site/rht-us/menuitem.e4ac4ca54cc4ad003ebda20c02f3dfa0/?vgnextoid=9f2d9926053d8010VgnVCM1000002d3ffd0aRCRD" target="blank_">Robert Half&#8217;s 2006 Salary Guide</a>). With burden and overhead of 65% (this includes your benefits, employer&#8217;s portion of your social security and unemployment, the lights over your head, your phone, computer, software licenses and parking space) it comes out to around $146k, or just over $70 per hour (based on 2080 hours per year). A company employing a software developer making $88,750 pays approximately $70 for each hour they work, are sick, or on paid vacation.</p>
<p><img class="right frame" src="http://www.softwarebyrob.com/images/price_tag.jpg" border="0" alt="Price Tag" /></p>
<p>In our example above, the first thing the developer has to do is participate in the meeting. Elapsed time: 1 hour (more if she has to prepare for the meeting). <strong>Cost: $70.</strong></p>
<p>Next, she has to stop what she&#8217;s doing, add this to her to do list and come back to it in a week. Elapsed time: 2 hours to shift gears into another task then try to remember what she was doing when she comes back. <strong>Cost: $140.</strong></p>
<p>After returning to the task after a week the developer is more likely to introduce additional bugs because of forgotten loose ends and a lack of familiarity with the code. Since &#8220;bug rates&#8221; per line of code varies widely this is difficult to measure. Let&#8217;s say that on an average day five bugs would show up in QA, but due to the disjointed nature of her development she introduces two additional bugs. The average cost to fix a bug based on <a title="this case study" href="http://smartbearsoftware.com/docs/book/code-review-works.pdf" target="blank_">this case study</a> (careful, it&#8217;s a PDF) is $200. 2 x $200 = <strong>Cost: $400.</strong></p>
<p>Finally, she now has another item cluttering her task list, she&#8217;s frustrated she can&#8217;t complete her work, she&#8217;s lost respect for her manager because he won&#8217;t make a decision, frustrated with her company for having to gather four people to decide how a single screen works, and she&#8217;s concerned she&#8217;s not going to remember all the details when she has to come back to the page in a week. Due to stress her productivity degrades 10% for the next 2 days. 16 hours x .10 = 1.6 hours = <strong>Cost: $112. </strong></p>
<p>Total loss due to indecision: $70 + $140 + $400 + $112 =<strong> Total Cost: $822.</strong></p>
<p>But wait, there are two other alternatives to this story.</p>
<p>One is that the manager makes a decision, and it&#8217;s the right one. In this case no additional time or money is wasted. <strong>Cost: $0.</strong></p>
<p>The other alternative is that the manager makes the wrong decision. He sends an email to the parties involved indicating how they&#8217;ve decided to proceed, and finds out they screwed up. The developer has to go back and re-work the page after she&#8217;s completed it. Elapsed time: difficult to know, but assuming it&#8217;s a standard page we&#8217;re safe with an estimate of 6 hours. <strong>Cost: $420.</strong></p>
<p>&#8220;Making a decision is a clear winner!&#8221; you think. But it gets worse.</p>
<p>These kinds of decisions come up constantly during development. Let&#8217;s say we have five developers working on a project and between them we encounter 10 in a week . If a monkey flipped a coin he&#8217;d choose the right answer half the time. Giving the manager the benefit of the doubt, let&#8217;s say he chooses correctly 60% of the time. 6 out of 10 times we break even, the other 4 we lose $420, for a total cost of $1,680 per week.</p>
<p>If we decide not to make any decisions we lose 10 times $822, for a total of $8,220 per week.</p>
<p>Let me say that again: <em>blanket indecision loses $8,220 per week; making decisions (including bad ones) loses $1,680 per week. That&#8217;s a difference of $6,540 per week.</em></p>
<p>One approach will cost you almost five times as much as the other. Give that a few minutes to sink in.</p>
<p><strong>Trying to Fix Things</strong><br />
Now that we&#8217;ve likened indecision to kicking puppies, terrorism and weapons of mass destruction, we&#8217;ve decided it&#8217;s bad for developers and for the company, <em>and </em>we&#8217;ve blamed everyone but the developer, what can someone do to move things along when the brakes are locked?</p>
<p>Here are three alternatives:</p>
<ul>
<li>Make it easy for someone to make the decision</li>
<li>&#8220;Ambush&#8221; the decision makers</li>
<li>Force a decision</li>
</ul>
<p><strong>Making it Easy</strong><br />
We can blame the managers all we want, but the bottom line is that leading a team is <em>hard</em>. As a former manager (who&#8217;s back in development by choice), the most common task I performed was making fast decisions with incomplete information. The not very surprising point is that the exact same situation that exhausts developers and kills productivity is the most difficult job of a manager, and the easiest to screw up.</p>
<p><img class="left frame" src="http://www.softwarebyrob.com/images/puzzle.jpg" border="0" alt="Puzzle" /></p>
<p>The one thing I found most helpful when forced to make decisions without adequate information was to hear problems <em>and solutions</em>.</p>
<p>Here&#8217;s what I never wanted to hear from one of my developers: &#8220;Oh my gosh, we didn&#8217;t think that people would want to view the results on the blah blah page and now we don&#8217;t know what to do. <span class="misspell">Aaaah</span>! We&#8217;re all gonna die!&#8221;</p>
<p>Here&#8217;s what I wanted to hear: &#8220;We didn&#8217;t think that people would want to view the results on the blah blah page. At this point we have two options: add the results grid, which is the right way to do it, and will take 2 days, or hack in a temporary table which will take 4 hours. Based on the schedule and where we are with out other tasks I think we should .&#8221;</p>
<p>What did the second developer just do? He gave me our best options. He turned this problem into a decision-making process, not a fact finding mission where I had to do recon to figure out the 10 possible approaches. Right away we could discuss pros and cons and make a decision quickly instead of wasting time back at the starting line. In this scenario I would likely suggest additional options, but starting with a base of 2 or 3 is a fabulous head start over the first developer, and makes me more likely to take the few minutes required to make the decision, rather than the 20 minutes needed for the first developer&#8217;s approach.</p>
<p><strong>&#8220;Ambushing&#8221; the Decision Makers</strong><br />
This one is simple; if you need three people to make a decision, find out if they&#8217;re going to be in the same place at the same time and drop by. Or, better yet, have one of them walk with you to find the other two. Creating an impromptu meeting will only work with people who have serious buy-in to see your work succeed, or who are close to you in the org chart.</p>
<p>One other way is to try the <span class="misspell">ol</span>&#8216; &#8220;drop by one and call the other&#8221; trick (this works best when you only need two people&#8217;s agreement). There&#8217;s no rule that specifies you have to wait until everyone&#8217;s in a meeting to make a decision (although this is likely the culture if you work at a big company). There are significant limitations to this approach, however, such as a lack of thorough discussion, visual aids, or a white board. If the topic is complex you are likely to receive blank stares and a look that says &#8220;I&#8217;ll see you at our meeting next week.&#8221;</p>
<p><span style="color: #000000;"><strong>Forcing a Decision</strong><br />
The third tool I&#8217;ve found useful is to force a decision. The phrase &#8220;We have to make a decision now or we&#8217;re going to lose x hours of time.&#8221; carries some weight with decision makers. Sure, they may put you off, but make a note that you said this and mention it again (as tactfully as possible) once the damage is done. Do this enough and someone may actually start listening to you. </span></p>
<p><img class="right frame" src="http://www.softwarebyrob.com/images/wrong_turn.jpg" border="0" alt="Wrong Turn OK" /></p>
<p><span style="color: #000000;">It&#8217;s possible no one will listen to you, even after repeated warnings. In this case you have one of two choices: escalate the problem to your manager, your manager&#8217;s manager, the CEO, or whoever you think can address it, or think long and hard about how much your company really wants its software projects to succeed. If nothing changes after your best efforts, then you have little choice but to keep fighting, accept it, or move on. </span></p>
<p><span style="color: #000000;">The other way to force a decision is to make the decision yourself and do the work. People are less likely to change something that&#8217;s already been written. This is a back-handed way of getting things done, but it both makes your point and accomplishes <em>something</em> during the time you&#8217;re waiting. As with the other approaches, use this one with caution or you may find yourself pissing off the wrong people. </span></p>
<p><span style="color: #000000;"><strong>The Wrap Up</strong></span><br />
Indecision hurts productivity, job satisfaction, and the bottom line, and eliminating it should be on everyone&#8217;s agenda. Managers will likely be motivated by cost and morale; developers by the desire to meet their deadlines and avoid frustration.</p>
<p>Either way, we&#8217;re in the same boat. Hopefully someone will decide to steer.</p>
<p><span style="font-size: x-small;">Thanks to <a title="Mike Taber" href="http://www.miketaber.net/" target="blank_">Mike Taber</a></span><span style="font-size: x-small;"> for reading a draft of this article.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarebyrob.com/2006/09/04/how-to-burn-6540-week-indecision-software-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

