<?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>Caffeinated Coder &#187; Musings, Rants</title>
	<atom:link href="http://www.caffeinatedcoder.com/category/3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caffeinatedcoder.com</link>
	<description>A Grande, Triple Shot, Non-Fat Core Dump by Russell Ball</description>
	<lastBuildDate>Mon, 16 Aug 2010 03:17:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Website Hall of Shame</title>
		<link>http://www.caffeinatedcoder.com/website-hall-of-shame/</link>
		<comments>http://www.caffeinatedcoder.com/website-hall-of-shame/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 03:22:08 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=1085</guid>
		<description><![CDATA[Today&#8217;s featured website: European Visa Online
I visited this site for the first time today and was greeted with this page.

Seriously?
In case you&#8217;re curious, I&#8217;m running firefox 3.6.3.
Web developers and designers have scorned and mocked IE 6 for years now due to hoards of bugs and non-compliant behavior that cause endless development headaches.
However, IE 6 rose [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><strong>Today&#8217;s featured website:</strong> <a href="https://www.eu.visaonline.com">European Visa Online</a></p>
<p>I visited this site for the first time today and was greeted with this page.</p>
<p><img class="aligncenter size-full wp-image-1086" title="blog_visa_shame" src="http://www.caffeinatedcoder.com/wp-content/uploads/2010/04/blog_visa_shame.png" alt="blog_visa_shame" width="450" height="354" /></p>
<p>Seriously?</p>
<p>In case you&#8217;re curious, I&#8217;m running firefox 3.6.3.</p>
<p>Web developers and designers have scorned and mocked IE 6 for years now due to hoards of bugs and non-compliant behavior that cause <a href="http://www.virtuosimedia.com/tutorials/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs">endless development headaches</a>.</p>
<p>However, IE 6 rose to a new level of infamy earlier this year when it turned out to be the culprit behind the <a href="http://siblog.mcafee.com/cto/operation-%E2%80%9Caurora%E2%80%9D-hit-google-others/">Operation Aurora</a> exploits, which led to Google and others to officially drop support for the browser due to security risks.</p>
<p>It also led to many European governments, such as <a href="http://news.bbc.co.uk/2/hi/technology/8463516.stm germany">Germany</a>, <a href="http://news.bbc.co.uk/2/hi/8465038.stm">France</a>, and nearly <a href="http://www.theregister.co.uk/2010/02/02/internet_explorer_6_petition/">the UK</a>, to officially urge its citizens to switch browsers.</p>
<p>That made this page all the more surprising since it came from the European branch of Visa.</p>
<p>Then again, maybe I shouldn&#8217;t be surprised.</p>
<p>One of the very next pages prevented me from changing my initial password because the password generated by <a href="http://keepass.info/">KeePass </a>with the default settings was too long&#8230;.that&#8217;s right&#8230;.too long to meet their password validation rules.</p>
<p><img class="aligncenter size-full wp-image-1089" title="visa_strike4" src="http://www.caffeinatedcoder.com/wp-content/uploads/2010/04/visa_strike4.png" alt="visa_strike4" width="450" height="167" /></p>
<p>I easily have over 100 passwords in my password database and I can&#8217;t remember the last time I&#8217;ve had this problem.</p>
<p>It doesn&#8217;t exactly inspire confidence in the area of security, especially considering that Visa is one of the most prominent and ubiquitous financial institution around.</p>
<p>Sigh&#8230;</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=1085&type=feed" alt="" />

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/website-hall-of-shame/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>The Zen of “Go Away” Rates</title>
		<link>http://www.caffeinatedcoder.com/the-zen-of-%e2%80%9cgo-away%e2%80%9d-rates/</link>
		<comments>http://www.caffeinatedcoder.com/the-zen-of-%e2%80%9cgo-away%e2%80%9d-rates/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:38:21 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=725</guid>
		<description><![CDATA[A friend of mine recently revealed a super, ninja-level consultant secret to me.
Whenever his work pipeline floweth over and an unknown client approaches him with a job, he quotes them a ridiculously high rate that he assumes they would never accept.
He calls it his “Go Away” rate.
The only problem is that these clients often do [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-726" style="padding:10px" title="wine-label-324x205" src="http://www.caffeinatedcoder.com/wp-content/uploads/2009/10/wine-label-324x205.jpg" alt="wine-label-324x205" width="250" height="158" align="right" />A friend of mine recently revealed a super, ninja-level consultant secret to me.</p>
<p>Whenever his work pipeline floweth over and an unknown client approaches him with a job, he quotes them a ridiculously high rate that he assumes they would never accept.</p>
<p>He calls it his “Go Away” rate.</p>
<p>The only problem is that these clients often do accept his proposal.</p>
<p>In fact, my friend admitted to me with a certain amount of amusement that he has noticed that clients are actually much less likely to balk and haggle over his “Go Away” rate than they are his normal, more reasonable hourly rate.</p>
<p>It reminds me of a <a href="http://dsc.discovery.com/news/2008/01/14/wine-brain-behavior.html">recent wine tasting experiment</a> that I read about where subjects did a taste test for a variety of wines and the only piece of information they were given was the price.</p>
<p>Not surprisingly, the subjects of the experiment overwhelmingly reported enjoying the pricier wines more even though the sneaky researchers often swapped the price labels between the cheap and expensive wines.</p>
<p>What is surprising, however, is that according to brain scans that were conducted by researchers during the experiment, people actually did experience more pleasure while drinking the cheap wines that they thought were pricier and not simply falsifying their answers to avoid looking uncultured.</p>
<p>In other words, the wine actually tasted better to them simply because they believed that the wine was higher quality.</p>
<p>While that improves the prospects for many consultants hoping to take that 4 week vacation to the Bahamas this year, what lesson can us poor salaried corporate slaves glean from this experience?</p>
<p>Although most developers don’t have the luxury of being able to quote a “Go Away” rate, they often do (at least on a subconscious level) have the option of giving a “Go-Away” estimate.</p>
<p>Don’t believe me? Consider the following scenario.</p>
<p>Your boss asks you how long it takes to code a CRM system from scratch using your dream technology stack. Do you actually sit down and give him the bad news, which is that the project probably won’t be finished until after he retires or is fired for incompetence or do you succumb to the typical developer’s hopeless optimism and mumble a couple of months?</p>
<p>Now, what if on the same day your boss asks you to give an estimate of how long it would take to change the color of some text on a legacy PowerBuilder app?</p>
<p>Just to make it interesting, let’s assume that the app in question is written using an unsupported version of PowerBuilder. Moreover, the data travels through no less than <a href="http://www.rubegoldberg.com/">6 rube goldbergian</a> layers, the highpoint of which is an excel worksheet written by a disgruntled accountant and a 5000 line .bat file written by the network admin who just sent to prison for embezzlement. To top it off,  it interacts with a mainframe you’ve never heard of that was scheduled to be retired a decade before you started working there.</p>
<p>In the second scenario, would you err on the side of optimism or would you promptly ask your HR person how much time is left before you vest and then multiply that answer by 8 in order to derive your very own “Go Away” estimate?</p>
<p>If you noticed yourself leaning towards the second option, then you may want to stop and consider what we’ve just learned from the wine researchers.</p>
<p>If you over-inflate your time estimate too much, then you may inadvertently make your boss want that change all the more.</p>
<p>Quote too high of a &#8220;Go Away&#8221; estimate, and you’ll soon find yourself in a product kick-off meeting heading up a team of “high quality” consultants, all of whom are charging “go-away” rates, and listening to your CIO give a <a href="http://www.caffeinatedcoder.com/motivational-anti-patterns/">sunshine up the arse speech</a> about how the new TCII (Text-Colorization Improvement Initiative) is going to revolutionize the way you do business.</p>
<p>Don’t say I didn’t warn you.</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=725&type=feed" alt="" />

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/the-zen-of-%e2%80%9cgo-away%e2%80%9d-rates/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How Do You Attract Great Developers through a Job Ad?</title>
		<link>http://www.caffeinatedcoder.com/how-do-you-attract-great-developers-through-a-job-ad/</link>
		<comments>http://www.caffeinatedcoder.com/how-do-you-attract-great-developers-through-a-job-ad/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 14:44:19 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/how-do-you-attract-great-developers-through-a-job-ad/</guid>
		<description><![CDATA[I’ve been involved in a recruiting effort for the last 5-6 weeks and I have to admit that I’m starting to get discouraged. 
I don’t want to rant about how many subpar developers exists out there because those blog posts always annoy me and strike me as pathetically egotistical. 
Besides, debating whether the skills of [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I’ve been involved in a recruiting effort for the last 5-6 weeks and I have to admit that I’m starting to get discouraged. </p>
<p>I don’t want to rant about how many subpar developers exists out there because those blog posts always annoy me and strike me as pathetically egotistical. </p>
<p>Besides, debating whether the skills of the average developer are good or bad seems like a moot point to me. Even if I rate the overall average as positive I would still want to work with people from the right side of the bell curve (a la Joel’s <a href="http://www.joelonsoftware.com/items/2007/06/05.html">Smart and Gets Things Done philosophy</a>). Besides getting more work done, they represent the greatest learning opportunity for me personally (yes I’m a wee bit selfish in that regard).</p>
<p>However, that is not an easy thing to do as evidenced by my need to create the <a href="http://www.caffeinatedcoder.com/return-thoughtswherex-xiscaffeineinspired/">Rejectomizer 2000</a>.</p>
<p>Thus we invested some time and effort into crafting a good job description that would speak directly to the type of people we’re looking for.</p>
<p>Here’s an excerpt.</p>
<blockquote>
<p><strong>Who you are</strong></p>
<p>You are a combat-hardened, grizzled C# veteran with years of coding experience under your belt. You’ve been using the .NET framework since its inception and know the ins-and-outs of threading, reflection, generics, and lambdas. You’ve done a fair share of ASP.NET and know how to use AJAX and Javascript frameworks like JQuery to good advantage. You’re interested in the possibility of eliminating boiler-plate SQL code with a good Object Relational Mapper and open to improving the design and reliability of your code through Test-Driven Development.</p>
<p>You are NOT the type of developer to just get things working without knowing exactly how and why they work. And while you’ve put out some pretty advanced, complex code, you’ve come to the realization that good code is simple code. If the developer sitting next to you can’t open your code and pick up where you’ve left off, your code isn’t that great after all.</p>
<p>While your code might be solid and you know a ton of stuff, you are constantly learning. You read technical blogs and books and try to stay on top of relevant technologies and patterns. </p>
<p>Aside from your technical ability, you pride yourself on getting things done. You’ve used methodologies and standards with a group of developers and know that sticking to the process helps everyone crank out quality work and get it out the door on time. You have a super-strong attention to detail and you take pride in your work. You’ve mentored junior developers and know when to hold their hand and when to let them beat their head against the wall for a while. </p>
<p>Finally, you’re a natural leader. You lead by example and set a high standard. You know when to be firm and draw the line, and when to solicit contributions and feedback from the group. You give clear direction and assign accountability, and everyone on your team feels like they’re doing their part.</p>
</blockquote>
<p>Are we missing anything?</p>
<p>Oh, and if you happen to live in the Kansas City area (not accepting telecommuters at the present time) and are looking for a job at a <a href="http://www.storefinancial.com/">cool company</a>, shoot me an <a href="mailto:rball@storefinancial.com">email</a></p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=534&type=feed" alt="" />

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/how-do-you-attract-great-developers-through-a-job-ad/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>return thoughts.Where(x =&gt; x.IsCaffeineInspired)</title>
		<link>http://www.caffeinatedcoder.com/return-thoughtswherex-xiscaffeineinspired/</link>
		<comments>http://www.caffeinatedcoder.com/return-thoughtswherex-xiscaffeineinspired/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 03:54:26 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=526</guid>
		<description><![CDATA[It’s too hard to pick just one topic to delve into after a five month blogging hiatus, so I thought I would reenter the blogosphere by just spewing forth some random thoughts that have been floating around in my head lately.

Lamda soup is yummy – As you probably guessed from the title of the post, [...]


Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/return-of-the-becoming-a-better-developer-meme-my-2010-smart-goal/' rel='bookmark' title='Permanent Link: Return of the Becoming a Better Developer Meme: My 2010 SMART Goal'>Return of the Becoming a Better Developer Meme: My 2010 SMART Goal</a> <small>When I first started writing this blog, I devoted several...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>It’s too hard to pick just one topic to delve into after a five month blogging hiatus, so I thought I would reenter the blogosphere by just spewing forth some random thoughts that have been floating around in my head lately.</p>
<ol>
<li><strong>Lamda soup is yummy – </strong>As you probably guessed from the title of the post, I’ve currently got C# 3.0 on the brain. I’ve been burning through John Skeet’s most excellent <a href="http://www.amazon.com/gp/product/1933988363?ie=UTF8&amp;tag=caffcodeblog-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1933988363">C# in Depth: What you need to master C# 2 and 3</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" src="http://www.assoc-amazon.com/e/ir?t=caffcodeblog-20&amp;l=as2&amp;o=1&amp;a=1933988363" border="0" alt="" width="1" height="1" /> book this last week and am finally beginning to grok some of the finder points of anonymous delegates, lamdas, and closures that have alluded me up until now. I especially like how the book explains the original problems that the new language features were attempting to address and also how it provides most of the examples in 1.1 first before showing how they can be rewritten more efficiently using the new 2.0 and 3.0 language improvements.</li>
<li><strong>Side projects kill blogs</strong> – I started a side project back in February that has allowed me to learn a whole slew of frameworks that I’ve been itching to try like the <a href="http://www.asp.net/mvc/">MVC</a>, <a href="https://www.hibernate.org/343.html">NHibernate</a>, <a href="http://fluentnhibernate.org/">Fluent NHibernate</a>, <a href="http://jquery.com/">JQuery</a>, <a href="http://www.castleproject.org/container/index.html">Windsor</a>, and <a href="http://code.google.com/p/sharp-architecture/">Sharp-Architecture</a>. Unfortunately the pressure of learning all of those fun things on top of actually getting some work done pretty much sucked up all of my free time that used to go to blogging. By the time I finished the project a few months ago I was so burned out that I went on a fiction binge with such books as <a href="http://www.amazon.com/World-War-Z-History-Zombie/dp/0307346609">World War Z: An Oral History of the Zombie Wars</a>, <a href="http://www.amazon.com/Road-Cormac-McCarthy/dp/0307265439">The Road</a>, and <a href="http://www.amazon.com/Cryptonomicon-Neal-Stephenson/dp/0060512806">Cryptomonicon</a>. I think I’ve finally regained my sense of equilibrium enough to where I can start slipping some blogging back into the mix again.</li>
<li><strong>Turning my back on Active Record </strong>– Last year I started down the path of using <a href="http://www.castleproject.org/activerecord/index.html">Castle’s ActiveRecord</a> as a way to use NHibernate without all the messy XML mapping files. After having a chance to work with <a href="http://fluentnhibernate.org/">Fluent NHibernate</a>, I’m ready to ditch the messy attributes and nasty inheritance dependencies of Active Record in favor of a more <a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object">POCO</a>esque approach. Clean entity objects AND no xml files? What’s not to love?</li>
<li><strong>Third party controls are obsolete – </strong>When I decided to use Microsoft’s MVC Framework, one of my biggest concerns was the lack of built-in or third party controls. That was before I started to explore JQuery’s vast <a href="http://plugins.jquery.com/">plugin community</a>. With just a few lines of code and include files I was able to produce really nice looking calendar controls, autocomplete text boxes, media players, complex validation controls, and tool tips. It’s hard to imagine shelling out money for third party web controls ever again.</li>
<li><strong>Bringing recruiting to the next level with the Rejectomizer 2000</strong> – We are hiring for not one but FIVE separate positions in our department and yours truly has the dubious honor of being neck deep in it. As a polite gesture, we decided to send out an actual rejection email to anyone who went to the trouble to at least include a personalized cover letter with their resume. With our candidate pipeline being constantly refilled by 3 recruiters, Career Builder, and a stumbling economy this task quickly became a tedious chore…that is until I brought the full power of PowerShell to bear on the problem with a script that has affectionately been dubbed the Rejectomizer 2000 (source code to be provided in a later post). My most recent enhancement included adding a sound effect to the script of a flushing toilet, which I admit is totally cold hearted but at the same time it does help relieve the bitterness that tends to build up after sifting through hundreds of poorly formatted and otherwise indecipherable resumes in lieu of doing cool coding stuff.</li>
<li><strong>Swimming against the Information Stream – </strong>While my 15 month old now twitters in her crib and my grandma reads her RSS feeds on the smart phone that is embedded in her walker, I have taken bold steps to swim against the current information tide by devoting myself more to good old fashioned tree killing modes of learning. I suck at multi-tasking and am sick of feeling like my knowledge is becoming more and more spread thin these days, so I’ve lined up 10 technology books that I’ve been meaning to read forever and decided to go on a strict RSS and twitter diet until I finish every last one of them.</li>
<li><strong>Six Shooters should be outlawed – </strong>On a final note, I recently tested the limits of caffeine consumption by agreeing to drink a latte with six shots of espresso that one of my co-workers bought for me and then goaded me into drinking. Besides making my tongue a little numb and causing me to break out in a cold sweat, this highly potent drink, which we dubbed “The Six Shooter”, apparently sped up my response time by several orders of magnitude. According to office lore I responded to the question “what are you drinking?” before the first syllable had been fully uttered with a response that appeared to have been run through several very advanced compression algorithms. Moral of the story…don’t try this at home.</li>
</ol>
<p>Cheers,</p>
<p>Caffeinated Coder</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=526&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/return-of-the-becoming-a-better-developer-meme-my-2010-smart-goal/' rel='bookmark' title='Permanent Link: Return of the Becoming a Better Developer Meme: My 2010 SMART Goal'>Return of the Becoming a Better Developer Meme: My 2010 SMART Goal</a> <small>When I first started writing this blog, I devoted several...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/return-thoughtswherex-xiscaffeineinspired/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>A Year in the Life of Caffeinated Coder: Part Deux</title>
		<link>http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinated-coder-part-deux/</link>
		<comments>http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinated-coder-part-deux/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 19:13:46 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinated-coder-part-deux/</guid>
		<description><![CDATA[Here’s the second half of my whirlwind chronological tour of my past year from the perspective of my blog and technical life (see first half here):

 July: Take THAT legacy code &#8211; I didn&#8217;t write a single post during this month, however I had a very productive time at work as a result of finally [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Here’s the second half of my whirlwind chronological tour of my past year from the perspective of my blog and technical life (see <a href="http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinatedcoder-part-1/">first half here</a>):</p>
<ol>
<li><strong><a href="http://farm4.static.flickr.com/3091/3183087410_759518e001.jpg?v=0"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 10px; border-right-width: 0px" src="http://farm4.static.flickr.com/3091/3183087410_759518e001.jpg?v=0" border="0" alt="rhinomocks-120x90" width="124" height="94" align="right" /></a> July: Take THAT legacy code</strong> &#8211; I didn&#8217;t write a single post during this month, however I had a very productive time at work as a result of finally getting the hang of Rhino.Mocks and the Dependency Injection pattern as well as convincing my boss to let me start ripping open test seams in our code base. I&#8217;ve been able to leave clusters of tests around every area of code I&#8217;ve touched since then and have been a much happier coder as a result.</li>
<li><strong>Aug: My Blogging Hiatus</strong> &#8211; I finally break 2 months of blogging silence with <a href="http://www.caffeinatedcoder.com/the-blogging-hiatus-next-stop-shark-jump/">Blogging Hiatus: Next Stop Shark Jump</a>. Although I suffered minor bouts of blogger guilt, I mostly just enjoyed the extra free time. Sofia finally started sleeping through the night so I was able to not only catch up on my sleep, but also enjoy get in some nighttime reading for the first time in ages. Besides indulging in rereading <a href="http://www.amazon.com/Earthsea-Trilogy-Ursula-K-Guin/dp/0739452711">some light fantasy favorites</a>, I made my way through <a href="http://www.amazon.com/Kite-Runner-Khaled-Hosseini/dp/1594480001">the Kite Runner</a> and <a href="http://pragprog.com/titles/rails2/agile-web-development-with-rails">Agile Web Development with Rails</a>.</li>
<li><strong>Sept: Rethinking Links</strong> &#8211; Every since I started blogging, I sought to incorporate some way to comment on other posts that I liked. In the beginning, I fulfilled this need through a humorous series of posts that I called the <a href="http://www.caffeinatedcoder.com/category/11/">Caffeinated Codeys</a>. Although I had a great time writing these, I eventually felt too constrained by the format and frequency so I quietly abandoned it around the time Sofia was born. During this month I <a href="http://www.caffeinatedcoder.com/when-delicious-attacks/">briefly experimented with an automated Delicious feed</a> but quickly abandoned it in favor of the <a href="http://www.caffeinatedcoder.com/category/triple-shot-links/">Triple Shot Links</a> format, which I like quite a bit and plan to keep doing.</li>
<li><strong>Oct: A Tech Book Windfall</strong> &#8211; I responded to <a href="http://www.noop.nl/2008/09/win-100-worth-of-software-development-books.html">Jurgen Appelo&#8217;s $100 tech book contest questions</a> with a couple of posts on what <a href="http://www.caffeinatedcoder.com/the-driving-forces-behind-my-coding-compulsion/">motivates</a> and <a href="http://www.caffeinatedcoder.com/motivational-anti-patterns/">unmotivates</a> me and as a result got myself some shiny new copies of <a href="http://www.amazon.com/gp/product/0135974445?ie=UTF8&amp;tag=noopnl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0135974445">Agile Software Development: Principles, Patterns and Practices</a>, <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&amp;tag=noopnl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=020161622X">The Pragmatic Programmer: From Journeyman to Master</a>, and <a href="http://www.amazon.com/gp/product/0321150783?ie=UTF8&amp;tag=noopnl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321150783">Lean Software Development: An Agile Toolkit</a>. Not surprisingly, I still haven&#8217;t had a chance to read them, but that&#8217;s what New Year&#8217;s Resolutions are for, right?</li>
<li><strong>Nov:  Progress on R# Jedi Training:</strong> I&#8217;ve been using R# for about a year and a half now, but it wasn&#8217;t until this month that I broke out of my novice rut. I came up with <a href="http://www.caffeinatedcoder.com/breaking-out-of-my-resharper-rut/">some techniques</a> to extend my knowledge of this most excellent product earlier in the year, but it wasn&#8217;t until I <a href="http://www.caffeinatedcoder.com/kc-day-of-dot-net-resharper-presentation-and-resources/">volunteered to speak at the KC Day of Dot Net</a> that my motivation kicked in enough to make some real progress. There&#8217;s nothing like the fear of public humiliation to help further your expertise in a given area.</li>
<li><strong>Dec: Milestones in both Rails and Source Control:</strong> I finish the year with a bang by <a href="http://www.caffeinatedcoder.com/dospecescreations-some-initial-thoughts-on-building-my-first-rails-app/">launching my first Rails app into production</a>, thus simultaneously completing one of my <a href="http://www.caffeinatedcoder.com/seven-things-i-want-to-do-differently-in-2008-2/">2008 resolutions</a> as well as making my wife a happy camper (it was an e-<strong><strong><a href="$TortoiseSVN4.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 10px; border-right-width: 0px" src="http://farm4.static.flickr.com/3511/3183087420_d382903d3a.jpg?v=0" border="0" alt="TortoiseSVN" width="98" height="45" align="left" /></a></strong></strong>commerce site for her <a href="http://www.dospecescreations.com">jewelry business</a>). On the work front, I spent most of the month on a <a href="http://www.caffeinatedcoder.com/curing-cancer-preventing-global-warming-and-achieving-world-peace-by-migrating-from-vss-to-svn/">VSS to SVN Migration</a> project, thus ensuring my final victory over my most hated <a href="http://www.caffeinatedcoder.com/a-poetic-tribute-to-visual-source-safe/">arch-nemesis</a>.</li>
</ol>
<p>I guess 2008 wasn&#8217;t such a bad year after all&#8230;</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=412&type=feed" alt="" />

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinated-coder-part-deux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Year in the Life of CaffeinatedCoder: Part 1</title>
		<link>http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinatedcoder-part-1/</link>
		<comments>http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinatedcoder-part-1/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 07:28:51 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinatedcoder-part-1/</guid>
		<description><![CDATA[Here&#8217;s the first half of a whirlwind chronological tour of my past year from the perspective of my blog and technical life:

 Jan: Blogging Without a Net &#8211; I started off the year with a resolution to cast off the safety net of the massive GeeksWithBlogs blogging collective and venture out on my own. In [...]


Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/my-legacy-to-the-alt-net-movement/' rel='bookmark' title='Permanent Link: My Legacy to the ALT.NET Movement'>My Legacy to the ALT.NET Movement</a> <small>I was just debating whether I should try to sweet...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the first half of a whirlwind chronological tour of my past year from the perspective of my blog and technical life:</p>
<ol>
<li><strong><img style="margin: 10px" src="http://farm3.static.flickr.com/2287/2290276528_36a9b2bcd2.jpg?v=0" align="right"> Jan: Blogging Without a Net &#8211; </strong>I started off the year with a resolution to <a href="http://www.caffeinatedcoder.com/dear-geekswithblogs-lets-just-be-friends/">cast off</a> the safety net of the massive <a href="http://geekswithblogs.net/">GeeksWithBlogs</a> blogging collective and venture out on my own. In the process, I pick up a few things on PHP as I tinker with my fancy new WordPress blogging engine.
<li><strong>Feb: The Post That Launched a Thousand Flames</strong> &#8211; After getting roughed up a bit on <a href="http://www.reddit.com">Reddit</a> for a post on <a href="http://www.caffeinatedcoder.com/programming-language-trends/">programming language trends</a>, I start wondering why .NET developers get no love in the industry and end up writing a <a href="http://www.caffeinatedcoder.com/are-net-developers-the-american-tourists-of-the-software-industry/">post comparing .NET developers to American Tourists</a>. Although the post languished in obscurity for several weeks, it ended up getting over 30,000 hits along with a combined total of 700 comments in the course of just a few days. As you can imagine, it was quite an <a href="http://www.caffeinatedcoder.com/anatomy-of-a-flame-war/">eye-opening experience</a> for a somewhat newbie blogger like myself.&nbsp;
<li><strong>Mar: Little Miss CaffeinatedCoder Arrives -</strong> At the spritely young age of 36, I become a father for the first time. This was by far the high point of the year for me. It also marked the beginning of a rather lengthy slowdown on the blogging front. To my credit, I did manage to squeeze in <a href="http://www.caffeinatedcoder.com/a-caffeine-inspired-interview-with-jeff-atwood-from-codinghorrorcom/">an interview with Jeff Atwood</a> at the end of the month. I was thrilled that he responded to my email request and was impressed by the thoughtfulness of his answers.
<li><strong>April: Networking Nirvana and Geek Rage &#8211; </strong>I began the month by making the rather egregious mistake of attending the <a href="http://altdotnet.org/events/seattle">Alt.NET conference in Seattle</a>. The conference itself was amazing and allowed me to finally meet hoards of people who I had been following through my RSS Reader for ages. The mistake was rather in me naively believing my wife when she said it was OK to leave her alone with a 4 week old colicky baby for the weekend in order to attend. I&#8217;m still paying for that one&#8230;:-) The experience was also slightly tainted by a rather unpleasant exchange with a certain notorious Alt.NET&#8217;er in the comment section of <a href="http://www.caffeinatedcoder.com/altnet-conference-part-deux-was-the-sequel-was-better-than-the-original/">my conference retrospective post</a> and then later on twitter. It led me to publish a <a href="http://www.caffeinatedcoder.com/geek-community-path-to-self-actualization-or-pit-of-unproductive-negativity/">somewhat bitter post on the topic of geek community</a> and eventually withdraw from twitter (although that decision ultimately had more to do with it being a productivity drain).&nbsp;&nbsp;
<li><strong>May: I Finally Get Organized -</strong> The act of trying to juggle the new demands of fatherhood along with my old interests in blogging and after-hours geek learning made me quickly realize that I was pretty inefficient and unorganized. In a fit of frustration, I <a href="http://www.caffeinatedcoder.com/the-joy-of-freeing-up-mental-ram/">picked up a copy of Getting Things Done</a> and worked pretty hard to <a href="http://www.caffeinatedcoder.com/10-practical-tips-on-freeing-up-mental-ram/">refactor and hone my organizational skills</a>. I&#8217;ve stuck with most of the principals from the book and feel pretty good about relatively low levels of chaos in my life at the moment.
<li><strong>June: SQL Is for the Birds &#8211; </strong>We finally take the ORM plunge at work and decide to use <a href="http://www.castleproject.org/activerecord/index.html">Castle&#8217;s Active Record</a> as a replacement for our custom data access layer. I manage to get a good month of development time in before the project gets temporarily shelved to work on some legacy projects that took a higher priority. It was sad to have to return to writing raw SQL again, but the experience was positive enough to convince me to that <a href="http://www.caffeinatedcoder.com/just-say-no-to-manual-crud/">ORM&#8217;s have progressed too far to still be spending time on doing manual CRUD</a>.</li>
</ol>
<p>Next up: my adventures with Ruby on Rails, Subversion, R#, mocking legacy code, and winning some free techie books.</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=409&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/my-legacy-to-the-alt-net-movement/' rel='bookmark' title='Permanent Link: My Legacy to the ALT.NET Movement'>My Legacy to the ALT.NET Movement</a> <small>I was just debating whether I should try to sweet...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/a-year-in-the-life-of-caffeinatedcoder-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Driving Forces Behind My Coding Compulsion</title>
		<link>http://www.caffeinatedcoder.com/the-driving-forces-behind-my-coding-compulsion/</link>
		<comments>http://www.caffeinatedcoder.com/the-driving-forces-behind-my-coding-compulsion/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 05:44:14 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/the-driving-forces-behind-my-coding-compulsion/</guid>
		<description><![CDATA[This is part two of my quest to convince Jurgen and his fellow judges that I should be the one who gets to blow the $100 dollar Amazon gift certificate on cool Software Development books.
In part one, I approached the question backwards by describing seven motivational anti-patterns.
Now I&#8217;ll focus on the positive and list some [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>This is part two of my quest to convince <a href="http://www.noop.nl/">Jurgen</a> and his fellow judges that I should be the one who gets to blow the <a href="http://www.noop.nl/2008/09/win-100-worth-of-software-development-books.html">$100 dollar Amazon gift certificate</a> on cool Software Development books.</p>
<p>In part one, I approached the question backwards by describing seven <a href="http://www.caffeinatedcoder.com/motivational-anti-patterns/">motivational anti-patterns</a>.</p>
<p>Now I&#8217;ll focus on the positive and list some of the things that I find most motivating as a developer. </p>
<p>In no particular order&#8230;</p>
<ol>
<li><strong>Time in the Zone &#8211; </strong>This is like crack cocaine for me and I don&#8217;t get to experience it nearly enough. It is when I am so absorbed in my work that time flies by and I suddenly realize that 4 hours have gone by when it only felt like 10 minutes. It usually occurs when I feel totally engaged in a problem with highly challenging tasks that require skills that I feel very competent in.
<li><strong>Solving the Mystery &#8211; </strong>Debugging is one of my favorite activities. When I get a really tricky problem to sink my teeth into, I tend to anthropomorphize it into a living foe and then start taunting and swearing at it under my breath. I&#8217;ve even been known to do a little touch down dance after emerging victorious from particularly long debugging session.
<li><strong>Finding Creative Alternatives &#8211; </strong>I love being confronted with &#8216;impossible&#8217; technical or logistical problems because they are almost always surmountable by taking several steps back and brainstorming completely different approaches to the problem. There have been a few times where I&#8217;ve felt like a zen master for having side stepped a massively difficult technical problem by simply rearranging the workflow on the screen or by eliminating the need for the feature altogether and satisfying the underlying requirements in other ways instead.
<li><strong>Eliminating Tediousness </strong>- I have no patience for tedious manual processes myself, so I find it very rewarding whenever I have been able to eliminate tedium from other people&#8217;s work days through the software I help create.&nbsp;
<li><strong>Simplifying the Complex</strong> &#8211; For some reason I find it really satisfying to reduce the number of lines of code in a project by rigorously applying the <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY principle</a> and then making it infinitely more readable through refactoring and using thoughtful naming conventions. I also love reducing the number of clicks that a user is required to make in the user interface.&nbsp;
<li><strong>Uniting in Purpose &#8211; </strong>It is way too common in the industry to either work in virtual isolation (even when on a team) or actually work against each other. Nothing kills productivity faster than wasting time playing the blame game or falling into the &#8216;its not my problem&#8217; trap. There have been a few times (usually spurred by crazy deadlines) when I&#8217;ve felt like I bonded with a group because we all truly shared a common goal and we all felt collective ownership of the end product. It&#8217;s difficult to reproduce all the ingredients that led to this group dynamic, but I can tell you that it was a true pleasure to experience and very highly motivating.
<li><strong>Receiving the Occasional Spousal Peace-Making Gift</strong> &#8211; I&#8217;ll throw in at least one superficial motivator to round off the list. Sometimes the spousal unit gets really pissed off when I have to work late or when work commitments override personal commitments. Those are the times when a simple gift certificate from the boss for a fancy dinner and night out on the town really come in handy. It&#8217;s flat out bribery, but highly effective. Afterall, when the wife is happy, then everyone is happy.</li>
</ol>
<p>Oh&#8230;and I also find it very motivating whenever I get a $100 worth of free programming books (hint&#8230;hint).</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=325&type=feed" alt="" />

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/the-driving-forces-behind-my-coding-compulsion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Motivational Anti-Patterns</title>
		<link>http://www.caffeinatedcoder.com/motivational-anti-patterns/</link>
		<comments>http://www.caffeinatedcoder.com/motivational-anti-patterns/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 04:51:47 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/motivational-anti-patterns/</guid>
		<description><![CDATA[I&#8217;ve decided to take a 2 part stab at answering Jurgen&#8217;s question about what motivates me in the work place.
To start with, I decided to meditate on a few things that tend to grab my motivation by the metaphorical gonads and squeeze. 
In no particular order&#8230;

 Sunshine-Up-the-Arse Speeches &#8211; Luckily these are most decidedly not [...]


Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/ninja-level-productivity-tip-evading-an-unwanted-meeting-in-3-easy-steps/' rel='bookmark' title='Permanent Link: Ninja Level Productivity Tip: Evading an Unwanted Meeting in 3 Easy Steps'>Ninja Level Productivity Tip: Evading an Unwanted Meeting in 3 Easy Steps</a> <small>Do you have a meeting coming up that you desperately...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to take a 2 part stab at answering <a href="http://www.noop.nl/2008/09/win-100-worth-of-software-development-books.html">Jurgen&#8217;s question about what motivates me</a> in the work place.</p>
<p>To start with, I decided to meditate on a few things that tend to grab my motivation by the metaphorical gonads and squeeze. </p>
<p>In no particular order&#8230;</p>
<ol>
<li><strong><img style="margin: 10px" src="http://farm4.static.flickr.com/3126/2883606801_7306966551.jpg?v=0" align="right"> Sunshine-Up-the-Arse Speeches</strong> &#8211; Luckily these are most decidedly not part of the culture where I currently work, but I received enough of them at my prior job to hold me over for the rest of my career. I find impromptu homilies by CIO&#8217;s that are ripe with football analogies and dramatic pauses to be particularly loathsome. There are only so many happy mental places a developer can go to during these trying times before nervous ticks start developing and homicidal tendencies start to go unchecked.
<li><strong>Paper Certificates</strong> &#8211; At the successful conclusion of a 3 year project, I actually received a paper certificate of appreciation that my manager downloaded from the internet. Despite being laminated with great care by the secretary, these certificates were not received with quite the enthusiasm hoped for my management. I think I did actually hang mine on the wall for a little bit, but only because it made me giggle every time I looked at it.
<li><strong>Inappropriate Praise &#8211; </strong>I would rather have a boss that gives out too little praise than one that doles out too much. With the emotionally stingy boss, at least you know that the praise is honest on the rare occasions that it does come. With an overly effusive boss, however, even the truly genuine compliments will get lost in all the sickeningly positive noise.
<li><strong>Random Public Recognition\Rewards</strong> &#8211; Publicly praising a person in front of their peers during a meeting and then handing them a $50 gift certificate for some random bit of overtime or good work they recently did is one of those ideas that sounds good in theory but only leads to trouble. The chances are that one person left that meeting feeling awkward, while the rest left feeling bitter.&nbsp;
<li><strong>High Friction Environments</strong> &#8211; I can&#8217;t remember how many times I wasted the day in an inane HR, audit, or department meeting and thought to myself&#8230;&#8217;I just want to do my job&#8230;if only they would let me do my job I would be so happy&#8217;. I had similar experiences of feeling that my company was one of the major roadblocks to getting work done while chasing down forms and signatures for piles of paperwork that were required to do the simplest of tasks. It&#8217;s amazing how much of an affect that just canceling unnecessary meetings and streamlining inefficient processes can have on morale.
<li><strong>Cancerous Team Members</strong> &#8211; Nothing saps motivation faster than a team-member who is allowed by management to consistently be abusive, arrogant, lazy, or incompetent without any repercussions. If you are a boss and want to motivate workers, then get a back-bone and deal decisively with the department&#8217;s resident problem child. Remember, we just want to be allowed to work in peace and sometimes people are the biggest roadblock of all.
<li><strong>Habitual Forced Overtime</strong> &#8211; As I argued <a href="http://www.caffeinatedcoder.com/the-case-against-overtime/">here</a>, I think overtime is rarely a good idea and is almost always preventable. However, if you are backed into a corner but still don&#8217;t want to incur the motivational penalty that inevitably goes along with overtime, then make sure it is infrequent, as flexible as possible, and compensated in some way (preferably with extra time off after the goal is met).</li>
</ol>
<p>Feel free to chime in if I left any major gonad-squeezing anti-patterns out&#8230;</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=324&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/ninja-level-productivity-tip-evading-an-unwanted-meeting-in-3-easy-steps/' rel='bookmark' title='Permanent Link: Ninja Level Productivity Tip: Evading an Unwanted Meeting in 3 Easy Steps'>Ninja Level Productivity Tip: Evading an Unwanted Meeting in 3 Easy Steps</a> <small>Do you have a meeting coming up that you desperately...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/motivational-anti-patterns/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Reframing the Experience vs. Knowledge Debate</title>
		<link>http://www.caffeinatedcoder.com/reframing-the-experience-vs-knowledge-debate/</link>
		<comments>http://www.caffeinatedcoder.com/reframing-the-experience-vs-knowledge-debate/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 05:41:35 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=320</guid>
		<description><![CDATA[I recently read Jurgen Appelo&#8217;s post, Professionalism = Knowledge First, Experience Last, and then Ted Neward&#8217;s somewhat harsh response, From the &#8220;You Must Be Trolling for Hits&#8221; Department&#8230;.
Although both posts rang true when highlighting the various problems that occur when developers are deficient in either knowledge or experience, I don&#8217;t think either post pursued a [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I recently read <a href="http://nooperation.typepad.com/about.html">Jurgen Appelo&#8217;s</a> post, <a href="http://www.noop.nl/2008/07/professionalism-knowledge-first-experience-last.html">Professionalism = Knowledge First, Experience Last</a>, and then <a href="http://blogs.tedneward.com">Ted Neward&#8217;s</a> somewhat harsh response, <a href="http://blogs.tedneward.com/2008/07/24/From+The+QuotYou+Must+Be+Trolling+For+Hitsquot+Department.aspx">From the &#8220;You Must Be Trolling for Hits&#8221; Department&#8230;</a>.</p>
<p>Although both posts rang true when highlighting the various problems that occur when developers are deficient in either knowledge or experience, I don&#8217;t think either post pursued a very fruitful path by trying to prioritize one over the other.</p>
<p>There are simply too many horror stories of technical sabotage perpetrated by both <a href="http://www.joelonsoftware.com/articles/fog0000000018.html">architecture astronauts</a>, who inappropriately apply their knowledge, and <a href="http://weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBA-Monkey.aspx">developer monkeys</a>, who viciously fighting to protect absurdly sub-optimal status quos for no other reason than it has always been that way.</p>
<p>If both paths can potentially lead to such undesirable results, then what is the point of choosing between the lesser of two evils?</p>
<p>To me a much more interesting question to ask and then try to answer is what makes some knowledge and experience more valuable than other knowledge and experience.</p>
<p>In other words, how is it that I can interview two candidates with the exact same number of years of experience and an almost identical list of buzzwords on their resumes, yet there is still an order of magnitude difference between them in terms of the overall value they bring to an organization?</p>
<p>I believe the gap exists because there are a number of knowledge and experience &#8216;multipliers&#8217; that some people utilize and others don&#8217;t.</p>
<p>An example of an experience multiplier would be self-reflection. A person who is naturally self-aware and systematically reflects on both their successes and failures is going to gain a lot more value from their experiences than a person who always focuses on the &#8216;what&#8217; but never the &#8216;why&#8217;.</p>
<p>An example of a knowledge multiplier would be a healthy respect for context. Every methodology, best practice, framework, and tool performs optimally under a certain set of circumstances while performing terribly under other sets of circumstances. A person who is conscientious enough the learn the full context of the environment they are in before making any recommendations will be far more effective in being able to use their knowledge than someone who impulsively pushes the latest and greatest solution regardless of the costs and consequences.</p>
<p>The more multipliers that people employ, the higher quality of experience and knowledge they will have. </p>
<p>So if you&#8217;re trying to resolve the Experience vs. Knowledge debate for yourself so that you know whether to focus more on the number of years of experience or the number of relevant buzzwords on the next batch of resumes that shows up on your desk, try this instead.</p>
<p>Come up with a list of what you consider to be knowledge and experience multipliers (stay tuned for my list coming soon) and use them to create list of interview questions. Based on the answers to these questions, award each candidate a score of 1 to 10 for the quality of their experience and another score of 1 to 10 for the quality of their knowledge. Then add both numbers together and choose the candidate with the highest overall score.</p>
<p>It may not be a perfect solution, but at least it seems better to me than focusing solely on experience or solely on knowledge because you happened to have been burned by an architectural astronaut or developer monkey recently.</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=320&type=feed" alt="" />

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/reframing-the-experience-vs-knowledge-debate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How Did I Get Started In Software Development?</title>
		<link>http://www.caffeinatedcoder.com/how-did-i-get-started-in-software-development/</link>
		<comments>http://www.caffeinatedcoder.com/how-did-i-get-started-in-software-development/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 18:21:09 +0000</pubDate>
		<dc:creator>Russell Ball</dc:creator>
				<category><![CDATA[Musings, Rants]]></category>

		<guid isPermaLink="false">http://www.caffeinatedcoder.com/?p=318</guid>
		<description><![CDATA[Someone (Max) finally pegged me with this old tech meme that has been floating the blogosphere forever. I decided to be a good sport about it, so here&#8217;s the whole seedy story of how I got started in the industry.
How old were you when you started programming?
Although I do remember spending several hours as a [...]


Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/book-review-lean-software-development-an-agile-toolkit/' rel='bookmark' title='Permanent Link: Book Review &#8211; Lean Software Development: An Agile Toolkit'>Book Review &#8211; Lean Software Development: An Agile Toolkit</a> <small>I just finished my February book from my 2010 tech...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Someone (<a href="http://www.codesqueeze.com/">Max</a>) finally pegged me with this old tech meme that has been floating the blogosphere forever. I decided to be a good sport about it, so here&#8217;s the whole seedy story of how I got started in the industry.
<p><strong>How old were you when you started programming?</strong>
<p>Although I do remember spending several hours as a pre-teen typing in BASIC programs on my Comodore 64, I never really became infatuated with computers and programming until I was in my mid twenties. Before that I was a History major in college and then spent my first few professional years teaching in an inner city Washington DC school through an alternative certification program called <a href="http://www.teachforamerica.org/">Teach For America</a>.
<p><strong>How did you get started in programming?</strong>
<p>After four very long years, I realized that I was definitely not cut out to be a teacher. My original plan had been to go back to grad school to get a PhD in history after a few years of teaching, but I decided I really didn&#8217;t want to do that after all so I was looking for new options. I thought about all the things I either really liked doing or was good at, such as studying foreign languages, playing chess, problem solving, and being hyper focused on single problems for hours on end, and somehow it occurred to me that I might like computer programming.
<p>On a whim I picked up a couple of brick sized C++ books on the first day of a summer vacation one year and was immediately sucked in. I spent every waking moment for the rest of that summer obsessively trying out every code sample and demo exercise I could find using notepad and a basic command line compiler. By the end of the summer I knew I had finally found my professional calling.
<p>After that I concocted an insanely ambitious 9 month plan of intensive self-study and actually managed to follow through with it despite being perpetually sleep deprived. By the end of the school year, I worked up enough nerve to quit my teaching job and somehow managed to find a real job before my paltry savings ran out.
<p><strong>What was your first language?</strong>
<p>As I mentioned before, I really did things ass-backwards by starting out with C++ instead of some scripting language (I didn&#8217;t know any better at the time). However, in hindsight I think it was a blessing in disguise because it helped give me pick up some lower level foundational principals that I otherwise would have missed out on by not receiving a traditional Computer Science education. It also made everything afterwards look relatively easy by comparison.
<p><strong>What was the first real program you wrote?</strong>
<p>I wrote a few classic ASP applications with Access back ends for the school I worked for in order to help automate a new paper intensive professional development process that they had just started. I&#8217;m not sure if my apps were used much after I left, but at least they allowed me to escape the world of contrived book examples and finally get some real experience with the software development process.
<p><strong>What languages have you used since you started programming?</strong>
<p>After C++, I studied Java for a while because I had a friend who thought he could get me a job as a java programmer. As my impending job search approached and I was scrambling around for some opportunities to build real applications, I decided to switch to Cold Fusion and then ASP because those were the options available to me on the school district&#8217;s web servers. I went on to use ASP, Javascript, and VB6 (COM) in my first job and then .NET as soon at the beta was released. I&#8217;ve been a .NET developer every since then, but have experimented with Ruby, Python, and PHP over the last few years. I also had to fix a production bug in a really old version of PowerBuilder once, but I&#8217;d rather not talk about that&#8230;
<p><strong>What was your first professional programming gig?</strong>
<p>I worked for a publishing company writing the front end for a classic ASP\COM internal web app that tracked trade magazine subscriptions which they gave to people in exchange for selling their souls to the advertising demons. I think that was the last time I did any significant web development other than routine maintenance.
<p><strong>If you knew then what you know now, would you have started programming?</strong>
<p>Absofrikenlutely. My only regret is that I didn&#8217;t start earlier.
<p><strong>If there is one thing you learned along the way that you would tell new developers, what would it be?</strong>
<p>If you don&#8217;t like being a continuous learner, then this isn&#8217;t the profession for you. The best way to maintain your motivation over time is to constantly cultivate your passion for software as well as your humility.
<p><strong>What’s the most fun you’ve ever had… programming?</strong>
<p>I love writing code, but my most enjoyable experience on the job was actually doing some security penetration testing on all of our internally developed applications at my last job. My knowledge in this area is still pretty basic, but the analysis processes reminded me of a chess game where you had to fight for small strategic advantages that you could eventually string together to win your objective.</p>
<p>One particularly satisfying moment was when I finished my analysis and then let our IT Security Specialist know that I found some serious security holes. He didn&#8217;t believe me, so I decided to provide a demonstration. The next day I had the pleasure of watching the look of shock on his face as I asked him to disable the new domain admin account that I was able to create for myself and gave him the instructions for how to remove the vulnerability. </p>
<p>That was fun.</p>
<p>If I ever get bored with corporate development, then I&#8217;m guessing that I&#8217;ll migrate over to the security world. In other words, I want to be a hacker when I grow up.</p>
<p>&nbsp;</p>
<p><strong>Now with the tagging&#8230;</strong></p>
<p>I&#8217;m tagging <a href="http://graysmatter.codivation.com/">Justice Gray</a> because I&#8217;ve been waiting for an excuse to exact karmic revenge on him for starting that insipid <a href="http://graysmatter.codivation.com/HowIAmBecomingABetterDeveloperPart1OfInfinity.aspx">How I&#8217;m becoming a better developer</a> meme last year.</p>
<p>I&#8217;m also tagging <a href="http://geekswithblogs.net/dlussier/Default.aspx">D&#8217;Arcy Lussier</a> under the condition that he somehow work in a picture of Justice Gray <a href="http://graysmatter.codivation.com/WhatJusticeGrayMeansToMeByDArcyLussier.aspx">wearing a Princess Lei bikini and looking longingly at Jabba the Hut</a> into the post.</p>
<img src="http://www.caffeinatedcoder.com/?ak_action=api_record_view&id=318&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.caffeinatedcoder.com/book-review-lean-software-development-an-agile-toolkit/' rel='bookmark' title='Permanent Link: Book Review &#8211; Lean Software Development: An Agile Toolkit'>Book Review &#8211; Lean Software Development: An Agile Toolkit</a> <small>I just finished my February book from my 2010 tech...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.caffeinatedcoder.com/how-did-i-get-started-in-software-development/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
