<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: The Problem with the Software Craftsmanship Concept</title>
	<atom:link href="http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/</link>
	<description>Software Development &#38; Management</description>
	<lastBuildDate>Wed, 08 Sep 2010 21:00:31 -0700</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Luciano</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-927</link>
		<dc:creator>Luciano</dc:creator>
		<pubDate>Wed, 05 Aug 2009 21:29:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-927</guid>
		<description>Sure! I just tried to say that I don&#039;t see anything on Craftsmanship that is missed on the whole Agile Manifesto. It seems that those guys &quot;forgot their vegetables&quot;, jumping direct to a new manifesto...</description>
		<content:encoded><![CDATA[<p>Sure! I just tried to say that I don&#8217;t see anything on Craftsmanship that is missed on the whole Agile Manifesto. It seems that those guys &#8220;forgot their vegetables&#8221;, jumping direct to a new manifesto&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Krishna</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-925</link>
		<dc:creator>Krishna</dc:creator>
		<pubDate>Wed, 05 Aug 2009 20:57:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-925</guid>
		<description>The Agile Manifesto is great, but like everything else, should be guidelines rather than an article of faith. We must always learn to blend that with our knowledge and experience.</description>
		<content:encoded><![CDATA[<p>The Agile Manifesto is great, but like everything else, should be guidelines rather than an article of faith. We must always learn to blend that with our knowledge and experience.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luciano</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-922</link>
		<dc:creator>Luciano</dc:creator>
		<pubDate>Wed, 05 Aug 2009 18:57:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-922</guid>
		<description>Guys, I&#039;m sorry for my bad English. I wish you can understand.</description>
		<content:encoded><![CDATA[<p>Guys, I&#8217;m sorry for my bad English. I wish you can understand.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luciano</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-921</link>
		<dc:creator>Luciano</dc:creator>
		<pubDate>Wed, 05 Aug 2009 18:55:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-921</guid>
		<description>Really good point of view. I agree with you. I think this is just another manifesto, and could there be a bunch like this, just adding infinite &#039;not only... but also..&#039;. If you can really understand and practice the Agile Manifesto, you&#039;ll don&#039;t need a second one.

Luciano</description>
		<content:encoded><![CDATA[<p>Really good point of view. I agree with you. I think this is just another manifesto, and could there be a bunch like this, just adding infinite &#8216;not only&#8230; but also..&#8217;. If you can really understand and practice the Agile Manifesto, you&#8217;ll don&#8217;t need a second one.</p>
<p>Luciano</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-790</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Mon, 27 Jul 2009 12:30:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-790</guid>
		<description>This summer I&#039;m celebrating 30 years since I wrote my first program, and I disagree.

The bulk of your argument rests on the assertion that the use of higher-level tools bestows a higher level of ability on those using them, and that&#039;s simply not the case.  Tools (in the general sense, not just software tools) are things we use to reduce the work required to do something.  To put it another way, they bring efficiency.  But higher-level tools carry very pointy parts and will let you saw your own leg off if you&#039;re not careful.

Software is no different than a lot of other pursuits in that putting powerful tools in the hands of the inexperienced doesn&#039;t usually produce excellent results.  What comes from experience is the ability to understand what a tool does (because odds are good you&#039;ve already used something like it before or done it yourself) and how to wield it to do the work you want and do it well without sawing off a limb in the process.

Craftsmanship is what you get from someone who&#039;s got enough experience to understand how to do the best possible job with the tools he has available regardless of their &quot;level.&quot; 

Anybody can write functioning software, and if it works forever, that&#039;s great.  But the moment I have to stick my head under the hood and make repairs or changes, the level of craftsmanship determines how difficult my work is going to be.  And I can tell you from experience that I&#039;d much rather work on a piece of well-crafted code than something that would be featured at Coding Horror.

In some ways, I feel sorry for the younger generation, because they&#039;re expected to reach into the cabinet, pull out the pointiest tools and start producing.  I at least had the luxury of growing up with the industry and had time to soak in all of the innovations that led up to those tools.

--Mark</description>
		<content:encoded><![CDATA[<p>This summer I&#8217;m celebrating 30 years since I wrote my first program, and I disagree.</p>
<p>The bulk of your argument rests on the assertion that the use of higher-level tools bestows a higher level of ability on those using them, and that&#8217;s simply not the case.  Tools (in the general sense, not just software tools) are things we use to reduce the work required to do something.  To put it another way, they bring efficiency.  But higher-level tools carry very pointy parts and will let you saw your own leg off if you&#8217;re not careful.</p>
<p>Software is no different than a lot of other pursuits in that putting powerful tools in the hands of the inexperienced doesn&#8217;t usually produce excellent results.  What comes from experience is the ability to understand what a tool does (because odds are good you&#8217;ve already used something like it before or done it yourself) and how to wield it to do the work you want and do it well without sawing off a limb in the process.</p>
<p>Craftsmanship is what you get from someone who&#8217;s got enough experience to understand how to do the best possible job with the tools he has available regardless of their &#8220;level.&#8221; </p>
<p>Anybody can write functioning software, and if it works forever, that&#8217;s great.  But the moment I have to stick my head under the hood and make repairs or changes, the level of craftsmanship determines how difficult my work is going to be.  And I can tell you from experience that I&#8217;d much rather work on a piece of well-crafted code than something that would be featured at Coding Horror.</p>
<p>In some ways, I feel sorry for the younger generation, because they&#8217;re expected to reach into the cabinet, pull out the pointiest tools and start producing.  I at least had the luxury of growing up with the industry and had time to soak in all of the innovations that led up to those tools.</p>
<p>&#8211;Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-789</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Mon, 27 Jul 2009 08:43:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-789</guid>
		<description>&quot;I am saying that the value of existing experience and knowledge is eroded by innovation so much that the experienced programmer has to work all the more harder to keep up with youngsters.&quot;

After programming for nearly 30 years in more than 20 languages/technologies, I think the &quot;language/technology experience&quot; isn&#039;t worth very much - also not for youngsters. Technology/languages can be learned in one week to get going, a month to get to the top quartile if your good. 

What is important in experience are all the errors and wrong decisions you&#039;ve made over the years, not language knowledge.

Cheers
Stephan
http://twitter.com/codemonkeyism</description>
		<content:encoded><![CDATA[<p>&#8220;I am saying that the value of existing experience and knowledge is eroded by innovation so much that the experienced programmer has to work all the more harder to keep up with youngsters.&#8221;</p>
<p>After programming for nearly 30 years in more than 20 languages/technologies, I think the &#8220;language/technology experience&#8221; isn&#8217;t worth very much &#8211; also not for youngsters. Technology/languages can be learned in one week to get going, a month to get to the top quartile if your good. </p>
<p>What is important in experience are all the errors and wrong decisions you&#8217;ve made over the years, not language knowledge.</p>
<p>Cheers<br />
Stephan<br />
<a href="http://twitter.com/codemonkeyism" rel="nofollow">http://twitter.com/codemonkeyism</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Krishna</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-784</link>
		<dc:creator>Krishna</dc:creator>
		<pubDate>Sun, 26 Jul 2009 23:56:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-784</guid>
		<description>Thanks for your comment, Dave. I agree with your elaboration on experience. It is not the case that experience is entirely useless, but as software innovation continues, some aspects of the experience become obsolete. Others continue to remain relevant. The question for the software practitioner is what kind of experience are they building up?</description>
		<content:encoded><![CDATA[<p>Thanks for your comment, Dave. I agree with your elaboration on experience. It is not the case that experience is entirely useless, but as software innovation continues, some aspects of the experience become obsolete. Others continue to remain relevant. The question for the software practitioner is what kind of experience are they building up?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Krishna</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-783</link>
		<dc:creator>Krishna</dc:creator>
		<pubDate>Sun, 26 Jul 2009 23:36:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-783</guid>
		<description>Kevin, thanks for the link. 

Actually, my point was that software experimentation should *not* be rigid or controlled, because it misses the benefits of experimentation. The concept of a master craftsman and apprentice means that experimentation would be controlled, which is wrong.</description>
		<content:encoded><![CDATA[<p>Kevin, thanks for the link. </p>
<p>Actually, my point was that software experimentation should *not* be rigid or controlled, because it misses the benefits of experimentation. The concept of a master craftsman and apprentice means that experimentation would be controlled, which is wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Omar</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-778</link>
		<dc:creator>Omar</dc:creator>
		<pubDate>Sun, 26 Jul 2009 13:11:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-778</guid>
		<description>Totally concur with Alan. Innovation and craftsmanship are two independent concepts. Good post tough.

--Omar</description>
		<content:encoded><![CDATA[<p>Totally concur with Alan. Innovation and craftsmanship are two independent concepts. Good post tough.</p>
<p>&#8211;Omar</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Cameron</title>
		<link>http://www.thoughtclusters.com/2009/07/the-problem-with-the-software-craftsmanship-concept/comment-page-1/#comment-777</link>
		<dc:creator>Dave Cameron</dc:creator>
		<pubDate>Sun, 26 Jul 2009 13:06:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.thoughtclusters.com/?p=499#comment-777</guid>
		<description>Hello Krishna,

I think you&#039;ve highlighted areas where the craftsmanship metaphor breaks down badly when applied to software. Innovation and collaboration is so important for our field. By evoking Guilds though, craftsmanship suggests a controlled stagnation for the benefit of the establishment. I think there is more to craftsmanship as an idea, however.

Anyone who clings to old technologies and frameworks is unlikely to outperform new tools in the long term because they are ignoring so much new accumulated knowledge. I picture a greying man rubbing punch cards between his fingers and sniffing the aroma while basking in the glow of green CRTs -- it&#039;s ridiculous. A similar scene of an aging vintner testing the soil of his vine fields doesn&#039;t seem as silly.

It is possible in software to have experience beyond a particular framework or technology. This is where the distinction between experience levels become important, in my opinion. No web framework I&#039;ve encountered prevents a developer from introducing a static field to one of their classes, but this is nearly always a bad idea in a web application. The team at twitter got their system up and running quickly, but hit a problem that had been solved years earlier with message-oriented-middleware. ORM frameworks like Hibernate make SQL nearly obsolete, but understanding of the N+1 selects problems remains important.

Knowledge of implementation details becomes obsolete as it is abstracted away. Understanding of software systems in action and how they behave does not. Even though the system is abstracted away for the developer at build-time, all the bulk of it is still there at run-time.</description>
		<content:encoded><![CDATA[<p>Hello Krishna,</p>
<p>I think you&#8217;ve highlighted areas where the craftsmanship metaphor breaks down badly when applied to software. Innovation and collaboration is so important for our field. By evoking Guilds though, craftsmanship suggests a controlled stagnation for the benefit of the establishment. I think there is more to craftsmanship as an idea, however.</p>
<p>Anyone who clings to old technologies and frameworks is unlikely to outperform new tools in the long term because they are ignoring so much new accumulated knowledge. I picture a greying man rubbing punch cards between his fingers and sniffing the aroma while basking in the glow of green CRTs &#8212; it&#8217;s ridiculous. A similar scene of an aging vintner testing the soil of his vine fields doesn&#8217;t seem as silly.</p>
<p>It is possible in software to have experience beyond a particular framework or technology. This is where the distinction between experience levels become important, in my opinion. No web framework I&#8217;ve encountered prevents a developer from introducing a static field to one of their classes, but this is nearly always a bad idea in a web application. The team at twitter got their system up and running quickly, but hit a problem that had been solved years earlier with message-oriented-middleware. ORM frameworks like Hibernate make SQL nearly obsolete, but understanding of the N+1 selects problems remains important.</p>
<p>Knowledge of implementation details becomes obsolete as it is abstracted away. Understanding of software systems in action and how they behave does not. Even though the system is abstracted away for the developer at build-time, all the bulk of it is still there at run-time.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
