<?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>The Pragmatic Craftsman &#187; Craftsmanship</title>
	<atom:link href="http://pragmaticcraftsman.com/category/craftsmanship/feed/" rel="self" type="application/rss+xml" />
	<link>http://pragmaticcraftsman.com</link>
	<description>Simplicity from complexity : by Stanley Kubasek</description>
	<lastBuildDate>Fri, 18 Nov 2011 13:36:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Fundamentals of programming</title>
		<link>http://pragmaticcraftsman.com/2011/11/fundamentals-of-programming/</link>
		<comments>http://pragmaticcraftsman.com/2011/11/fundamentals-of-programming/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 14:33:50 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Learning / Thoughts]]></category>
		<category><![CDATA[grasp]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[solid]]></category>

		<guid isPermaLink="false">http://pragmaticcraftsman.kubasek.com/?p=567</guid>
		<description><![CDATA[Almost all of us know the GoF patterns. Perhaps not all of the patterns. I forget them from time to time, but with more experience, I remember more and more. (I keep forgetting what a Memento is. ) As important as they are, I think there are other, perhaps more important patterns and principles that [...]]]></description>
			<content:encoded><![CDATA[<p>Almost all of us know the GoF patterns. Perhaps not all of the patterns. I forget them from time to time, but with more experience, I remember more and more. (I keep forgetting what a Memento is. <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>As important as they are, I think there are other, perhaps more important patterns and principles that I follow. Some of them are &#8220;in my head&#8221; when I code. Some of them are there and I just follow them without naming.</p>
<p>They are fundamental theorems/patterns/principles of programming.</p>
<p>Good idea to review them.</p>
<p>Good idea to write about them.</p>
<p>Good idea to revisit them.</p>
<p>Don&#8217;t you think?</p>
<p>Languages and trends pass by. Principles and how we approach our programming tasks stays with us. Forever.</p>
<p>I&#8217;m currently deep into Python. Design patterns I learned earlier still apply. I learned JavaScript a while ago. Same thing.</p>
<p>I feel it&#8217;s not the languages we know count. It&#8217;s how we go about doing the tasks we have on hand. It&#8217;s how we craft software no matter what tools we use. Python is good for one thing; Java for other; and Javascript still for another, but we can apply &#8220;our learned way&#8221; to all of them.</p>
<p>Once we have solid principles in place, we&#8217;re able to reuse it from language to language. Deepening and improving that knowlege has the highest return, I feel.</p>
<p>So I&#8217;d like to revisit SOLID principles; GRASP patterns. They&#8217;re at the heart of programming. Close to my programming heart, at least. <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  More to follow.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F11%2Ffundamentals-of-programming%2F&amp;linkname=Fundamentals%20of%20programming" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F11%2Ffundamentals-of-programming%2F&amp;linkname=Fundamentals%20of%20programming" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F11%2Ffundamentals-of-programming%2F&amp;linkname=Fundamentals%20of%20programming" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F11%2Ffundamentals-of-programming%2F&amp;linkname=Fundamentals%20of%20programming" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F11%2Ffundamentals-of-programming%2F&amp;linkname=Fundamentals%20of%20programming" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F11%2Ffundamentals-of-programming%2F&amp;linkname=Fundamentals%20of%20programming" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2011/11/fundamentals-of-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Top 10 Attributes of a Great Programmer</title>
		<link>http://pragmaticcraftsman.com/2011/05/the-top-10-attributes-of-a-great-programmer/</link>
		<comments>http://pragmaticcraftsman.com/2011/05/the-top-10-attributes-of-a-great-programmer/#comments</comments>
		<pubDate>Fri, 20 May 2011 13:33:58 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Better Coder]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://pragmaticcraftsman.kubasek.com/?p=534</guid>
		<description><![CDATA[While looking at the top weekly links on dzone (good way to see what are the important things that happened), I came across a very intriguing entry: The Top 10 Attributes of a Great Programmer by Steve Riley. These always &#8220;get me,&#8221; but a lot of times they end up being just a quick browse. This one [...]]]></description>
			<content:encoded><![CDATA[<p>While looking at the <a href="http://www.dzone.com/links/index.html?sort=top-week&#038;order=voteCount">top weekly links</a> on dzone (good way to see what are the important things that happened), I came across a very intriguing entry: <a href="http://programmingmatters.com/the-top-10-attributes-of-a-great-programmer/">The Top 10 Attributes of a Great Programmer</a> by Steve Riley.</p>
<p>These always &#8220;get me,&#8221; but a lot of times they end up being just a quick browse. This one is different. Though the attributes are similar to what I&#8221;ve seen before (see entries in <a href="/category/craftsmanship/">Craftsmanship</a> category), they&#8217;re good. And it&#8217;s always good to re-read them.</p>
<p>Here are the top 10 form the blog. Read the whole post as the author gives his own explanations. My thoughts are below.</p>
<blockquote><ol>
<li>Being a great problem solver.</li>
<li>Being driven and lazy at the same time.</li>
<li>Ability to understand other people’s code</li>
<li>Having a passion for programming</li>
<li>Loving learning for the sake of learning</li>
<li>Being good at math</li>
<li>Having good communications skills</li>
<li>Strong debating skills</li>
<li>Extreme optimism</li>
<li>Extreme pessimism</li>
</ol>
</blockquote>
<p>Being a good problem solver? Of course! Great programmers are great problem solvers. Agreed!</p>
<p>Being driven and lazy. I keep telling my wife that being lazy is a good think. She doesn&#8217;t get it! <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  But I agree that being lazy is a good quality to have in programming.</p>
<p>Ability to understand other people&#8217;s code. Somewhat agree. Is it just me, though, but I see a ton of code that I&#8217;m having very hard time following! I would say it differently: great programmers write code that others can understand; great programmers write code for humans to read.</p>
<p>If you don&#8217;t have a passion for programming&#8230; can you excel in any other profession if you don&#8217;t have passion!?</p>
<p>Everybody needs to learn and work hard to get better. That&#8217;s why great programmers go the less traveled road.</p>
<p>Being good at math? Debatable. I think there is a connection, but wouldn&#8217;t pay that much attention to it. But yeah, I was good in math. <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>All in all, a good post by Steve.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F05%2Fthe-top-10-attributes-of-a-great-programmer%2F&amp;linkname=The%20Top%2010%20Attributes%20of%20a%20Great%20Programmer" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F05%2Fthe-top-10-attributes-of-a-great-programmer%2F&amp;linkname=The%20Top%2010%20Attributes%20of%20a%20Great%20Programmer" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F05%2Fthe-top-10-attributes-of-a-great-programmer%2F&amp;linkname=The%20Top%2010%20Attributes%20of%20a%20Great%20Programmer" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F05%2Fthe-top-10-attributes-of-a-great-programmer%2F&amp;linkname=The%20Top%2010%20Attributes%20of%20a%20Great%20Programmer" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F05%2Fthe-top-10-attributes-of-a-great-programmer%2F&amp;linkname=The%20Top%2010%20Attributes%20of%20a%20Great%20Programmer" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2011%2F05%2Fthe-top-10-attributes-of-a-great-programmer%2F&amp;linkname=The%20Top%2010%20Attributes%20of%20a%20Great%20Programmer" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2011/05/the-top-10-attributes-of-a-great-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Good Code</title>
		<link>http://pragmaticcraftsman.com/2010/05/writing-good-code/</link>
		<comments>http://pragmaticcraftsman.com/2010/05/writing-good-code/#comments</comments>
		<pubDate>Fri, 28 May 2010 14:08:47 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Better Coder]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Quotes]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[quality]]></category>

		<guid isPermaLink="false">http://pragmaticcraftsman.com/?p=401</guid>
		<description><![CDATA[No matter who. No matter what. No matter when. Short term.Long term. Any term. Writing good code is ALWAYS faster than writing bad code. &#8212;Robert Martin (@UncleBob) Is it because of pressure? Is it because you want to be faster than others? Or is it just because that&#8217;s the way you&#8217;ve been doing things and [...]]]></description>
			<content:encoded><![CDATA[<table class="tbQuote">
<tr>
<td class="tbQuoteImageTd">
<div>
					<img src="http://images.kubasek.com/quote/quote.gif" />
				</div>
</td>
<td>
<div class="quoteText">
				No matter who. No matter what. No matter when. Short term.Long term. Any term. Writing good code is ALWAYS faster than writing bad code.			</div>
<div class="quoteCopy">
				<span class="quoteAuthor"> &#8212;Robert Martin (@UncleBob) </span>
							</div>
</td>
</tr>
</table>
<p>Is it because of pressure?</p>
<p>Is it because you want to be faster than others?</p>
<p>Or is it just because that&#8217;s the way you&#8217;ve been doing things and it has worked for you?</p>
<p>I hope it&#8217;s not the case. I hope you take the time to do it right. Because if not, as the saying goes, will you have the time to do it over? Or how will you look at it when you see the project codebase turning into spaghetti. Because it will.</p>
<p>I wish it was so clear cut. It&#8217;s usually not.</p>
<p>But I do believe in the <a href="http://www.artima.com/intv/fixit.html">theory of broken windows</a>. One little &#8220;slack,&#8221; one not needed &#8220;if&#8221; statement starts this process. And then it goes downhill. It&#8217;s just a matter of time before somebody else puts another if. And another. Soon enough, you start searching where things have broken. It&#8217;s no longer easy to fix stuff. So you put another conditional.</p>
<p>That&#8217;s how things degenerate.</p>
<p>I&#8217;ve seen it many times in my career.</p>
<p>But I try to do it right. I think about consequences of my actions. Consequences of putting one line of code that will make things worse for others, worse for the codebase.</p>
<p>I take pride and always try to leave things in no worse condition when I found it. If I can, I try to make it better. I don&#8217;t always succeed. But I try to adjust. Learn. And always have &#8220;do it right&#8221; attitude. I think it matters.</p>
<p>If we had more people that cared about the quality, our dev world would be a better place.</p>
<p><strong>Related</strong><br />
<a href="http://java.dzone.com/articles/write-your-good-code-first">Write Your Good Code First</a> &#8211; blog post by James Sugrue and Uncle Bob&#8217;s quote that I found there that gave me motivation to write this post.</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2010%2F05%2Fwriting-good-code%2F&amp;linkname=Writing%20Good%20Code" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2010%2F05%2Fwriting-good-code%2F&amp;linkname=Writing%20Good%20Code" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2010%2F05%2Fwriting-good-code%2F&amp;linkname=Writing%20Good%20Code" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2010%2F05%2Fwriting-good-code%2F&amp;linkname=Writing%20Good%20Code" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2010%2F05%2Fwriting-good-code%2F&amp;linkname=Writing%20Good%20Code" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2010%2F05%2Fwriting-good-code%2F&amp;linkname=Writing%20Good%20Code" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2010/05/writing-good-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What makes a great software engineer?</title>
		<link>http://pragmaticcraftsman.com/2009/08/what-makes-a-great-software-engineer/</link>
		<comments>http://pragmaticcraftsman.com/2009/08/what-makes-a-great-software-engineer/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 10:44:44 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Better Coder]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=286</guid>
		<description><![CDATA[Nicholas Zakas, the author of what I consider the best JavaScript book out there, is becoming one of my favorite bloggers! (I should let him know about that. ) In his recent blog post, he talks about qualities of great software developers. It&#8217;s a great post. I highly recommend reading the whole post. Here&#8217;s my [...]]]></description>
			<content:encoded><![CDATA[<p>Nicholas Zakas, the author of what I consider the best JavaScript book out there, is becoming one of my favorite bloggers! (I should let him know about that. <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) In his <a href="http://www.nczonline.net/blog/2009/08/21/what-makes-a-great-software-engineer/">recent blog post</a>, he talks about qualities of great software developers. It&#8217;s a great post. I highly recommend reading the whole post.
<p>Here&#8217;s my take on the qualities from the post.
<p><strong>Always do it the right way</strong>I cannot agree more. There are always people that will say that they&#8217;ll improve it later; that this is special and it needs a special condition. It&#8217;s a big bull&#8230; You do it the right way ALL THE TIME. Really no exceptions.<br />
<blockquote>Good engineers know that the right way applies to all situations and circumstances. If there&#8217;s not enough time to do something the right way, then there&#8217;s really not enough time to do it. Don&#8217;t make compromises, the quality of your work is what ultimately defines you as an engineer. Make sure that all of the code you write is done the right way 100% of the time. Expect excellence from yourself.</p></blockquote>
<p><strong>Be willing to suffer</strong>I never considered this as an asset before. On the contrary, I thought that it must be something wrong with me. I like to develop solutions in my head, thinking hard about them, then implementing. And later find a better solution. I rarely ask others for help. And I usually come up with good solutions. Hmm, maybe there&#8217;s hope in my software engineering skills. <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<blockquote>Great engineers first and foremost want to solve the problem on their own. Problem solving is a skill, a skill that great engineers take seriously.</p></blockquote>
<p><strong>Never stop learning</strong>If you have been reading what I write on this blog, I don&#8217;t need to say anything else. This is an absolute must if you want to be considered a great software engineer.<br />
<blockquote>In order to be a great engineer you must first admit that you don&#8217;t know everything, and then you must seek out more knowledge in every way you can.</p></blockquote>
<p><strong>Share your knowledge</strong>I believe that&#8217;s what makes you valuable to the company you work for. That&#8217;s how you distinguish yourself from others. This is how you think &#8220;big picture&#8221;.<br />
<blockquote>Great engineers want others to know what they know. They aren&#8217;t afraid of losing their position because someone else can do the same thing. Great engineers want to see their peers succeed and grow.</p></blockquote>
<p><strong>Lend a helping hand</strong><br />
<blockquote>Great engineers are team-focused and therefore are willing to do whatever it takes to help the team.</p></blockquote>
<p> Do I need to argue with that?
<p><strong>Take your time</strong>It takes time to develop and improve on your skills. The only way to do that is by learning iteratively, practicing. It probably will take 5 to 10 years, or even more, for you to acquire great skills. To acquire that craftsman&#8217;s touch. <img src='http://pragmaticcraftsman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
<p><strong>Reference</strong><a href="http://www.nczonline.net/blog/2009/08/21/what-makes-a-great-software-engineer/">What makes a great software engineer?</a>, Nicholas C. Zakas</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F08%2Fwhat-makes-a-great-software-engineer%2F&amp;linkname=What%20makes%20a%20great%20software%20engineer%3F" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F08%2Fwhat-makes-a-great-software-engineer%2F&amp;linkname=What%20makes%20a%20great%20software%20engineer%3F" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F08%2Fwhat-makes-a-great-software-engineer%2F&amp;linkname=What%20makes%20a%20great%20software%20engineer%3F" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F08%2Fwhat-makes-a-great-software-engineer%2F&amp;linkname=What%20makes%20a%20great%20software%20engineer%3F" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F08%2Fwhat-makes-a-great-software-engineer%2F&amp;linkname=What%20makes%20a%20great%20software%20engineer%3F" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F08%2Fwhat-makes-a-great-software-engineer%2F&amp;linkname=What%20makes%20a%20great%20software%20engineer%3F" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2009/08/what-makes-a-great-software-engineer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Make Quality a Requirement</title>
		<link>http://pragmaticcraftsman.com/2009/02/make-quality-a-requirement/</link>
		<comments>http://pragmaticcraftsman.com/2009/02/make-quality-a-requirement/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 10:07:42 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Better Coder]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=271</guid>
		<description><![CDATA[As programmers, we want to finish things fast. We want to impress our boss. We want to be better and always finish before others. So we do. We finish things as fast as possible. Because the requirement was to complete the things that were on the list. Just make it work. What&#8217;s the end result? [...]]]></description>
			<content:encoded><![CDATA[<p>As programmers, we want to finish things fast. We want to impress our boss. We want to be better and always finish before others.</p>
<p>So we do. We finish things as fast as possible. Because the requirement was to complete the things that were on the list. </p>
<p>Just make it work.</p>
<p>What&#8217;s the end result? Code that is hard to read by others. Code that is rigid. Code that is fragile. Code that is over complicated. Basically, code that has the characteristic of &#8220;fast food&#8221; &#8212; it does what is supposed to, right?</p>
<p>Wouldn&#8217;t things be different if one of the requirements was &#8220;high quality.&#8221;</p>
<p>The statement is ambiguous. Sure. It means different things to different people. It could be more specific: &#8220;code should be easy to read, easy to extend, and easy to modify.&#8221;</p>
<p>High Quality. Enough said.</p>
<p>You could argue what quality really means. That&#8217;s not the point. Just stating that it has to be of high quality puts everyone on the same page: it communicates the expectation to the team.</p>
<p>&#8220;Why don&#8217;t we just add a special exception here.&#8221; No, you would say. That&#8217;s going to lower the quality of the code. That&#8217;s going to make the code more fragile and harder to extend. It does not meet the quality requirement.</p>
<p>I personally don&#8217;t need to be told that &#8212; quality is always on my list. I always try to make the code that I write be of high quality. I put focus on that. I don&#8217;t always get the results I want, especially after I look at my code after a period of time. But I learn. I improve. </p>
<p>There is just too much of low-quality code around. Too much pressure to finish fast and no pressure on quality. </p>
<p>Having quality a requirement would make a huge difference. I strongly believe that.</p>
<p>Even if your manager does not require it, &#8220;High Quality&#8221; should be one of the most important requirements when you write code. It&#8217;s not easy to write high quality code. That&#8217;s for sure. You learn with experience, by trying things out. Patterns develop after a while. Then you study a bit more. But having that focus we&#8217;ll make you a better coder and distinguish you from the others.</p>
<p><b>Related</b><br /><a href="http://www.taylor.se/blog/2009/02/25/code-quality-and-the-fat-developer/">Code quality and the fat developer</a>, very good post by Consulting jiujitsu</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fmake-quality-a-requirement%2F&amp;linkname=Make%20Quality%20a%20Requirement" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fmake-quality-a-requirement%2F&amp;linkname=Make%20Quality%20a%20Requirement" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fmake-quality-a-requirement%2F&amp;linkname=Make%20Quality%20a%20Requirement" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fmake-quality-a-requirement%2F&amp;linkname=Make%20Quality%20a%20Requirement" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fmake-quality-a-requirement%2F&amp;linkname=Make%20Quality%20a%20Requirement" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fmake-quality-a-requirement%2F&amp;linkname=Make%20Quality%20a%20Requirement" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2009/02/make-quality-a-requirement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quality and Speed</title>
		<link>http://pragmaticcraftsman.com/2009/02/quality-and-speed/</link>
		<comments>http://pragmaticcraftsman.com/2009/02/quality-and-speed/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 09:44:16 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=270</guid>
		<description><![CDATA[Uncle Bob wrote an excellent post, Speed Kills. Is there a tradeoff between speed and quality, he asks. If by &#8220;speed&#8221; you mean delivering working softwarequickly and repeatably release after release after release; thenmaintaining high quality is your only option. I couldn&#8217;t agree more. In the long run, the only way you can move fast [...]]]></description>
			<content:encoded><![CDATA[<p>Uncle Bob wrote an excellent post, <a href="http://blog.objectmentor.com/articles/2009/02/03/speed-kills">Speed Kills</a>. Is there a tradeoff between speed and quality, he asks. </p>
<blockquote><p>If by &#8220;speed&#8221; you mean delivering working softwarequickly and repeatably release after release after release; thenmaintaining high quality is your only option.</p></blockquote>
<p> I couldn&#8217;t agree more. In the long run, the only way you can move fast at high speed is if you have quality. Time and time again, I come across projects that were finished fast, with the thinking that they will never be modified again. (I&#8217;m not even sure if that&#8217;s always the case, but rather that quality was not a requirement.) After a few months, things change. They often do. And the project needs to be modified. What is your speed then? </p>
<p>It would actually make more sense to rewrite the project. But that&#8217;s almost impossible. Too many dependencies. Too much coupling. Who can read that and understand? Too risky. At that point, the easiest thing is to do is just add a special exception, an &#8220;if&#8221; statement that would make the thing work. </p>
<p>And the project quality degrades. </p>
<p>And the speed decreases.</p>
<p>Frustrating? You bet. Especially if you are not the original coder.</p>
<p>Wouldn&#8217;t it be easier if it was written with quality in mind in the first place? </p>
<p><b>Reference</b><br /><a href="http://blog.objectmentor.com/articles/2009/02/03/speed-kills">Speed Kills</a> by Uncle Bob</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fquality-and-speed%2F&amp;linkname=Quality%20and%20Speed" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fquality-and-speed%2F&amp;linkname=Quality%20and%20Speed" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fquality-and-speed%2F&amp;linkname=Quality%20and%20Speed" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fquality-and-speed%2F&amp;linkname=Quality%20and%20Speed" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fquality-and-speed%2F&amp;linkname=Quality%20and%20Speed" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2009%2F02%2Fquality-and-speed%2F&amp;linkname=Quality%20and%20Speed" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2009/02/quality-and-speed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 Ways to &quot;Stay on Top&quot;</title>
		<link>http://pragmaticcraftsman.com/2008/04/10-ways-to-stay-on-top/</link>
		<comments>http://pragmaticcraftsman.com/2008/04/10-ways-to-stay-on-top/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 09:51:52 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=261</guid>
		<description><![CDATA[If you consider yourself a good programmer, great! But is this going to hold true, two years, five years from now? If you are not going to learn new things, I can safely say that you&#8217;re going to be &#8220;out of date.&#8221; If you want to stay still, you have to continue moving: being a [...]]]></description>
			<content:encoded><![CDATA[<p>If you consider yourself a good programmer, great! But is this going to hold true, two years, five years from now? If you are not going to learn new things, I can safely say that you&#8217;re going to be &#8220;out of date.&#8221;
<p>If you want to stay still, you have to continue moving: being a good programmer means learning new things constantly.
<p>Here are 10 Ways to Learn New Things by Philosophical Geek. Follow at least some of these and I think you&#8217;ll be covered.
<p>1. Read books.2. Read Code.3. Write Code &#8211; Lots of it.4. Talk to other developers.5. Teach others.6. Listen to podcasts7. Read blogs8. Learn a new language9. Learn the anti-patterns10. Be Humble
<p><strong>Reference</strong><a title="10 Ways to Learn New Things in Development | Philosophical Geek" href="http://www.philosophicalgeek.com/2008/04/01/10-ways-to-learn-new-things-in-development/">10 Ways to Learn New Things in Development | Philosophical Geek</a></p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F04%2F10-ways-to-stay-on-top%2F&amp;linkname=10%20Ways%20to%20%26quot%3BStay%20on%20Top%26quot%3B" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F04%2F10-ways-to-stay-on-top%2F&amp;linkname=10%20Ways%20to%20%26quot%3BStay%20on%20Top%26quot%3B" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F04%2F10-ways-to-stay-on-top%2F&amp;linkname=10%20Ways%20to%20%26quot%3BStay%20on%20Top%26quot%3B" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F04%2F10-ways-to-stay-on-top%2F&amp;linkname=10%20Ways%20to%20%26quot%3BStay%20on%20Top%26quot%3B" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F04%2F10-ways-to-stay-on-top%2F&amp;linkname=10%20Ways%20to%20%26quot%3BStay%20on%20Top%26quot%3B" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F04%2F10-ways-to-stay-on-top%2F&amp;linkname=10%20Ways%20to%20%26quot%3BStay%20on%20Top%26quot%3B" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2008/04/10-ways-to-stay-on-top/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 5 Attributes of Highly Effective Programmers</title>
		<link>http://pragmaticcraftsman.com/2008/01/top-5-attributes-of-highly-effective-programmers/</link>
		<comments>http://pragmaticcraftsman.com/2008/01/top-5-attributes-of-highly-effective-programmers/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 15:57:19 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=259</guid>
		<description><![CDATA[Ben Watson, whose blog I just came across, lists the following Top 5 Attributes&#8230; Humility Love of Learning Detail-orientedness Adaptability Passion I think this is a very good list. I think effective programmers are humble. Why? Because you have to be able to work well with others. Just from my experience, it&#8217;s hard to work [...]]]></description>
			<content:encoded><![CDATA[<p>Ben Watson, whose blog I just came across,  lists the following Top 5 Attributes&#8230;
<ol>
<li>Humility</li>
<li>Love of Learning</li>
<li>Detail-orientedness</li>
<li>Adaptability</li>
<li>Passion</li>
</ol>
<p>I think this is a very good list. I think effective programmers are <strong>humble</strong>. Why? Because you have to be able to work well with others. Just from my experience, it&#8217;s hard to work with people with a lot of ego.
<p>You just have to <strong>love to learn</strong>. Effective programmers constantly improve. How do you improve? By finding new ways of doing the things you&#8217;re used to&#8230; better. You have to be exposed to new ways in order to do that. Being able to adopt and having a passion for the profession are essential.
<p><strong>Reference</strong><a> Top 5 Attributes of Highly Effective Programmers&#8221; href=&#8221;http://www.philosophicalgeek.com/2008/01/20/5-attributes-of-highly-effective-programmers/&#8221;&gt;Philosophical Geek -&gt; Top 5 Attributes of Highly Effective Programmers</a>, Philosophical Geek blog</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F01%2Ftop-5-attributes-of-highly-effective-programmers%2F&amp;linkname=Top%205%20Attributes%20of%20Highly%20Effective%20Programmers" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F01%2Ftop-5-attributes-of-highly-effective-programmers%2F&amp;linkname=Top%205%20Attributes%20of%20Highly%20Effective%20Programmers" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F01%2Ftop-5-attributes-of-highly-effective-programmers%2F&amp;linkname=Top%205%20Attributes%20of%20Highly%20Effective%20Programmers" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F01%2Ftop-5-attributes-of-highly-effective-programmers%2F&amp;linkname=Top%205%20Attributes%20of%20Highly%20Effective%20Programmers" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F01%2Ftop-5-attributes-of-highly-effective-programmers%2F&amp;linkname=Top%205%20Attributes%20of%20Highly%20Effective%20Programmers" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2008%2F01%2Ftop-5-attributes-of-highly-effective-programmers%2F&amp;linkname=Top%205%20Attributes%20of%20Highly%20Effective%20Programmers" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2008/01/top-5-attributes-of-highly-effective-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Craftsman&#039;s Values</title>
		<link>http://pragmaticcraftsman.com/2007/10/craftsmans-values/</link>
		<comments>http://pragmaticcraftsman.com/2007/10/craftsmans-values/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 08:56:38 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=253</guid>
		<description><![CDATA[Here&#8217;s what Ben Rady, who calls himself software craftsman, states under his Statement of Values. I value similar things: I can sign my name under this statement. Excellent summary. As a technical leader, I value: * Talented People* Rapid Feedback* Individual Relationships* Facilitation over command and control* Continuous Improvement* Frequent Delivery As a programmer, I [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s what Ben Rady, who calls himself software craftsman, states under his Statement of Values. I value similar things: I can sign my name under this statement. Excellent summary.<br />
<blockquote><strong>As a technical leader, I value:</strong>
<p>* Talented People* Rapid Feedback* Individual Relationships* Facilitation over command and control* Continuous Improvement* Frequent Delivery
<p><strong>As a programmer, I value:</strong>
<p>* Working Software* Clean Code* Rich Communication* Flexibility over efficiency* Sustainable Pace* Simplicity* Failing Fast over hiding errors
<p><strong>As a human being, I value:</strong>
<p>* Courage, not cowardice* Humility, not hubris* Compassion, not callousness* Curiosity, not apathy* Discipline, not carelessness* Honesty, not deceit* Patience, not intolerance </p></blockquote>
<p><strong>Reference</strong><a href="http://blog.objectmentor.com/articles/2007/10/10/statement-of-values">Statement of Values</a>, Ben Rady</p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F10%2Fcraftsmans-values%2F&amp;linkname=Craftsman%26%23039%3Bs%20Values" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F10%2Fcraftsmans-values%2F&amp;linkname=Craftsman%26%23039%3Bs%20Values" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F10%2Fcraftsmans-values%2F&amp;linkname=Craftsman%26%23039%3Bs%20Values" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F10%2Fcraftsmans-values%2F&amp;linkname=Craftsman%26%23039%3Bs%20Values" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F10%2Fcraftsmans-values%2F&amp;linkname=Craftsman%26%23039%3Bs%20Values" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F10%2Fcraftsmans-values%2F&amp;linkname=Craftsman%26%23039%3Bs%20Values" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2007/10/craftsmans-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definition of Software Craftsman</title>
		<link>http://pragmaticcraftsman.com/2007/08/definition-of-software-craftsman/</link>
		<comments>http://pragmaticcraftsman.com/2007/08/definition-of-software-craftsman/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 16:32:48 +0000</pubDate>
		<dc:creator>Stanley</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://kubasek.com/blog/pragmatic_craftsman/?p=250</guid>
		<description><![CDATA[Here&#8217;s a great definition of what a software craftsman is. It&#8217;s also similar to the way I think. And this is also part of the Introduction in the book Agile Java. I am a software craftsman. I have spent much of my software development career trying to quickly build solutions to problems. At the same [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a great definition of what a software craftsman is. It&#8217;s also similar to the way I think. And this is also part of the Introduction in the book <i>Agile Java</i>.<br />
<blockquote>I am a software craftsman. I have spent much of my software development career trying to quickly build solutions to problems. At the same time I have tried to ensure that my solutions demonstrate carefully crafted code. I strive for perfection in code, yet I know that it is unattainable, particularly with the constant pressure from business to get product out the door. I take modest pride in the code I build daily, yet when I look at the code I wrote the day before, I wonder, &#8220;What the heck was I thinking?&#8221; This is what keeps the craft challenging to me—the constant desire to figure out how to do things a little better the next time, and with a little less pain than this time.</p></blockquote>
<p><strong>Reference</strong><a title="Safari eBooks - ACM - 0131482394 - Agile Java™: Crafting Code with Test-Driven Development" href="http://acmsel.safaribooksonline.com/0131482394/pref01#X2ludGVybmFsX1NlY3Rpb25Db250ZW50P3htbGlkPTAxMzE0ODIzOTQvcHJlZjA2">Safari eBooks &#8211; ACM &#8211; 0131482394 &#8211; Agile Java™: Crafting Code with Test-Driven Development</a></p>
<p><a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F08%2Fdefinition-of-software-craftsman%2F&amp;linkname=Definition%20of%20Software%20Craftsman" title="Facebook" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F08%2Fdefinition-of-software-craftsman%2F&amp;linkname=Definition%20of%20Software%20Craftsman" title="Twitter" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F08%2Fdefinition-of-software-craftsman%2F&amp;linkname=Definition%20of%20Software%20Craftsman" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F08%2Fdefinition-of-software-craftsman%2F&amp;linkname=Definition%20of%20Software%20Craftsman" title="DZone" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F08%2Fdefinition-of-software-craftsman%2F&amp;linkname=Definition%20of%20Software%20Craftsman" title="Delicious" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fpragmaticcraftsman.com%2F2007%2F08%2Fdefinition-of-software-craftsman%2F&amp;linkname=Definition%20of%20Software%20Craftsman" title="Email" rel="nofollow" target="_blank"><img src="http://pragmaticcraftsman.kubasek.com/wp-content/plugins/add-to-any/icons/email.png" width="16" height="16" alt="Email"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Bookmark</a> </p>]]></content:encoded>
			<wfw:commentRss>http://pragmaticcraftsman.com/2007/08/definition-of-software-craftsman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: pragmaticcraftsman.com @ 2012-05-22 01:13:18 -->
