<?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: Something to Think About</title>
	<atom:link href="http://www.yuwantitwhen.com/blog/2007/09/28/something-to-think-about/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yuwantitwhen.com/blog/2007/09/28/something-to-think-about/</link>
	<description>Practical methods for successful software management.</description>
	<lastBuildDate>Thu, 06 May 2010 02:07:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Bill Miller</title>
		<link>http://www.yuwantitwhen.com/blog/2007/09/28/something-to-think-about/comment-page-1/#comment-45</link>
		<dc:creator>Bill Miller</dc:creator>
		<pubDate>Sun, 30 Sep 2007 18:48:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.yuwantitwhen.com/blog/2007/09/28/something-to-think-about/#comment-45</guid>
		<description>Terry, thank you for commenting, and please continue to visit and comment.

Short delivery cycles are good but no shorter than necessary to deliver what’s required to do the right job. Not much worth having gets done in software in 1 month or less as the Agile proponents are advocating. Moving software under development to test as soon as possible and delivering to test daily if possible thereafter is a great practice, but even those delivery dates cannot be artificially imposed. 

I agree. It’s been my experience that unrealistic schedules don’t improve project success, and that’s what I was intending to suggest in my post, but not very well.  Here’s what I believe. The deliveries should dictate the schedule and the delivery date is just one of the many requirements. If the delivery date is the most important requirement, you find the suite of requirements that can be delivered on that date. If you can’t find them, you are back to delivering to unrealistic schedules. Too often teams will find themselves here -- committing to unrealistic timelines, and too often product managers don’t appreciate the damage they do to their products when they are stubbornly inflexible. Now, what do we do about it when we know we are there and have no choice? I’ll try to address that in future posts.

I like to believe I advocate agile methodologies too, but not what’s currently being advocated by the Agile methodologies that are attempting to support the Agile Manifesto: Scrum and Extreme being two flavors. What Agile means in these approaches is foregoing rigorous requirements analysis and design and doing it all on the fly as you code: parallelism. I don’t agree with that approach, and I don’t believe it would have been successful on any product I was involved in delivering.  I have seen projects deliver that way, and they were very unsuccessful.

Refactoring is an expensive approach to software development. It’s much cheaper to change things in a document before you code it — whether it is a design or a requirement. Could you imagine constructing a building without architecture plans and using refactoring to get the architecture and requirements right? You could actually build a building like that, but the constant constructing, tearing down, and reconstructing would be expensive. That’s what the Agile crowd is advocating in refactoring: use refactoring as a process to develop the requirements and design.  I will never agree that, that’s a successful approach to developing software. So the Agile proponents are arguing for a very expensive paradigm for software development while companies are moving entire software departments offshore to save money. This is a good thing?</description>
		<content:encoded><![CDATA[<p>Terry, thank you for commenting, and please continue to visit and comment.</p>
<p>Short delivery cycles are good but no shorter than necessary to deliver what’s required to do the right job. Not much worth having gets done in software in 1 month or less as the Agile proponents are advocating. Moving software under development to test as soon as possible and delivering to test daily if possible thereafter is a great practice, but even those delivery dates cannot be artificially imposed. </p>
<p>I agree. It’s been my experience that unrealistic schedules don’t improve project success, and that’s what I was intending to suggest in my post, but not very well.  Here’s what I believe. The deliveries should dictate the schedule and the delivery date is just one of the many requirements. If the delivery date is the most important requirement, you find the suite of requirements that can be delivered on that date. If you can’t find them, you are back to delivering to unrealistic schedules. Too often teams will find themselves here &#8212; committing to unrealistic timelines, and too often product managers don’t appreciate the damage they do to their products when they are stubbornly inflexible. Now, what do we do about it when we know we are there and have no choice? I’ll try to address that in future posts.</p>
<p>I like to believe I advocate agile methodologies too, but not what’s currently being advocated by the Agile methodologies that are attempting to support the Agile Manifesto: Scrum and Extreme being two flavors. What Agile means in these approaches is foregoing rigorous requirements analysis and design and doing it all on the fly as you code: parallelism. I don’t agree with that approach, and I don’t believe it would have been successful on any product I was involved in delivering.  I have seen projects deliver that way, and they were very unsuccessful.</p>
<p>Refactoring is an expensive approach to software development. It’s much cheaper to change things in a document before you code it — whether it is a design or a requirement. Could you imagine constructing a building without architecture plans and using refactoring to get the architecture and requirements right? You could actually build a building like that, but the constant constructing, tearing down, and reconstructing would be expensive. That’s what the Agile crowd is advocating in refactoring: use refactoring as a process to develop the requirements and design.  I will never agree that, that’s a successful approach to developing software. So the Agile proponents are arguing for a very expensive paradigm for software development while companies are moving entire software departments offshore to save money. This is a good thing?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Terry Colligan</title>
		<link>http://www.yuwantitwhen.com/blog/2007/09/28/something-to-think-about/comment-page-1/#comment-40</link>
		<dc:creator>Terry Colligan</dc:creator>
		<pubDate>Sun, 30 Sep 2007 03:50:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.yuwantitwhen.com/blog/2007/09/28/something-to-think-about/#comment-40</guid>
		<description>Actually, I wasn&#039;t saying that shorter schedules don&#039;t improve project success.  That&#039;s only true if you can&#039;t reduce what is to be delivered in the shorter schedule.

I generally used Agile methods, albeit before Agile was described as such.  A big advantage of short release cycles is that you get feedback much faster -- both feedback to the developers and their managers, and feedback to the users of the software.

In my quote, I was merely observing that everytime *I* made a managerial decision (typically against building some tool or automation), it was wrong, and ended up resulting in lower quality and longer schedules.

The programmer&#039;s version of the fable of the cobbler&#039;s children&#039;s shoes, sadly.

I don&#039;t really have an opinion about shorter schedules -- but I do strongly believe that schedules should be realistic and attainable.  If the shortness of the schedule is externally imposed, as it often is, the resulting schedule is most often unrealistic.  Unrealistic schedules don&#039;t improve project success, obviously.</description>
		<content:encoded><![CDATA[<p>Actually, I wasn&#8217;t saying that shorter schedules don&#8217;t improve project success.  That&#8217;s only true if you can&#8217;t reduce what is to be delivered in the shorter schedule.</p>
<p>I generally used Agile methods, albeit before Agile was described as such.  A big advantage of short release cycles is that you get feedback much faster &#8212; both feedback to the developers and their managers, and feedback to the users of the software.</p>
<p>In my quote, I was merely observing that everytime *I* made a managerial decision (typically against building some tool or automation), it was wrong, and ended up resulting in lower quality and longer schedules.</p>
<p>The programmer&#8217;s version of the fable of the cobbler&#8217;s children&#8217;s shoes, sadly.</p>
<p>I don&#8217;t really have an opinion about shorter schedules &#8212; but I do strongly believe that schedules should be realistic and attainable.  If the shortness of the schedule is externally imposed, as it often is, the resulting schedule is most often unrealistic.  Unrealistic schedules don&#8217;t improve project success, obviously.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
