<?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>Elegant Code &#187; Butters</title>
	<atom:link href="http://elegantcode.com/category/butters/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Feb 2012 04:40:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>How Do I Learn</title>
		<link>http://elegantcode.com/2009/03/07/how-do-i-learn/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-do-i-learn</link>
		<comments>http://elegantcode.com/2009/03/07/how-do-i-learn/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 23:03:46 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Butters]]></category>
		<category><![CDATA[Kaizen]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/03/07/how-do-i-learn/</guid>
		<description><![CDATA[You may have noticed that I didn&#8217;t get around to write that many blog posts over the last two months. While some of you may regret this, others would argue that the universe has been a much better place since then . Anyway, I haven&#8217;t been picking my nose these last couple of months. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>You may have noticed that I didn&#8217;t get around to write that many blog posts over the last two months. While some of you may regret this, others would argue that the universe has been a much better place since then <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Anyway, I haven&#8217;t been picking my nose these last couple of months. I&#8217;ve been working on a small sample application (which is still very much work-in-progress) to straighten out some of my thoughts about application design and architectures. While working on this &#8220;home project&#8221;, I also get a chance to dive into some cool stuff like <a href="http://fluentnhibernate.org/" target="_blank">Fluent NHibernate</a>, <a href="http://structuremap.sourceforge.net/Default.htm" target="_blank">StructureMap</a>, <a href="http://www.martinfowler.com/dslwip/" target="_blank">DSL&#8217;s</a>, etc. While I&#8217;ve been having fun, I completely neglected to write blog posts. That&#8217;s something that I definitely want to improve over the next couple of months.</p>
<p>Anyway, back to the point that I&#8217;m trying to make here. The only way I can learn is by actually doing development work, whether its as big as a two year project or as small as a <a href="http://codekata.pragprog.com/2007/01/code_kata_backg.html" target="_blank">Code Kata</a>. In order to become a software craftsman someday, I need to practice. Lots and lots of practice.</p>
<p>I also learn a lot from reading books, articles, blog posts, watching screencasts or video recordings from conferences and last but not least by reading code from respectful open-source projects. But in the end, they only sharpen my theoretical skills. In order to really challenge my thoughts, I need to be practicing.</p>
<p>Practice is what makes people craftsmen in other fields as well like surgeons, plumbers, repairmen, etc.. But for some reason, developers think that they can sit back, write code from nine to five and muddle on. While there is a time and place for everything in our lives, this particular attitude makes that the state of our profession can be much compared to the dark ages. We need to become better at what we do and who we are.</p>
<p>Somehow related, I completely agree with <a href="http://blog.objectmentor.com/articles/2009/02/27/whiners-that-fail" target="_blank">this blog post</a> from Uncle Bob where he talks about being responsible for your own career.</p>
<blockquote><p><em>YOU, and NO    ONE ELSE, is responsible for your career. Your employer is not responsible for it. You should not depend on your employer to advance your career. You should not depend on your employer to buy you books, it’s great if they do, but it’s not really their responsibility. If they won’t buy them, YOU buy them! It’s not your employers responsibility to teach you a new language. It’s great if they send you to a training course, but if they don’t YOU teach the language to your self!</em></p></blockquote>
<p>Every book I&#8217;ve ever read about software development is a book that I bought myself from my own money. All the magazines I&#8217;m subscribed to, I pay from my own pocket. I&#8217;m responsible for my own learning, and I&#8217;m willing to invest whatever it takes to accomplish that. Whenever I want to learn something new, I&#8217;m not waiting for my employer to give me an opportunity. I make my own opportunities!</p>
<p>I realize I&#8217;m a bit late for the previous Butter&#8217;s Monthly Bone. I can only hope that Butters won&#8217;t eat me alive <img src='http://elegantcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/03/07/how-do-i-learn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Learn</title>
		<link>http://elegantcode.com/2009/02/17/how-i-learn/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-i-learn</link>
		<comments>http://elegantcode.com/2009/02/17/how-i-learn/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 23:45:43 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Butters]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/02/17/how-i-learn/</guid>
		<description><![CDATA[By doing. It is as simple as that. Books I can’t go to sleep unless I have read for 30 minutes or so first, but I typically don’t read technical books during this time. I have been carrying technical books to my kid’s wrestling practice, though and I do a LOT of reading on meet [...]]]></description>
			<content:encoded><![CDATA[<p>By doing. It is as simple as that.</p>
<h2>Books</h2>
<p>I can’t go to sleep unless I have read for 30 minutes or so first, but I typically don’t read technical books during this time. </p>
<p>I have been carrying technical books to my kid’s wrestling practice, though and I do a LOT of reading on meet days where I wait 6 hours for 4 matches to occur while sitting in the bleachers. Books are important and choosing them carefully is a big deal because our technical books are so darn expensive. Anyone want to form a book exchange club?</p>
<p>Books are great, but they typically convey ideas without complete understanding. Understanding for me comes only through practice. For me, creating software is just like playing an instrument. </p>
<p>Reading about a technique doesn’t give it to you. You must actually practice and fail before earning it.</p>
<h2>Blogs</h2>
<p>I use blogs as filler in my day. I read on the train (no train in Boise) and while waiting at the airport, etc. I probably spend 30 minutes a day reading blogs on my iPhone via the Feeds application tied to my Google Reader. It’s great.</p>
<p>It can get overwhelming quickly, though. So I have backed off to a manageable number of blogs that resonate with me. </p>
<p>Blogs hold a wealth of information, though. I often find new ideas in blogs where books offer only well presented rehashing of existing ideas. Blogs also tend to be very context specific, so I have a better chance of finding someone who shares my pain than to read about it in a book.</p>
<h2>Katas</h2>
<p>I firmly believe in coding <a href="http://en.wikipedia.org/wiki/Kata" target="_blank">katas</a>. From Wikipedia:</p>
<blockquote><p><b>Kata</b> (? or ?, <i>literally: &quot;form&quot;</i>) is a Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs.</p>
</blockquote>
<p>Note “practiced either solo or in pairs”. Wildly appropriate for learning a new technology isn’t it?</p>
<p>Katas are prescribed movements, like following a detailed Hands on Lab. They don’t get you to mastery and they aren’t intended to. Practiced over and over, katas and labs are powerful tools to introduce muscle memory so that when the time comes for sparing or writing the actual application, the technique is in your head.</p>
<p>It is also my experience that like katas, repeated passes through technology tutorials will produce deeper understanding with each successive pass. </p>
<h2>Learning by Doing</h2>
<p>The thing about any craft is that it is not enough to understand it. This is the difference between the academic and the practitioner. One must have both a fundamental understanding as well as the muscle memory of execution to be considered a master of any craft. I can read until I am blue in the face about carpentry, but if I try to cut a straight line, the first 10 will be crooked.</p>
<p>For me, the motion of performing the exercise may take a repetition or two until it sticks, but once it does I am able to proceed to the next level of understanding: The ability to intelligently question the technique. I don’t dare <a href="http://elegantcode.com/2009/02/17/fluent-interfaces-what-am-i-missing/" target="_blank">open my big mouth like this</a>, until I have worked with the system enough to understand what I am questioning.</p>
<p>The repetition in the motion of doing is required for fundamental understanding beyond unapplied theory. That’s why “non-coding architect” is a derogatory term.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/02/17/how-i-learn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bring on the Programmer Apologists</title>
		<link>http://elegantcode.com/2009/01/29/bring-on-the-programmer-apologists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bring-on-the-programmer-apologists</link>
		<comments>http://elegantcode.com/2009/01/29/bring-on-the-programmer-apologists/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 03:05:18 +0000</pubDate>
		<dc:creator>Chris Brandsma</dc:creator>
				<category><![CDATA[Butters]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/01/29/bring-on-the-programmer-apologists/</guid>
		<description><![CDATA[I&#8217;ve been watching and participating with the Alt.Net, Design Patterns, and Best Practices groups for a while now.&#160; Sometime on the sidelines, sometime in the thick of things.&#160; I watch as people go about confronting and teaching each other, sometimes with the greatest of respect &#8212; other times, not so much.&#160; One thing is apparent [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been watching and participating with the Alt.Net, Design Patterns, and Best Practices groups for a while now.&nbsp; Sometime on the sidelines, sometime in the thick of things.&nbsp; I watch as people go about confronting and teaching each other, sometimes with the greatest of respect &#8212; other times, not so much.&nbsp; One thing is apparent to me, many people are good at <strong>evangelizing</strong>, not many are good at <strong>apologetics</strong>.</p>
<p>First up: what the heck is Apologetics?&nbsp; (note: it isn&#8217;t the same as apologize)</p>
<blockquote><p><b>Apologists</b> are authors, writers, editors of scientific logs or academic journals, and leaders known for taking on the points in arguments, conflicts or positions that are either placed under popular scrutinies or viewed under persecutory examinations. The term comes from the Greek word <i>apologia</i> (????????), meaning a speaking in defense. <em></em></p>
<p><em>Wikipedia</em> <em>(<a title="http://en.wikipedia.org/wiki/Apologetics" href="http://en.wikipedia.org/wiki/Apologetics">http://en.wikipedia.org/wiki/Apologetics</a>)</em></p>
</blockquote>
<p>As for <strong>Evangelizing</strong>, it is similar but different.&nbsp; There are many definitions, but I&#8217;m going with the Prinston definition:</p>
<blockquote><p><strong>evangelism </strong>(zealous preaching and advocacy of the gospel) (<a href="http://wordnetweb.princeton.edu/perl/webwn?s=evangelism">reference</a>)</p>
</blockquote>
<p>In my definition, an Apologist is sitting down with someone and have a discussion.&nbsp; An evangelist is up on a pulpit proclaiming the good news to any within hearing distance.&nbsp; The difference between the two is key, because both are trying to achieve the same results.&nbsp; But I find the apologetic version much less grating.</p>
<p>Apologetics does not imply always apologizing.&nbsp; Apologetics are not apologizing for bad software, bad practice, or bad code.&nbsp; <strong>Apologetics does not imply rationalizing or defending bad code.</strong>&nbsp; Apologists are trying to gently guide to betters methods of software development.&nbsp; </p>
<p>This is to counter many of the evangelists that I&#8217;ve seen, who start of by looking shocked, then angry.&nbsp; And if at first you don&#8217;t succeed, add volume.</p>
<p>My introduction to Apologetics comes from my Christian faith and the works of John Calvin and Francis Shafer, but the notion of the idea goes back much farther &#8212; biblically speaking.</p>
<blockquote><p>&#8220;Come now, let us reason together, &#8230;&#8221; (<a href="http://www.biblegateway.com/passage/?search=isaiah%201:18-1:18&amp;version=47">Isaiah 1:18</a>, <a href="http://en.wikipedia.org/wiki/English_Standard_Version">ESV</a>)</p>
</blockquote>
<blockquote><p>&#8220;&#8230;, always being prepared to make a defense to anyone who asks you for a reason for the hope that is in you; yet do it with gentleness and respect. (<a href="http://www.biblegateway.com/passage/?search=1+peter%203:15-3:15&amp;version=47">1 Peter 3:15</a>)</p>
</blockquote>
<p>There is nothing bombastic about apologetics.&nbsp; It is inviting and striving to bring others in, but also not shying away from hard topics.&nbsp; What I see far too often programming circles cutting, degrading, and bombastic.&nbsp; There is too much &#8220;my way or the highway&#8221; in the approach. For me the key fraise is from 1 Peter (above), &#8220;yet do it with gentleness and respect&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/01/29/bring-on-the-programmer-apologists/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Please, tell me when I&#8217;m wrong. Really.</title>
		<link>http://elegantcode.com/2009/01/12/please-tell-me-when-im-wrong-really/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=please-tell-me-when-im-wrong-really</link>
		<comments>http://elegantcode.com/2009/01/12/please-tell-me-when-im-wrong-really/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 05:43:47 +0000</pubDate>
		<dc:creator>Chris Brandsma</dc:creator>
				<category><![CDATA[Butters]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/01/12/please-tell-me-when-im-wrong-really/</guid>
		<description><![CDATA[Since we are talking about ethics in software right now, I&#8217;d thought I&#8217;d throw one or two out there.&#160; First and foremost: please let me know if you think I&#8217;m wrong.&#160; My only request is this: tell me why &#8212; in as much detail as you can muster.&#160; Truth is, I want to be proven [...]]]></description>
			<content:encoded><![CDATA[<p>Since we are talking about ethics in software right now, I&#8217;d thought I&#8217;d throw one or two out there.&nbsp; First and foremost: please let me know if you think I&#8217;m wrong.&nbsp; My only request is this: tell me why &#8212; in as much detail as you can muster.&nbsp; </p>
<p>Truth is, I want to be proven wrong.&nbsp; If someone can come to me and tell me that I could be doing something better, how to do it better, and why it is better &#8212; that makes for a great day.&nbsp; After all, In programming there should be no dogma and no sacred cows. </p>
<p>This is essentially what I do every single time I blog.&nbsp; I propose an idea, I ask people to tell me I&#8217;m how I&#8217;m wrong.&nbsp; My blog is kind of like a personal testing ground.&nbsp; I do not deliberately try to be wrong, I do not play devils advocate in print.&nbsp; But I fully believe there are people out there with better ideas than mine.&nbsp; My problem is that I rarely come to them on my own.&nbsp; All of my best software was written with a group of people.</p>
<p>See, this is also not just a blog ethic.&nbsp; This is a work ethic as well.&nbsp; I try to encourage people that I work with to question what I say.&nbsp; I do not want to work with a bunch of yes men, blind faith belongs somewhere else.</p>
<p>Now, to flip the request around to everyone else, that mean you dear reader.&nbsp; Encourage people to do the same to you &#8212; and appreciate it when someone does just that.&nbsp; Being proven wrong is not a sign of weakness, it should not be seen as an insult (correction should also not be delivered as an insult either, but that is another topic), it is a learning opportunity.</p>
<p>So best case, you might learn something new.&nbsp; But also a good case, you might be able to help teach someone else something new.&nbsp;&nbsp; If you reach an impasse &#8212; just learn to disagree.&nbsp; But hopefully you both learn about each others position, making you both better off.&nbsp; If need be, both think about it for a day.</p>
<p>Really, what we do is about ideas.&nbsp; And we should be prepared to defend those idea.&nbsp; But we should also be ready to drop them at a moments notice in favor of better ones.&nbsp; This shouldn&#8217;t be personal, it should be improvement.</p>
<p>Programming is all about what you know, and all of us are limited by experience.&nbsp; No one can know everything, we all have holes in our knowledge and experience.&nbsp; We have to rely on others to help fill in our gaps.&nbsp; And experience is the key, that is often what drives knowledge in the first place.&nbsp; Please keep that in mind.&nbsp; </p>
<p>Experience is the type of projects someone has been on, the people they have worked with, the books they have read, the problems they have faced.&nbsp; All of those factors will lead a person down a particular path.&nbsp; Sometimes good, sometimes bad.</p>
<p>So please, if you think I&#8217;m full of it, let me know.&nbsp;&nbsp; </p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/01/12/please-tell-me-when-im-wrong-really/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ethics In Software Development: Pragmatism Over Dogmatism</title>
		<link>http://elegantcode.com/2009/01/11/ethics-in-software-development-pragmatism-over-dogmatism/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ethics-in-software-development-pragmatism-over-dogmatism</link>
		<comments>http://elegantcode.com/2009/01/11/ethics-in-software-development-pragmatism-over-dogmatism/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 21:20:25 +0000</pubDate>
		<dc:creator>Guest Blogger</dc:creator>
				<category><![CDATA[Butters]]></category>

		<guid isPermaLink="false">http://elegantcode.com/?p=1869</guid>
		<description><![CDATA[My fellow Elegant Coder Jan Van Ryswyck wrote about Craftmanship Over Crap. I generally agree with his point of view. Writing good, clean code is tremendously important for the long term survival chances of any software project. But i also believe that we sometimes need to be a bit more pragmatic about how we solve [...]]]></description>
			<content:encoded><![CDATA[<p>My fellow Elegant Coder Jan Van Ryswyck wrote about <a href="http://elegantcode.com/2009/01/11/ethics-in-software-development-craftsmanship-over-crap/">Craftmanship Over Crap</a>.  I generally agree with his point of view.  Writing good, clean code is tremendously important for the long term survival chances of any software project.  But i also believe that we sometimes need to be a bit more pragmatic about how we solve a problem.</p>
<p>A software developer&#8217;s primary goal should be to create value for the users of a system.  Value can mean a lot of things here.  First and foremost, it should be about things that users actually experience.  Features, ease of use, performance, etc.  You can get all of those with crappy code, but that leads to a situation where you won&#8217;t be able to sustain that value in the long term.  A system can be very useful to its users, but if the code is in such bad shape that it can&#8217;t easily be maintained and extended with new features over time, the value of the system will slowly reduce.  New features will introduce new bugs.  Bug fixes will introduce new bugs.  Eventually, the system starts to collapse under its own rot and the dreaded rewrite commences.  Nobody really wants this, do they?  If you write good, clean code from the beginning, you can usually avoid these problems.</p>
<p>A lot of opinionated developers claim that a true craftsman developer will never write a piece of bad code.  In an ideal world, i would agree.  These same developers also look down on people who implement a quick fix instead of looking for the proper solution.  Again, in an ideal world i would agree with that.  In the real world however, i&#8217;m not so sure if that&#8217;s always the best thing to do.</p>
<p>Those of you who&#8217;ve been reading my posts for a while know how important clean code is to me. I generally hate crappy code and i generally hate quick fixes that don&#8217;t fix the real problem.  Then again, i do realize that we sometimes need to put our principles aside in order to be able to deliver value to our users. </p>
<p>Allow me to use an example to defend my position on this.  I recently had to fix a <a href="http://davybrion.com/blog/2009/01/the-life-and-times-of-a-bug/">nasty bug</a> in NHibernate.  Once i found the true reason for the bug&#8217;s existence i had two options to fix it.  The correct solution would have required me to modify some crucial parts in NHibernate.  The easiest fix required me to modify one non-essential class in a manner that couldn&#8217;t impact anything else.</p>
<p>Certainly, a true craftsman would go for the best solution, right? Well, let me tell you something about the NHibernate code base&#8230; it&#8217;s pretty big, it&#8217;s quite complex, and it&#8217;s been worked on by a lot of people over the years.  There are parts of the code where you really don&#8217;t feel comfortable making drastic changes.  Sure, we have our test-suite, but it unfortunately doesn&#8217;t cover every possible thing that could go wrong.</p>
<p>I chose to implement the easier fix. The bug was fixed, which means that the fix created value for everyone who&#8217;s using the trunk (which is more people than you&#8217;d think) and it means that this bug (which was a show-stopper IMO) won&#8217;t delay our 2.1 release.  The correct fix would&#8217;ve meant making a risky change at this point, which could&#8217;ve led to more bugs that we don&#8217;t have tests for yet.  The correct fix will be implemented right after the 2.1 release, when we have more room to make drastic changes to core parts of the code.</p>
<p>Was i wrong to implement the easier fix? I don&#8217;t think so&#8230; although i&#8217;m still not happy about that fix.  But we have a responsibility to release software.  If we would always stick to our principles, that could sometimes lead to having to delay or postpone a release.  While there are many valid reasons for delaying or postponing a release, i don&#8217;t think merely sticking to your principles about a piece of code is always the best thing to do.</p>
<p>Of course, you do have to have the discipline to pay back the technical debt you&#8217;ve incurred when you do this, but sometimes the cost of that technical debt is less than that of having users losing faith in your product.  And that, in general, is something we as software developers need to keep in mind as well.  Writing good, clean code is great.  We should all strive to do that.  But we first and foremost need to create value for our users.  </p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/01/11/ethics-in-software-development-pragmatism-over-dogmatism/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ethics in Software Development: Craftsmanship over Crap</title>
		<link>http://elegantcode.com/2009/01/11/ethics-in-software-development-craftsmanship-over-crap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ethics-in-software-development-craftsmanship-over-crap</link>
		<comments>http://elegantcode.com/2009/01/11/ethics-in-software-development-craftsmanship-over-crap/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 18:36:52 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Butters]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/01/11/ethics-in-software-development-craftsmanship-over-crap/</guid>
		<description><![CDATA[Robert C. Martin calls &#8216;Craftsmanship over Crap&#8217; the fifth principle of the agile manifesto. I&#8217;ve been writing a lot on this blog about writing clean code and qualities that every piece of code should have. Besides writing clean code, we as software professionals should also adhere to a number of qualities as well: We shall [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.objectmentor.com/omTeam/martin_r.html" target="_blank">Robert C. Martin</a> calls &#8216;Craftsmanship over Crap&#8217; the fifth principle of the <a href="http://agilemanifesto.org/" target="_blank">agile manifesto</a>. I&#8217;ve been writing a lot on this blog about writing clean code and <a href="http://elegantcode.com/2008/07/28/three-qualities-that-every-piece-of-code-should-have/" target="_blank">qualities that every piece of code should have</a>.</p>
<p>Besides writing clean code, we as software professionals should also adhere to a number of qualities as well:</p>
<ul>
<li>We shall act in the best interest of our client/employer, not losing sight of the greater good.</li>
<li>We shall deliver products that meet the highest standards possible. We must always do what&#8217;s right, under all circumstances.</li>
<li>We shall remain independent in our professional judgement. We must never loose our professional integrity.</li>
<li>We shall be supportive for the members of our team and encourage them to adhere to the same principles.</li>
<li>And last but certainly not least, we shall dedicate our professional lives to continuously improve ourselves and be open to share the knowledge we already gathered. We shall accept that this journey of continuous improvement will never end so that we remain humble and open in order to continue that journey.</li>
</ul>
<p>Earlier this week, I received my <a href="http://butunclebob.com/ArticleS.UncleBob.GreenWristBand" target="_blank">green wristband</a> from <a href="http://www.objectmentor.com/" target="_blank">Object Mentor</a>. </p>
<p><a href="http://elegantcode.com/wp-content/uploads/2009/01/img-5068.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="345" alt="IMG_5068" src="http://elegantcode.com/wp-content/uploads/2009/01/img-5068-thumb.jpg" width="453" border="0"></a> </p>
<p>Whenever I look at that wristband, it reminds me of my commitment to the principles of clean code and ethics of a true software craftsman. Its like physicians who make the <a href="http://en.wikipedia.org/wiki/Hippocratic_Oath" target="_blank">Hippocratic Oath</a>. It also reminds me that if I don&#8217;t follow these principles, Yoda will kick my @ss <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/01/11/ethics-in-software-development-craftsmanship-over-crap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Introducing the Butters&#8217; Monthly Bone</title>
		<link>http://elegantcode.com/2009/01/10/introducing-the-butters-monthly-bone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-the-butters-monthly-bone</link>
		<comments>http://elegantcode.com/2009/01/10/introducing-the-butters-monthly-bone/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 21:53:49 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Butters]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/01/10/introducing-the-butters-monthly-bone/</guid>
		<description><![CDATA[If you are reading this in an aggregator, you aren’t seeing the wicked cool new feature logo on the left side of the site. I suggest you click in to the site to get the full experience. It’s way worth it. I spent, like, 40 minutes making it in GIMP. I don’t know about your [...]]]></description>
			<content:encoded><![CDATA[<p>If you are reading this in an aggregator, you aren’t seeing the wicked cool new feature logo on the left side of the site. I suggest you click in to the site to get the full experience. It’s way worth it. I spent, like, 40 minutes making it in <a href="http://www.gimp.org/" target="_blank">GIMP</a>.</p>
<p>I don’t know about your dog, but here at Elegant Code our dog, Butters, will worry a bone until there is no meat left at all. When she is done, the bone is a mere husk of dried calcium with nothing left to offer.</p>
<p>That is the idea behind this new site feature is simple. All Elegant Code writers will add at least one post to a common theme for the month, thereby leaving nothing but a dried husk with nothing left to ponder. This should be fun because we all have different takes on these things.</p>
<p>Please drop us a line to suggest Butters’ Bone topics for the month. Note the better topics will not be 100% technical because strictly technical topics don’t always lend themselves to various perspectives.</p>
<p>So, watch for the first topics of the feature for January, “<strong>Ethics in Software Development</strong>.”</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/01/10/introducing-the-butters-monthly-bone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

