<?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: Things I don&#8217;t understand about Agile</title>
	<atom:link href="http://www.fuzzylizard.com/archives/2009/02/04/1006/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/</link>
	<description>Web development and design with a little VFX thrown in for fun</description>
	<lastBuildDate>Tue, 28 Apr 2009 21:54:54 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Darren Hobbs</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32934</link>
		<dc:creator>Darren Hobbs</dc:creator>
		<pubDate>Mon, 09 Feb 2009 13:05:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32934</guid>
		<description>If you think comments are evil, then you must really hate all the Java collections classes. In fact the whole of the .Net and Java runtimes must fill you with rage. There&#039;s comments everywhere!!

Comments are not evil. Too many libraries don&#039;t bother to explain their API because they&#039;ve drunk the &#039;no commments&#039; kool-aid.

For the sake of all the developers who will come after you, document your public API with class and method level javadoc COMMENTS! Children as yet unborn will thank you.</description>
		<content:encoded><![CDATA[<p>If you think comments are evil, then you must really hate all the Java collections classes. In fact the whole of the .Net and Java runtimes must fill you with rage. There&#8217;s comments everywhere!!</p>
<p>Comments are not evil. Too many libraries don&#8217;t bother to explain their API because they&#8217;ve drunk the &#8216;no commments&#8217; kool-aid.</p>
<p>For the sake of all the developers who will come after you, document your public API with class and method level javadoc COMMENTS! Children as yet unborn will thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jurgen Appelo</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32851</link>
		<dc:creator>Jurgen Appelo</dc:creator>
		<pubDate>Sat, 07 Feb 2009 15:17:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32851</guid>
		<description>Chris, I can relate to that. I&#039;ve blogged about agile fundamentalism yesterday:

The Decline and Fall of Agilists
http://www.noop.nl/2009/02/the-decline-and-fall-of-agilists.html</description>
		<content:encoded><![CDATA[<p>Chris, I can relate to that. I&#8217;ve blogged about agile fundamentalism yesterday:</p>
<p>The Decline and Fall of Agilists<br />
<a href="http://www.noop.nl/2009/02/the-decline-and-fall-of-agilists.html" rel="nofollow">http://www.noop.nl/2009/02/the-decline-and-fall-of-agilists.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Carroll</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32782</link>
		<dc:creator>Nick Carroll</dc:creator>
		<pubDate>Thu, 05 Feb 2009 22:12:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32782</guid>
		<description>I thought I&#039;ll be evil and post this comment.  :p

I am glad that you are asking yourself these questions.  I find it ironic how rigid people are on their Agile practices.

Comments in code don&#039;t bother me.  They are like Google ads to me now.  Why do people have to make a big deal about them for?  Haven&#039;t they enabled the code collapse feature in their IDEs for comments?

I&#039;m not a fan of big up front design.  Keep it lightweight.  Things where I believe some design should be done up front is UI work.  Get a UX person in to create a good information architecture.  You really can&#039;t do this adhoc during a project.  UI should be done up front because it will always get deprioritised during a project and left till the end, at which point a lot more effort is required to shift code around to handle the UI design.

I don&#039;t get the pair all the time rule either.  Just yesterday I found a defect that was written by a pair.  It wasn&#039;t found until the business started doing UAT.  There were even unit tests all around it, so the pair were asserting the defect.  The shared understanding in this case was flawed.

Keep questioning everything you do.  Continuous improvement always begins with a question.</description>
		<content:encoded><![CDATA[<p>I thought I&#8217;ll be evil and post this comment.  :p</p>
<p>I am glad that you are asking yourself these questions.  I find it ironic how rigid people are on their Agile practices.</p>
<p>Comments in code don&#8217;t bother me.  They are like Google ads to me now.  Why do people have to make a big deal about them for?  Haven&#8217;t they enabled the code collapse feature in their IDEs for comments?</p>
<p>I&#8217;m not a fan of big up front design.  Keep it lightweight.  Things where I believe some design should be done up front is UI work.  Get a UX person in to create a good information architecture.  You really can&#8217;t do this adhoc during a project.  UI should be done up front because it will always get deprioritised during a project and left till the end, at which point a lot more effort is required to shift code around to handle the UI design.</p>
<p>I don&#8217;t get the pair all the time rule either.  Just yesterday I found a defect that was written by a pair.  It wasn&#8217;t found until the business started doing UAT.  There were even unit tests all around it, so the pair were asserting the defect.  The shared understanding in this case was flawed.</p>
<p>Keep questioning everything you do.  Continuous improvement always begins with a question.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Santini</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32776</link>
		<dc:creator>Jeff Santini</dc:creator>
		<pubDate>Thu, 05 Feb 2009 18:22:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32776</guid>
		<description>Fair enough, I am sure there are plenty of bad instances of Agile projects.

I just have a pet peeve about principles getting the blame for things people do. 

After all, democracy is not a bad idea just because America opened up Guantanamo.

Jeff</description>
		<content:encoded><![CDATA[<p>Fair enough, I am sure there are plenty of bad instances of Agile projects.</p>
<p>I just have a pet peeve about principles getting the blame for things people do. </p>
<p>After all, democracy is not a bad idea just because America opened up Guantanamo.</p>
<p>Jeff</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Troy Gould</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32774</link>
		<dc:creator>Troy Gould</dc:creator>
		<pubDate>Thu, 05 Feb 2009 18:19:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32774</guid>
		<description>Agile says nothing about open offices.  Although, Agile environments encourage communication, and communication is hampered by closed-doors and cubicles.

If you are having issues with team and individual flow, then make sure there are core hours where everyone has multiple blocks of 2-3 hours of heads down time.  A huge example of something that kills flow is a team that gets in between 7-9, and then does a standup at 10, and lunch at noon.  The AM is wasted with interruptions to flow.  

There is some trade-off of having the entire team in one room.  Yes, there is some interruption to flow, but usually that interruption has to do with the project and is important for everyone to hear about.  If there are a few people having off-topic conversations, they should leave the room, and go somewhere else where they won&#039;t interrupt flow.

Our team closes the door every day.  We don&#039;t want the outside world interrupting our flow.  Yet inside the room, the interruptions mostly have to do with our project, and usually worth-while.</description>
		<content:encoded><![CDATA[<p>Agile says nothing about open offices.  Although, Agile environments encourage communication, and communication is hampered by closed-doors and cubicles.</p>
<p>If you are having issues with team and individual flow, then make sure there are core hours where everyone has multiple blocks of 2-3 hours of heads down time.  A huge example of something that kills flow is a team that gets in between 7-9, and then does a standup at 10, and lunch at noon.  The AM is wasted with interruptions to flow.  </p>
<p>There is some trade-off of having the entire team in one room.  Yes, there is some interruption to flow, but usually that interruption has to do with the project and is important for everyone to hear about.  If there are a few people having off-topic conversations, they should leave the room, and go somewhere else where they won&#8217;t interrupt flow.</p>
<p>Our team closes the door every day.  We don&#8217;t want the outside world interrupting our flow.  Yet inside the room, the interruptions mostly have to do with our project, and usually worth-while.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anthony Williams</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32766</link>
		<dc:creator>Anthony Williams</dc:creator>
		<pubDate>Thu, 05 Feb 2009 15:05:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32766</guid>
		<description>First off, comments are a *smell*. Comments in code indicate that the code is insufficiently clear --- if you feel the need to write a comment then the code needs refactoring to be clear without it. Your example of a &quot;why&quot; comment does indeed belong in the test --- if the code has to have particular behaviour in particular circumstances there should be a test for it, and the name of the test should be descriptive enough. If you still need a &quot;why&quot; comment, it should go with the test.

As for design being evil, I don&#039;t think anyone would argue that. I think most agile proponents would advocate that we do design *all the time*. The idea is to try and get away from &quot;design everything before coding&quot; to &quot;just enough&quot; design for the tiny feature we&#039;re doing right now, combined with refactoring to improve the design as we go along (and ensure we end up with lasagna where appropriate).

I almost never pair; mainly because I am the sole developer on most of my projects. Sometimes I make mistakes that I think a pair would have stopped me making. Sometimes I might ponder how to approach a problem for a while, and a pair might have helped reduce that time by thinking of an approach quicker. I haven&#039;t enough experience pairing to confirm whether this is the case, but many people report plentiful benefits from pairing.

When it comes down to it, the principles are just that: principles. Agile methods such as XP provide concrete practices that embody those principles. I don&#039;t think anyone would say you MUST do any particular practices. However, if you don&#039;t do them, and you experience the problems they are intended to address it&#039;s probably a good idea to try out the recommended practices.</description>
		<content:encoded><![CDATA[<p>First off, comments are a *smell*. Comments in code indicate that the code is insufficiently clear &#8212; if you feel the need to write a comment then the code needs refactoring to be clear without it. Your example of a &#8220;why&#8221; comment does indeed belong in the test &#8212; if the code has to have particular behaviour in particular circumstances there should be a test for it, and the name of the test should be descriptive enough. If you still need a &#8220;why&#8221; comment, it should go with the test.</p>
<p>As for design being evil, I don&#8217;t think anyone would argue that. I think most agile proponents would advocate that we do design *all the time*. The idea is to try and get away from &#8220;design everything before coding&#8221; to &#8220;just enough&#8221; design for the tiny feature we&#8217;re doing right now, combined with refactoring to improve the design as we go along (and ensure we end up with lasagna where appropriate).</p>
<p>I almost never pair; mainly because I am the sole developer on most of my projects. Sometimes I make mistakes that I think a pair would have stopped me making. Sometimes I might ponder how to approach a problem for a while, and a pair might have helped reduce that time by thinking of an approach quicker. I haven&#8217;t enough experience pairing to confirm whether this is the case, but many people report plentiful benefits from pairing.</p>
<p>When it comes down to it, the principles are just that: principles. Agile methods such as XP provide concrete practices that embody those principles. I don&#8217;t think anyone would say you MUST do any particular practices. However, if you don&#8217;t do them, and you experience the problems they are intended to address it&#8217;s probably a good idea to try out the recommended practices.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Johnston</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32760</link>
		<dc:creator>Chris Johnston</dc:creator>
		<pubDate>Thu, 05 Feb 2009 10:25:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32760</guid>
		<description>@ Robin - you encountered a captcha? I haven&#039;t installed one, interesting. I will have to try posting a comment using Google Chrome.

@Jeff - Granted, examples would have helped. I provided some by way of some of the links. As for better examples, there are not attitudes that I have read on the web, they are attitudes I have encountered while working with people on agile projects.

I agree that Agile is a set of principles, none of which state that things are evil. However, I am not so sure the same can be said for implementations of Agile such as XP. Either way, it is amazing the amount of people I have met on projects have a very regimented approach to Agile.

For those who think design is evil, do things like creating layered architecture and ensuring your code adheres to things like Domain Driven Design fall under the category of design or creating clean code. 

For me, they fall under both. I think you need to have some form of architectural design in place before you start coding. If you are creating a distributed system you need to know where you integration points are and how they will function. If you are creating a web application, you need to know how your tiers will be deployed and the integration points between them.

One project I worked on, there was no design done and consequently, the code was a mess. It had no layers and it was incredibly hard for even experienced developers to navigate the code base.</description>
		<content:encoded><![CDATA[<p>@ Robin &#8211; you encountered a captcha? I haven&#8217;t installed one, interesting. I will have to try posting a comment using Google Chrome.</p>
<p>@Jeff &#8211; Granted, examples would have helped. I provided some by way of some of the links. As for better examples, there are not attitudes that I have read on the web, they are attitudes I have encountered while working with people on agile projects.</p>
<p>I agree that Agile is a set of principles, none of which state that things are evil. However, I am not so sure the same can be said for implementations of Agile such as XP. Either way, it is amazing the amount of people I have met on projects have a very regimented approach to Agile.</p>
<p>For those who think design is evil, do things like creating layered architecture and ensuring your code adheres to things like Domain Driven Design fall under the category of design or creating clean code. </p>
<p>For me, they fall under both. I think you need to have some form of architectural design in place before you start coding. If you are creating a distributed system you need to know where you integration points are and how they will function. If you are creating a web application, you need to know how your tiers will be deployed and the integration points between them.</p>
<p>One project I worked on, there was no design done and consequently, the code was a mess. It had no layers and it was incredibly hard for even experienced developers to navigate the code base.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Santini</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32756</link>
		<dc:creator>Jeff Santini</dc:creator>
		<pubDate>Thu, 05 Feb 2009 09:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32756</guid>
		<description>If you don&#039; give examples when you make statements about Agile then you are just creating, then killing your own strawman.

Who said Design is evil and do they stand behind that statement or were they just spouting off?  I don&#039;t know of any &quot;well respected&quot; Agile artifact that says design is evil.  I don&#039;t think you will hear Martin Fowler, Bob Martin, or Kent Beck say it.  How did &quot;Agile&quot; tell you that design is evil?  

Same with not pairing.  Where does one find out what the &quot;Agile rules&quot; are?  Please tell me, because the manifesto is the only thing I know of that &quot;defines&quot; Agile and it does not call anything evil.  It does not even recommend against doing ANYTHING.  It only states the principles that a few guys found useful when trying to deliver software.

If you try a little harder you might find more constructive ways to pose your questions to the world.

Jeff Santini

But for what it&#039;s worth, comments are evil :)</description>
		<content:encoded><![CDATA[<p>If you don&#8217; give examples when you make statements about Agile then you are just creating, then killing your own strawman.</p>
<p>Who said Design is evil and do they stand behind that statement or were they just spouting off?  I don&#8217;t know of any &#8220;well respected&#8221; Agile artifact that says design is evil.  I don&#8217;t think you will hear Martin Fowler, Bob Martin, or Kent Beck say it.  How did &#8220;Agile&#8221; tell you that design is evil?  </p>
<p>Same with not pairing.  Where does one find out what the &#8220;Agile rules&#8221; are?  Please tell me, because the manifesto is the only thing I know of that &#8220;defines&#8221; Agile and it does not call anything evil.  It does not even recommend against doing ANYTHING.  It only states the principles that a few guys found useful when trying to deliver software.</p>
<p>If you try a little harder you might find more constructive ways to pose your questions to the world.</p>
<p>Jeff Santini</p>
<p>But for what it&#8217;s worth, comments are evil <img src='http://www.fuzzylizard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kai Ramuenke</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32745</link>
		<dc:creator>Kai Ramuenke</dc:creator>
		<pubDate>Wed, 04 Feb 2009 23:21:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32745</guid>
		<description>My point of view when it comes to agile principles and whether to follow them or not, it&#039;s all about risk management. We know about the positive and negative effects of applying the principles (or not) and if the team is willing to live with the consequences then that&#039;s their decision. 
For example: do we take the risk of less knowledge sharing by not pairing? Do we take the risk of diminished code quality by doing no upfront design at all?</description>
		<content:encoded><![CDATA[<p>My point of view when it comes to agile principles and whether to follow them or not, it&#8217;s all about risk management. We know about the positive and negative effects of applying the principles (or not) and if the team is willing to live with the consequences then that&#8217;s their decision.<br />
For example: do we take the risk of less knowledge sharing by not pairing? Do we take the risk of diminished code quality by doing no upfront design at all?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Foo</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/comment-page-1/#comment-32744</link>
		<dc:creator>Foo</dc:creator>
		<pubDate>Wed, 04 Feb 2009 23:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006#comment-32744</guid>
		<description>Evil in agile isn&#039;t evil in other coding metaphors.

Evil in agile means something you don&#039;t want to do. Avoid it if you can... but when you really need to do it then do it and do it right.

Comments are evil, because if you start allowing comments... then someone will come along and say you should comment all the code. Then before you know it you&#039;re in a 2 hour meeting arguing over whether than comment should start with // or ///.

Comments are evil. Avoid them. Tell people not to use them.

Then when there is a really good time to use them... use them anyway.

---

Same with design. Design is evil. Tell people its bad and not to do it. Then when something actually does need to be designed before a project... do it anyway.

---

Pairing is absolutely required. Not pairing is evil. Tell people they should be pairing. Then when you&#039;re doing some fiddly spacing exercise on a UI, go ahead and do it alone. Its trivial and doing it in pairs would just suck another productive person into the boring mess.

---

There are no rules in Agile. Just don&#039;t ever admit to anyone else out loud..</description>
		<content:encoded><![CDATA[<p>Evil in agile isn&#8217;t evil in other coding metaphors.</p>
<p>Evil in agile means something you don&#8217;t want to do. Avoid it if you can&#8230; but when you really need to do it then do it and do it right.</p>
<p>Comments are evil, because if you start allowing comments&#8230; then someone will come along and say you should comment all the code. Then before you know it you&#8217;re in a 2 hour meeting arguing over whether than comment should start with // or ///.</p>
<p>Comments are evil. Avoid them. Tell people not to use them.</p>
<p>Then when there is a really good time to use them&#8230; use them anyway.</p>
<p>&#8212;</p>
<p>Same with design. Design is evil. Tell people its bad and not to do it. Then when something actually does need to be designed before a project&#8230; do it anyway.</p>
<p>&#8212;</p>
<p>Pairing is absolutely required. Not pairing is evil. Tell people they should be pairing. Then when you&#8217;re doing some fiddly spacing exercise on a UI, go ahead and do it alone. Its trivial and doing it in pairs would just suck another productive person into the boring mess.</p>
<p>&#8212;</p>
<p>There are no rules in Agile. Just don&#8217;t ever admit to anyone else out loud..</p>
]]></content:encoded>
	</item>
</channel>
</rss>
