<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Adam Caudill&#039;s Blog &#187; Development</title>
	<atom:link href="http://adamcaudill.com/category/technology/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamcaudill.com</link>
	<description>Adam&#039;s view on technology, software development, and world domination.</description>
	<lastBuildDate>Sat, 19 Jun 2010 19:58:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>on Hiring</title>
		<link>http://adamcaudill.com/2010/06/19/on-hiring/</link>
		<comments>http://adamcaudill.com/2010/06/19/on-hiring/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 19:58:25 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Business of Software]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Hiring]]></category>
		<category><![CDATA[HR]]></category>
		<category><![CDATA[ISV]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/?p=582</guid>
		<description><![CDATA[The company I work for is hiring several developers which marks my first significant hiring effort since being promoted to management. This had led to a few interesting observations* I would like to share that may benefit both those looking for a new job and those looking for the next star to add to their team. Immigration Law: [...]]]></description>
			<content:encoded><![CDATA[<p>The company I work for is hiring several developers which marks my first significant hiring effort since being promoted to management. This had led to a few interesting observations* I would like to share that may benefit both those looking for a new job and those looking for the next star to add to their team.</p>
<p><strong>Immigration Law:</strong> I had no idea how complex this area of law gets; it&#8217;s a maddening maze of rules and policies that are more effective at confusing those involved than providing a reasonable solution to a problem. If you run into this (and you will), you need somebody that has dealt with this and knows what to do. Getting both parties into legal hot water is far too easy.</p>
<p><strong>Resumes:</strong> I&#8217;ve seen great resumes that made it clear that I needed to hire this person and resumes so cluttered and complex it took an hour just to get through it. Here&#8217;s a few things that stuck out to me:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">DRY</a> is good for code, and for a resume. Clean and concise is always better; if you find yourself hitting Ctrl+C even once while working on a resume, you&#8217;re probably doing something wrong.</li>
<li>Length is important, but shorter isn&#8217;t always better. Unlike many other fields where a single page resume is considered optimal, technical resumes need at least a second page. Going too short on a resume is a great way to blend into the crowd; a resume should stand out, and that takes space.</li>
<li>How long is too long? Unless you&#8217;ve been doing this for a <em>very</em> long time, more than three pages is probably excessive. This isn&#8217;t always true, but think it through before using more than two pages.</li>
<li>Use whitespace carefully. Don&#8217;t leave a page half empty or pack everything in so that it looks cluttered. As with any type of design, whitespace is a powerful tool that should be used wisely and never be left to chance.</li>
<li>Use color sparingly. Many corporate printers are black and white only, so if you use color make sure it looks right when printed without it.</li>
<li>Use bold even more sparingly. It&#8217;s sometimes useful to point out items of interest, but it quickly degrades the readability of a resume.</li>
</ul>
<p>Many people seem to have a hard time with this, but a resume is a <em>textual representation of yourself</em>. It represents you as a person and your accomplishments as a professional. Any errors or signs of haste or carelessness say much about you as a person; if you are careless with such a significant representation of yourself what does it say about your attention to detail or work ethic?</p>
<p><strong>Experience:</strong> For a person that has recently graduated, experience in the field is the single largest hindrance both when it comes to securing a position and to receiving a salary they are happy with. The best advice I can find for people in this position is to look to the open source community for help. There are many projects that are desperate for developers and it&#8217;s a great way to get familiar with working in a team, coordinating with people over a distributed area, and releasing code for public consumption. In lieu of paid work experience, open source is a great way to fill in a resume (and it can be quite profitable for some, if you play your cards right).</p>
<p><strong>Salary:</strong> In some companies pay is a minor issue thanks to clearly structured systems such as that <a href="http://www.joelonsoftware.com/articles/fog0000000038.html">proposed</a> by Joel Spolsky; for others is can be a source of pain, envy, and jealousy. This is a topic that I truly hate; it&#8217;s uncomfortable at best and quite painful at worst. While I can&#8217;t offer much advice, here are a few things to think about:</p>
<ul>
<li>Money is not an effective motivator. In an ideal environment it should just stay out-of-the-way and allow developers to live a comfortable life; in reality the role it plays is a bit different. More often than not, it&#8217;s a distraction that gets in the way and outweighs the factors that do motivate people.</li>
<li>Companies follow a few different pay systems, and once set moving to different system is nearly impossible. Here are a few I&#8217;ve seen:
<ul>
<li>Clearly Structured: This system places developers on a scale, and developers at a given level receive the same salary (see <a href="http://fogcreek.com/">Fog Creek</a>).</li>
<li>Structured + Negotiated: This is the most common system I&#8217;ve seen; it mixes a structured level system with negotiated modifications that can apply a certain percentage increase from the normal base salary for that level or other benefits (extended vacation, etc).</li>
<li>Negotiated: Pay is based on negotiation skills and need; this can lead to odd situations such as where a junior developer can make more than a senior developer due to the need to fill a position quickly. This system requires strict secrecy when it comes to salary information to avoid nasty surprises, unlike the clearly structured system where salary information can be openly shared.</li>
</ul>
</li>
<li>Are large salary increases possible? Some companies have no issue with large increases in salary for a promotion (20%+) while in others exceeding 5% for any reason is a major challenge. If a developer is coming in on the low-end of the scale (i.e. due to lack of experience, such as a recent graduate), is there a real possibility of moving up? In my experience, people stay near the end they start at &#8211; those that start at the bottom will stay there until they move to a different company.</li>
</ul>
<p><strong>Interview Questions:</strong> If you are conducing an interview, make a list of questions and write them down. It&#8217;s quite embarrassing to suddenly realize that you are out of questions just a few minutes in (Need inspiration? Try <a href="http://en.wikipedia.org/wiki/Microsoft_interview">this</a> or <a href="http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html">this</a>). Many people have said much about this, but the most important thing I can point out is just don&#8217;t wing it. Plan carefully, make sure you know what you&#8217;re going to do and when before the candidate shows up.</p>
<p><strong>Interview Dress Code:</strong> I&#8217;ve been amazed at what I&#8217;ve seen people wear, everything from high-end suits to jeans. What&#8217;s appropriate? It really depends on the environment; a large corporation will expect an Armani suit where a startup is happier seeing jeans and an American Apparel t-shirt. When in doubt, I would go with a suit personally &#8211; but depending on the company that could cost you the job just as quickly as showing up in jeans.</p>
<p><strong>Interviews Go Both Ways:</strong> An interview shouldn&#8217;t be a one-way affair; the candidate should be interviewing the company as much as you are interviewing them. They should be asking questions about the environment, expectations, tools and resources provided as much as you are asking them about prior experience and knowledge. If a candidate doesn&#8217;t seem to care about the company or what the working conditions are like &#8211; think carefully before hiring them.</p>
<p><strong>Other Thoughts:</strong> I&#8217;ll not go into what I look for when it comes to personality or other personal traits as that would require far more than a blog post to cover. I&#8217;m also going to avoid things such as hobbies and the like; while they can tell you much about a person they can also lead to other complications. Any question in an interview can quickly lead to a land-mine and in the legal quagmire that is HR law and policies, trouble is easy to find. When in doubt, just don&#8217;t ask.</p>
<p>* This is based on my experience over the years; not necessarily the experiences in this round of hiring or the opinions or policies of my employer. In general, nothing in this refers to policies, preferences, or procedures of my employer. &lt;Standard Disclaimer /&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2010/06/19/on-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight 3 Tools Available</title>
		<link>http://adamcaudill.com/2009/07/09/silverlight-3-tools-available/</link>
		<comments>http://adamcaudill.com/2009/07/09/silverlight-3-tools-available/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 18:13:57 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/?p=449</guid>
		<description><![CDATA[It looks like the core Silverlight 3 tools are now available: Microsoft Expression Blend 3 + SketchFlow RC Microsoft® Silverlight™ 3 SDK Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1 Deep Zoom Composer Though the tools needed for development seem to be public, I&#8217;ve yet to see the end-user run-time; though I imagine we&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like the core Silverlight 3 tools are now available:</p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609">Microsoft Expression Blend 3 + SketchFlow RC</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=2050e580-f1d5-4040-bb09-e6185591b6b5">Microsoft® Silverlight™ 3 SDK</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd">Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=457b17b7-52bf-4bda-87a3-fa8a4673f8bf">Deep Zoom Composer</a></li>
</ul>
<p>Though the tools needed for development seem to be public, I&#8217;ve yet to see the end-user run-time; though I imagine we&#8217;ll see that in the release anticipated for tomorrow.</p>
<p>Time to have some fun. <img src='http://adamcaudill.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Update</em>: Client run-time is now <a href="http://www.microsoft.com/silverlight/resources/install.aspx">available</a>.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: normal; font-size: 16px; "></p>
<h1 style="font-size: 1.3em; font-weight: normal; margin-bottom: 5px; ">Microsoft Expression Blend 3 + SketchFlow RC</h1>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2009/07/09/silverlight-3-tools-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avatars &#8211; Why roll your own?</title>
		<link>http://adamcaudill.com/2009/06/19/avatars-why-roll-your-own/</link>
		<comments>http://adamcaudill.com/2009/06/19/avatars-why-roll-your-own/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 20:24:56 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gravatar]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/?p=431</guid>
		<description><![CDATA[I&#8217;ve been working on a project recently that uses avatars, while planning out this specific feature it occurred to me &#8211; why should we re-invent the wheel? There&#8217;s already at least one service that specializes in doing it right: Gravatar. While building something as simple as avatar support takes a relatively small amount of time, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a project recently that uses avatars, while planning out this specific feature it occurred to me &#8211; why should we re-invent the wheel? There&#8217;s already at least one service that specializes in doing it right: <a href="http://en.gravatar.com/">Gravatar</a>.</p>
<p>While building something as simple as avatar support takes a relatively small amount of time, when working against a tight deadline or a tight budget every minute counts. In the world of an ISV (especially a young one) the balance of user satisfaction and development time is critical. Using a service such as Gravatar is a great way to give the users what they want with minimal impact to the timeline.</p>
<p>With a <a href="http://en.gravatar.com/site/implement">super-simple implementation</a> we were able to get it running within a few minutes &#8211; compare that to at least a few hours to build a custom system. Plus, reduced server load as we aren&#8217;t hosting the images and a cleaner, simpler interface as it&#8217;s one less option the user has to look through.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2009/06/19/avatars-why-roll-your-own/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmers are Expensive</title>
		<link>http://adamcaudill.com/2008/12/21/programmers-are-expensive/</link>
		<comments>http://adamcaudill.com/2008/12/21/programmers-are-expensive/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 16:49:14 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Business of Software]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/?p=395</guid>
		<description><![CDATA[I normally don&#8217;t write posts just to point out an article by another author, but the latest by Jeff Atwood is a must read: Hardware is Cheap, Programmers are Expensive I point this out because this is something I&#8217;ve been fighting recently. It&#8217;s easier for management to tell the development team to fix a performance [...]]]></description>
			<content:encoded><![CDATA[<p>I normally don&#8217;t write posts just to point out an article by another author, but the latest by <a href="http://www.codinghorror.com/blog/">Jeff Atwood</a> is a must read:</p>
<p style="padding-left: 30px;"><a href="http://www.codinghorror.com/blog/archives/001198.html">Hardware is Cheap, Programmers are Expensive</a></p>
<p>I point this out because this is something I&#8217;ve been fighting recently. It&#8217;s easier for management to tell the development team to fix a performance issue than to request money for the new hardware that&#8217;s needed.</p>
<p>In the long run it would be much cheaper to just throw more hardware at it &#8211; though that requires higher level approval. Whereas assigning a couple developers doesn&#8217;t require going nearly as high.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2008/12/21/programmers-are-expensive/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working Late, Again</title>
		<link>http://adamcaudill.com/2008/12/08/working-late-again/</link>
		<comments>http://adamcaudill.com/2008/12/08/working-late-again/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 09:16:50 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/?p=384</guid>
		<description><![CDATA[Ladies, do you know where your husband is? If he&#8217;s anything like me (or the rest of my team), he&#8217;s at the office. At 4AM. Again. For the third week in a row I find myself at work at the wee hours of the morning preparing for a project launch. Though today more than ever [...]]]></description>
			<content:encoded><![CDATA[<p>Ladies, do you know where your husband is? If he&#8217;s anything like me (or the rest of my team), he&#8217;s at the office. At 4AM. Again.</p>
<p>For the third week in a row I find myself at work at the wee hours of the morning preparing for a project launch. Though today more than ever I find myself asking questions; what takes priority, the needs of a company, or the needs of a relationship? What&#8217;s more important, the health of a project, or my own health? Should I be working to make this project a success, or sleeping to stay healthy?</p>
<p>Normally these questions are simple and obvious &#8211; yet so often we choose our projects over ourselves, our companies over our loved ones. Why? Is it the drive for success, the challenge of doing the impossible? Maybe it&#8217;s the money? Why do developers so often sacrifice so much?</p>
<p>This isn&#8217;t a guide to better managing time, or a treatise on setting priorities; no, it&#8217;s a developer&#8217;s lament. So much is given for a company that does little but ask for more; yet more we always give. We know there are things far more important, but yet so much rides on our efforts, so many people counting on us; how could we dare let them down? Though I appreciate my paycheck, it doesn&#8217;t drive me to do more &#8211; it&#8217;s the people, the challenge, the fact only I can make this happen.</p>
<p>Sometimes though, I wish I could bring myself to accept failure; maybe then the pressure wouldn&#8217;t be so great. Maybe then, I could sleep at night.</p>
<p>But this is what we do, we make the miracles; we do the impossible. Every day we face another challenge, every day we find another solution. Now if we could just find a solution for all this time lost from what matters most.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2008/12/08/working-late-again/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows Vista User Experience Guidelines</title>
		<link>http://adamcaudill.com/2007/03/01/windows-vista-user-experience-guidelines/</link>
		<comments>http://adamcaudill.com/2007/03/01/windows-vista-user-experience-guidelines/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 04:52:40 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/2007/03/01/windows-vista-user-experience-guidelines/</guid>
		<description><![CDATA[For those that missed it (like me), the Windows Vista User Experience Guidelines has been updated with some additional content. This update add content in the following areas: Software Branding Confirmations Warnings Toolbars Sound Icons These guidelines are crucial to ensure the most consistent user experience possible. Though many don&#8217;t, this is a document that [...]]]></description>
			<content:encoded><![CDATA[<p>For those that missed it (like me), the <a href="http://msdn2.microsoft.com/en-us/library/aa511258.aspx">Windows Vista User Experience Guidelines</a> has been updated with some additional content. This update add content in the following areas:</p>
<ul>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa511284.aspx">Software Branding</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa511273.aspx">Confirmations</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa511263.aspx">Warnings</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa511500.aspx">Toolbars</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa511278.aspx">Sound</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa511280.aspx">Icons</a></li>
</ul>
<p>These guidelines are crucial to ensure the most consistent user experience possible. Though many don&#8217;t, this is a document that all developers should read. I firmly believe that consistency is the most important single factor in design, and following an established style such as this is a great way to ensure that a UI is as consistent as possible.</p>
<p>If you&#8217;d like some background reading, the <a href="http://www.microsoft.com/whdc/System/platform/pcdesign/XPguidelines.mspx">XP version</a> is still available.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2007/03/01/windows-vista-user-experience-guidelines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>.NET Reflector v5 Released</title>
		<link>http://adamcaudill.com/2007/02/20/net-reflector-v5-released/</link>
		<comments>http://adamcaudill.com/2007/02/20/net-reflector-v5-released/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 00:25:58 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/2007/02/20/net-reflector-v5-released/</guid>
		<description><![CDATA[The great Lutz Roeder has released a new version of the .NET Reflector. From what I&#8217;ve seen; this version is extremely nice. This has long been a required tool of any serious developer. With this update Reflector has reinforced its position in the list of tools you just can&#8217;t live without. Scott Hanselman provides a [...]]]></description>
			<content:encoded><![CDATA[<p>The great <a href="http://www.aisto.com/roeder/">Lutz Roeder</a> has released a new version of the <a href="http://www.aisto.com/roeder/dotnet/">.NET Reflector</a>. From what I&#8217;ve seen; this version is extremely nice. This has long been a required tool of any serious developer. With this update Reflector has reinforced its position in the list of tools you just can&#8217;t live without.</p>
<p>Scott Hanselman provides a <a href="http://www.hanselman.com/blog/Reflector5ReleasedWorldDominationAssured.aspx">great review</a>; check it out for the details on what&#8217;s new.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2007/02/20/net-reflector-v5-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Love My Job</title>
		<link>http://adamcaudill.com/2007/02/10/i-love-my-job/</link>
		<comments>http://adamcaudill.com/2007/02/10/i-love-my-job/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 06:08:12 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Business of Software]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/2007/02/10/i-love-my-job/</guid>
		<description><![CDATA[I love what I do, and I work with a great team. While it&#8217;s still far from perfect; I can say that I do love my job. For the last couple weeks though, I&#8217;ve had to remind myself of this several times. I&#8217;m sure we&#8217;ve all done it, in this industry it&#8217;s hard to avoid. [...]]]></description>
			<content:encoded><![CDATA[<p>I love what I do, and I work with a great team. While it&#8217;s still far from perfect; I can say that I do love my job. For the last couple weeks though, I&#8217;ve had to remind myself of this several times. I&#8217;m sure we&#8217;ve all done it, in this industry it&#8217;s hard to avoid. You read an email or receive a phone call and repeat the mantra &#8220;I love my job, I love my job, I love my job.&#8221;</p>
<p>Unreasonable clients, managers that just don&#8217;t understand; there are so many reasons, so many triggers. While reciting this mantra often invokes laughter from those nearby, some thought should be given anytime it&#8217;s used. More often than not, used as a joke, but a joke masking true problems.</p>
<p>Some issues are unavoidable, some no amount a planning or preparation will help with; for those I can offer no advice. For those, even a perfect environment won&#8217;t help. It&#8217;s the others I care about, those issues that shouldn&#8217;t be, the deadlines that should never have been set, and those whose sole cause is lack of planning or forethought. Those are the ones that tire me; those are the ones I <em>hate</em>.</p>
<p>When I run into one of these situations, it makes me wish <a href="http://www.softwarebyrob.com/archive/2006/12/06/Open_Letter_to_Software_Managers_of_the_World_.aspx">this</a> was closer to reality than a dream of how we want things to be. However, why shouldn&#8217;t it be reality? Why do we allow this to happen time and time again?</p>
<p>Wait, read that last sentence again. Why do we allow, why do <strong><em>we</em></strong> allow? Yes, as developers we allow this to happen, and often encourage it. Late nights, working weekends, 90-hour weeks. Those could all be prevented, and could be reduced significantly should we stand up. If we do not take a stand, we encourage those that push us too far by doing just what they ask. Why should they stop if they can get a single developer to do the work of two?</p>
<p><strong>A Solution?</strong></p>
<p>So, what are we to do? Taking a page from <a href="http://www.softwarebyrob.com/">Rob</a>, here is my modest proposal. A few simple rules for both developers and managers to keep in mind. While rules such as these can never be enforced, keeping these things in mind could make life more pleasant for everybody.</p>
<p><em>Managers&#8230;</em></p>
<ul>
<li>shall keep requests for after hours work to a minimum. While there are &#8220;crunch times&#8221; on occasion, these should be minimal.</li>
<li>shall seek input from at least one developer before estimating a project. An estimate should not be created without consulting those that will be working on it, as they should have the most realistic idea of how long it will take to implement.</li>
<li>shall not ask developers to implement a hack or kludgey solution to meet an unreasonable deadline or request; especially if it will compromise stability or maintainability.</li>
<li>shall understand that developers are often passionate about their work, and the quality of the software they produce. Asking a professional to implement a solution based on a bad design, or inferior technologies will often be viewed as an insult, especially when this is done to meet an unreasonable goal.</li>
<li>shall shield developers from unnecessary distractions and meetings. Distractions can destroy productivity.</li>
<li>shall not ask developers to do the job of a Support technician. Tasks such as installing or configuring third-party software should not be given to a developer.</li>
<li>shall filter all requests and put policies in place to ensure that requests do not go directly to a developer.</li>
<li>shall give developers the freedom and opportunity to test different development methodologies when the schedule allows.</li>
</ul>
<p><em>Developers&#8230;</em></p>
<ul>
<li>shall make every reasonable effort to complete a task, including working long hours (so long as the hours and frequency are reasonable).</li>
<li>shall not complain about boring or undesirable tasks.</li>
<li>shall alert management when an issue arises that may impact a deadline, as soon as possible.</li>
<li>shall build the best software they are able to.</li>
<li>shall provide accurate estimates when asked.</li>
<li>shall be available as much as possible should an emergency arise.</li>
<li>shall not over-build, or over architect just for the sake of doing so.</li>
<li>shall try to understand the pressures and forces at play when communicating with management.</li>
<li>shall make an effort to improve development methods and processes.</li>
</ul>
<p>If you agree with this last, take it to your manager and talk about it; if not, build your own and talk about it. Either way, the idea is to talk about the issues and try to find ways to get everybody on the same page. If we make no effort to improve things, then we are just as much a part of the problem as anyone else.</p>
<p>If you don&#8217;t like things, complain; but complaining to a friend or co-worker won&#8217;t help, <span style="font-size: small;">you need to let management know that there are problems and that you have some ideas to fix them</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2007/02/10/i-love-my-job/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ASP.NET AJAX</title>
		<link>http://adamcaudill.com/2007/01/25/aspnet-ajax/</link>
		<comments>http://adamcaudill.com/2007/01/25/aspnet-ajax/#comments</comments>
		<pubDate>Fri, 26 Jan 2007 02:33:48 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/2007/01/25/aspnet-ajax/</guid>
		<description><![CDATA[For those that have been looking forward to seeing the final result of Microsoft&#8217;s attempt at AJAX, your wait is over. ASP.NET AJAX 1.0 has been released. I&#8217;ve not had time to test this yet, but it sure looks like it has promise. I&#8217;ll be playing with this one soon, I&#8217;ve got a couple new [...]]]></description>
			<content:encoded><![CDATA[<p>For those that have been looking forward to seeing the final result of Microsoft&#8217;s attempt at <a href="http://en.wikipedia.org/wiki/AJAX">AJAX</a>, your wait is over. <a href="http://ajax.asp.net/default.aspx">ASP.NET AJAX</a> 1.0 has been <a href="http://ajax.asp.net/downloads/default.aspx?tabid=47">released</a>.</p>
<p>I&#8217;ve not had time to test this yet, but it sure looks like it has promise. I&#8217;ll be playing with this one soon, I&#8217;ve got a couple new projects this might be perfect for.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2007/01/25/aspnet-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xceed DataGrid for WPF Released &#8211; Free</title>
		<link>http://adamcaudill.com/2007/01/25/xceed-datagrid-for-wpf-released-free/</link>
		<comments>http://adamcaudill.com/2007/01/25/xceed-datagrid-for-wpf-released-free/#comments</comments>
		<pubDate>Fri, 26 Jan 2007 02:25:37 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Xceed]]></category>

		<guid isPermaLink="false">http://adamcaudill.com/2007/01/25/xceed-datagrid-for-wpf-released-free/</guid>
		<description><![CDATA[Xceed has released version 1.0 of their new WPF based DataGrid, and best of all, made it free! If you&#8217;ve missed the news, you might want to check this out.]]></description>
			<content:encoded><![CDATA[<p><a href="http://xceed.com/">Xceed</a> has released version 1.0 of their new <a href="http://xceed.com/Grid_WPF_Intro.html">WPF based DataGrid</a>, and best of all, made it free! If you&#8217;ve missed the news, you might want to check this out.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamcaudill.com/2007/01/25/xceed-datagrid-for-wpf-released-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
