<?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: Is Agile Bad For Software Development?</title>
	<atom:link href="http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/</link>
	<description>Software product success.</description>
	<lastBuildDate>Tue, 22 May 2012 20:46:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-371667</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 15 May 2008 03:57:55 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-371667</guid>
		<description>Loved your segue on elicitation, Jason!  I think that is the key to &quot;Elicitation 311&quot;  The 101 class focuses on techniques, but as you say - you&#039;re only as effective as your relationships.  I think you&#039;ve reached an enlightened stage.  No amount of trust, without good elicitation skills will help you elicit requirements.  

A lot of the business analysts I&#039;ve worked with really need to walk before they run.  But I&#039;ll make sure and incorporate the trust-factor as an underlying theme when I coach someone in the future.  Thanks!</description>
		<content:encoded><![CDATA[<p>Loved your segue on elicitation, Jason!  I think that is the key to &#8220;Elicitation 311&#8243;  The 101 class focuses on techniques, but as you say &#8211; you&#8217;re only as effective as your relationships.  I think you&#8217;ve reached an enlightened stage.  No amount of trust, without good elicitation skills will help you elicit requirements.  </p>
<p>A lot of the business analysts I&#8217;ve worked with really need to walk before they run.  But I&#8217;ll make sure and incorporate the trust-factor as an underlying theme when I coach someone in the future.  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin James</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-367944</link>
		<dc:creator>Justin James</dc:creator>
		<pubDate>Fri, 09 May 2008 18:57:20 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-367944</guid>
		<description>Scott -

Good stuff there. The connection between BAs and IT is crucial. People do not realize that a BA *should* be doing more than acting as a translation layer. When I first got interested in learning more about the software development process other than writing the code, I was doing a lot of learning through my employer&#039;s online training, in the direction of management. I learned a lot about risk management and Six Sigma fundamentals. Reading that stuff really opened my eyes. Since then, I have tried to bring the spirit of both of those disiplines to the table. Indeed, Six Sigma is, in my mind, a type of risk management, since by reducing the potential points of failure, you are managing risk.

But my experience in the business world has been that companies simply don&#039;t &quot;get&quot; these concepts. Risk management? The only risk management that occurs is nearly completely emotion based. &quot;Risk&quot; is when someone feels queasy about an idea, and &quot;managing&quot; risk means to shoot down the idea. This is why so many people in the business world act like dogs backed into a corner, lashing out at anyone trying to improve things. In an emotion-based &quot;risk management&quot; environment, &quot;risk&quot; means &quot;will this change the status quo?&quot; regardless of the safety nets, condition of the status quo, or anything else.

People feel a fundamental lack of control over their own destinies. When they acheive a modicum of control, they defend it. That&#039;s why the manager that rejects any kind of process re-engineering from outside of their group will then turn around and go to IT with a diktat of how the software should work. It&#039;s all about control.

The approaches that I&#039;ve had the most success with involve spending very little time discussing the software or even the project. They approach the customer in a manner designed not to collect requirements, but to instill trust. You talk about past projects, and the sucess that they&#039;ve been. You talk about how the clients tried to have ultra control, but it caused problems until they loosened their grip and let you do a proper *analysis* of their *business* and then draft specs based on that. You talk about things that have happened, both good and bad, so that the customer sees your honesty. And so on and so on. After a while, you&#039;ve built the trust. Next, you spend a lot of &quot;hands-on&quot; time with the customer. You learn their job. You spend time with the people doing the grunt work, find out from them what&#039;s right, what&#039;s wrong, what they would like to see changed. Hint: people are a lot more comfortable being brutally honest and open when they are not at their desk; go to lunch, or visit the smoke break area (for the record, even after I quit smoking, I found that spending time in the smoking area was critical to getting my job done). Do the same thing with the supervisors, the department heads. Don&#039;t take notes right then and there. That scares people. Just talk, listen, ask questions that show that you&#039;re learning. Keep asking, &quot;why?&quot; If you can, spend some time trying to do their job.

So what has happened? At this point, I&#039;m quite familiar with their process, what&#039;s right, what isn&#039;t, what management thinks they&#039;ve said the process is, and what the workers are actually doing (rarely in agreement!). Management has said, &quot;we do this because it is a legal requirement, we do that to make the records easier to handle&quot;, and the workers have said, &quot;we avoid that part of the process because it is hard to do right, and we &#039;fake&#039; this part because they didn&#039;t buy the equipment needed for it to work.&quot; Now I have a realistic idea of the challenges.

At that point, you disappear for a while, and draft a document. This document should contain the following items:

* Introduction to the topic
* Description of the current scenario, including &quot;challenges&quot;, &quot;successes&quot;, and &quot;failures&quot;; be brutal but tactful
* Goals identified by management and through analysis of the current scenario; most of the goals will NOT be driven by the client, but by your analysis
* Point-by-point breakout of features/plans/whatever in your solution, with in-depth details explaining precisely how these will address the goals
* Section providing them with some choice, and a full disclosure of the pros/cons of the choices. Remember, you are fighting against their fear of being powerless, it is better to let them make some choices and feel like they have control, even if they make bad ones. By setting up their choices for them, you ensure that they can&#039;t do TOO much damage to the over all project
* &quot;Next steps&quot; outlining precisely who is responsible for what, including what decisions need to be made
* Conclusion

This document format has yielded outstanding success for me when I have been able to employ it, as has this entire procedure. It flips the traditional BA on their head. Instead of saying, &quot;what are your requirements&quot;? and letting the customer dictate outside of their domain (software projects, software design, UI, etc.), you are allowing them to use your expertise, and giving them control over what is properly their domain (&quot;these are three ways that I have found to meet your needs, which of these works best for you, and why?&quot;).

J.Ja</description>
		<content:encoded><![CDATA[<p>Scott -</p>
<p>Good stuff there. The connection between BAs and IT is crucial. People do not realize that a BA *should* be doing more than acting as a translation layer. When I first got interested in learning more about the software development process other than writing the code, I was doing a lot of learning through my employer&#8217;s online training, in the direction of management. I learned a lot about risk management and Six Sigma fundamentals. Reading that stuff really opened my eyes. Since then, I have tried to bring the spirit of both of those disiplines to the table. Indeed, Six Sigma is, in my mind, a type of risk management, since by reducing the potential points of failure, you are managing risk.</p>
<p>But my experience in the business world has been that companies simply don&#8217;t &#8220;get&#8221; these concepts. Risk management? The only risk management that occurs is nearly completely emotion based. &#8220;Risk&#8221; is when someone feels queasy about an idea, and &#8220;managing&#8221; risk means to shoot down the idea. This is why so many people in the business world act like dogs backed into a corner, lashing out at anyone trying to improve things. In an emotion-based &#8220;risk management&#8221; environment, &#8220;risk&#8221; means &#8220;will this change the status quo?&#8221; regardless of the safety nets, condition of the status quo, or anything else.</p>
<p>People feel a fundamental lack of control over their own destinies. When they acheive a modicum of control, they defend it. That&#8217;s why the manager that rejects any kind of process re-engineering from outside of their group will then turn around and go to IT with a diktat of how the software should work. It&#8217;s all about control.</p>
<p>The approaches that I&#8217;ve had the most success with involve spending very little time discussing the software or even the project. They approach the customer in a manner designed not to collect requirements, but to instill trust. You talk about past projects, and the sucess that they&#8217;ve been. You talk about how the clients tried to have ultra control, but it caused problems until they loosened their grip and let you do a proper *analysis* of their *business* and then draft specs based on that. You talk about things that have happened, both good and bad, so that the customer sees your honesty. And so on and so on. After a while, you&#8217;ve built the trust. Next, you spend a lot of &#8220;hands-on&#8221; time with the customer. You learn their job. You spend time with the people doing the grunt work, find out from them what&#8217;s right, what&#8217;s wrong, what they would like to see changed. Hint: people are a lot more comfortable being brutally honest and open when they are not at their desk; go to lunch, or visit the smoke break area (for the record, even after I quit smoking, I found that spending time in the smoking area was critical to getting my job done). Do the same thing with the supervisors, the department heads. Don&#8217;t take notes right then and there. That scares people. Just talk, listen, ask questions that show that you&#8217;re learning. Keep asking, &#8220;why?&#8221; If you can, spend some time trying to do their job.</p>
<p>So what has happened? At this point, I&#8217;m quite familiar with their process, what&#8217;s right, what isn&#8217;t, what management thinks they&#8217;ve said the process is, and what the workers are actually doing (rarely in agreement!). Management has said, &#8220;we do this because it is a legal requirement, we do that to make the records easier to handle&#8221;, and the workers have said, &#8220;we avoid that part of the process because it is hard to do right, and we &#8216;fake&#8217; this part because they didn&#8217;t buy the equipment needed for it to work.&#8221; Now I have a realistic idea of the challenges.</p>
<p>At that point, you disappear for a while, and draft a document. This document should contain the following items:</p>
<p>* Introduction to the topic<br />
* Description of the current scenario, including &#8220;challenges&#8221;, &#8220;successes&#8221;, and &#8220;failures&#8221;; be brutal but tactful<br />
* Goals identified by management and through analysis of the current scenario; most of the goals will NOT be driven by the client, but by your analysis<br />
* Point-by-point breakout of features/plans/whatever in your solution, with in-depth details explaining precisely how these will address the goals<br />
* Section providing them with some choice, and a full disclosure of the pros/cons of the choices. Remember, you are fighting against their fear of being powerless, it is better to let them make some choices and feel like they have control, even if they make bad ones. By setting up their choices for them, you ensure that they can&#8217;t do TOO much damage to the over all project<br />
* &#8220;Next steps&#8221; outlining precisely who is responsible for what, including what decisions need to be made<br />
* Conclusion</p>
<p>This document format has yielded outstanding success for me when I have been able to employ it, as has this entire procedure. It flips the traditional BA on their head. Instead of saying, &#8220;what are your requirements&#8221;? and letting the customer dictate outside of their domain (software projects, software design, UI, etc.), you are allowing them to use your expertise, and giving them control over what is properly their domain (&#8220;these are three ways that I have found to meet your needs, which of these works best for you, and why?&#8221;).</p>
<p>J.Ja</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-366507</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 08 May 2008 04:15:11 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-366507</guid>
		<description>Love it!

I touched on the need to think this way in &lt;a href=&quot;http://tynerblain.com/blog/2007/04/03/ba-profit-center/&quot; rel=&quot;nofollow&quot;&gt;Business Analyst Profit Center&lt;/a&gt;, which surprisingly, was written a couple weeks before this article :).

Here&#039;s the problem.  The business is a profit center, with an overhead charge for IT.  Even when it is not true, that IT cost is perceived as a fixed cost by many business managers.

IT is almost always managed as a cost center.  IT teams have budgets, and they do projects.  They manage to capacity.  This removes the incentive for IT teams to manage to ROI.  At least in the couple dozen or so Fortune-500 IT organizations where I&#039;ve worked and consulted.

You&#039;re right, and in my experience, it is usually a lack of education / awareness that causes the problem.  Unfortunately, the management accounting systems (with this profit center vs. cost center approach) don&#039;t encourage people in IT to manage towards ROI, so people don&#039;t get the context or training needed to do the simple exercise you outline.

I just gave myself a heart attack a few minutes after your comment when I brought the site down during an upgrade.  If you&#039;re reading this, both the site and my ticker are fine.  But I gotta go rest now.  Have a great one, I&#039;m really enjoying this conversation.  Anyone else want to join the fun too?</description>
		<content:encoded><![CDATA[<p>Love it!</p>
<p>I touched on the need to think this way in <a href="http://tynerblain.com/blog/2007/04/03/ba-profit-center/" rel="nofollow">Business Analyst Profit Center</a>, which surprisingly, was written a couple weeks before this article :).</p>
<p>Here&#8217;s the problem.  The business is a profit center, with an overhead charge for IT.  Even when it is not true, that IT cost is perceived as a fixed cost by many business managers.</p>
<p>IT is almost always managed as a cost center.  IT teams have budgets, and they do projects.  They manage to capacity.  This removes the incentive for IT teams to manage to ROI.  At least in the couple dozen or so Fortune-500 IT organizations where I&#8217;ve worked and consulted.</p>
<p>You&#8217;re right, and in my experience, it is usually a lack of education / awareness that causes the problem.  Unfortunately, the management accounting systems (with this profit center vs. cost center approach) don&#8217;t encourage people in IT to manage towards ROI, so people don&#8217;t get the context or training needed to do the simple exercise you outline.</p>
<p>I just gave myself a heart attack a few minutes after your comment when I brought the site down during an upgrade.  If you&#8217;re reading this, both the site and my ticker are fine.  But I gotta go rest now.  Have a great one, I&#8217;m really enjoying this conversation.  Anyone else want to join the fun too?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin James</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-366494</link>
		<dc:creator>Justin James</dc:creator>
		<pubDate>Thu, 08 May 2008 03:56:55 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-366494</guid>
		<description>&quot;The only reason to rewrite a process is if you can make that process more effective (by increasing top-line or bottom-line revenue). If the value of the change does not justify the cost of the change, don’t do it.&quot;

I agree, and I&#039;ll up the ante by $10. I consider &quot;automating this process&quot; or &quot;writing software to handle this&quot; to be considered a &quot;process change&quot;, even if it is supposed to faithfully reproduce the existing process. So in a nutshell, unless someone can prove to me that spending time &amp; money to pay project managers to manage, BA&#039;s to analyze, programmers to write code, etc. will have real ROI, it&#039;s not worth even thinking about it. And so many of these projects are supposed to save a half dozen clerical positions at $9/hour a whole 10 minutes per day, or compensate for their inability to follow the process (usually because the process is bad, or poorly documented/trained)... if the project took 2 months to complete with 1 full time programmer involved the whole time, a PM spending 10 hours/week on it, a BA for 20 hours and a QA person for 80 hours to test, and 20 hours of sys admin time to deploy/support (not unreasonable for a small project), that is a cost of 420 hours of &quot;very expensive employees&quot; (PM, BA, programmer) and 80 hours of &quot;pricey&quot; employee (QA), for a total cost of about (assuming $70/hour cost for &quot;expensive&quot; and $50/hour for &quot;pricey&quot;) $33,400. So, at $9/hour for those clerical employees (total cost, about $12/hour including benefits and overhead), we would need to save roughly 2,783 man-hours *just to break even*. Wow, that&#039;s a lot of time! That is over a YEAR of employee time. Or to make it more explicit, that project would have to allow 2 clerical employees to be laid off (or reassigned) to show ROI within 6 - 9 months. All of a sudden, this project looks like a really, REALLY bad idea!

Yet, I see companies greenlighting this project all of the time!

It&#039;s simple math, but people fail to get it. The sad truth is, IT is all too often NOT leading to &quot;productivity gains&quot;, but is leading to &quot;wasted time and money&quot;. All too often, it is CHEAPER to pay high school graduates $9/hour to do Mickey Mouse work at a reasonable level of quality than it is to engage IT. I hate to say it, but it is true. Eventually the bean counters will figure this out and a lot of IT folks will lose their jobs.

And of course, no one is asking the question, &quot;if the current process is so great, why are we emulating it in software?&quot;

I posit that the moment it is suggested to write software to replace manual work, that should automatically trigger a full re-evaluation of the process, determine if it is worth writing in code, and if it is, re-engineer it to be approrpiate to software, not merely replacing paper with a Web form and the filing cabinet with a SQL database.

J.Ja</description>
		<content:encoded><![CDATA[<p>&#8220;The only reason to rewrite a process is if you can make that process more effective (by increasing top-line or bottom-line revenue). If the value of the change does not justify the cost of the change, don’t do it.&#8221;</p>
<p>I agree, and I&#8217;ll up the ante by $10. I consider &#8220;automating this process&#8221; or &#8220;writing software to handle this&#8221; to be considered a &#8220;process change&#8221;, even if it is supposed to faithfully reproduce the existing process. So in a nutshell, unless someone can prove to me that spending time &amp; money to pay project managers to manage, BA&#8217;s to analyze, programmers to write code, etc. will have real ROI, it&#8217;s not worth even thinking about it. And so many of these projects are supposed to save a half dozen clerical positions at $9/hour a whole 10 minutes per day, or compensate for their inability to follow the process (usually because the process is bad, or poorly documented/trained)&#8230; if the project took 2 months to complete with 1 full time programmer involved the whole time, a PM spending 10 hours/week on it, a BA for 20 hours and a QA person for 80 hours to test, and 20 hours of sys admin time to deploy/support (not unreasonable for a small project), that is a cost of 420 hours of &#8220;very expensive employees&#8221; (PM, BA, programmer) and 80 hours of &#8220;pricey&#8221; employee (QA), for a total cost of about (assuming $70/hour cost for &#8220;expensive&#8221; and $50/hour for &#8220;pricey&#8221;) $33,400. So, at $9/hour for those clerical employees (total cost, about $12/hour including benefits and overhead), we would need to save roughly 2,783 man-hours *just to break even*. Wow, that&#8217;s a lot of time! That is over a YEAR of employee time. Or to make it more explicit, that project would have to allow 2 clerical employees to be laid off (or reassigned) to show ROI within 6 &#8211; 9 months. All of a sudden, this project looks like a really, REALLY bad idea!</p>
<p>Yet, I see companies greenlighting this project all of the time!</p>
<p>It&#8217;s simple math, but people fail to get it. The sad truth is, IT is all too often NOT leading to &#8220;productivity gains&#8221;, but is leading to &#8220;wasted time and money&#8221;. All too often, it is CHEAPER to pay high school graduates $9/hour to do Mickey Mouse work at a reasonable level of quality than it is to engage IT. I hate to say it, but it is true. Eventually the bean counters will figure this out and a lot of IT folks will lose their jobs.</p>
<p>And of course, no one is asking the question, &#8220;if the current process is so great, why are we emulating it in software?&#8221;</p>
<p>I posit that the moment it is suggested to write software to replace manual work, that should automatically trigger a full re-evaluation of the process, determine if it is worth writing in code, and if it is, re-engineer it to be approrpiate to software, not merely replacing paper with a Web form and the filing cabinet with a SQL database.</p>
<p>J.Ja</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-366003</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Wed, 07 May 2008 03:08:12 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-366003</guid>
		<description>Hey Justin, thanks for chiming in, and welcome back.  

I really hope that you get to work with some good teams in the next year.  It doesn&#039;t have to be like that.

I will pick on one thing you said, since this is such a fun conversation.  You said &quot;what should be happening is...a complete process rewrite...&quot;

It really helped me, as a former coder, to be able to apply the opinion I expressed in comment #10 (scroll WAY up) about complete code-rewrites, to process-rewrites.  The only reason to rewrite a process is if you can make that process more effective (by increasing top-line or bottom-line revenue).  If the value of the change does not justify the cost of the change, don&#039;t do it.  You should certainly know, as an organization, what your processes are.  For an organization to &#039;know&#039; something over time, that means to create documentation.  

If your processes are not documented (at a process level, not a procedural level), then you can&#039;t really know where you will get the most benefit from re-engineering.  There is always more work to be done than can be done.  The best organizations invest their resources where they can get the greatest return.  And to do that, you have to understand your processes.  Some of them will most certainly benefit from rewrites.  But some of them won&#039;t.

Thanks again for helping keep this alive - really good stuff!</description>
		<content:encoded><![CDATA[<p>Hey Justin, thanks for chiming in, and welcome back.  </p>
<p>I really hope that you get to work with some good teams in the next year.  It doesn&#8217;t have to be like that.</p>
<p>I will pick on one thing you said, since this is such a fun conversation.  You said &#8220;what should be happening is&#8230;a complete process rewrite&#8230;&#8221;</p>
<p>It really helped me, as a former coder, to be able to apply the opinion I expressed in comment #10 (scroll WAY up) about complete code-rewrites, to process-rewrites.  The only reason to rewrite a process is if you can make that process more effective (by increasing top-line or bottom-line revenue).  If the value of the change does not justify the cost of the change, don&#8217;t do it.  You should certainly know, as an organization, what your processes are.  For an organization to &#8216;know&#8217; something over time, that means to create documentation.  </p>
<p>If your processes are not documented (at a process level, not a procedural level), then you can&#8217;t really know where you will get the most benefit from re-engineering.  There is always more work to be done than can be done.  The best organizations invest their resources where they can get the greatest return.  And to do that, you have to understand your processes.  Some of them will most certainly benefit from rewrites.  But some of them won&#8217;t.</p>
<p>Thanks again for helping keep this alive &#8211; really good stuff!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin James</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-356783</link>
		<dc:creator>Justin James</dc:creator>
		<pubDate>Fri, 25 Apr 2008 17:34:32 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-356783</guid>
		<description>This is still a great conversation, even a year later.

I&#039;ve revised a lot of my thoughts regarding Agile and Agile-like development over the last year or so. Some of it was because I discovered that much of my negative feelings stemmed (rightfully!) from people promoting project anarchy as &quot;Agile&quot;. And some of it is because of things like what Scott says right above. I&#039;ve seen more and more the sheer incompetance and mediocrity of our industry, enough so that I am blindingly sick and tired of it. It is clear that probably 90% of the people involved with requirements gathering, specification writing, etc. have no business doing these things. They don&#039;t know what to ask, or how to ask it. You have BA&#039;s asking users and managers who have never been involved with development, &quot;what do you need?&quot;, expecting the user/manager to essentially do their job for them, write it down in a way that a programmer can understand, and call it a day. The users/managers don&#039;t know how to identify their real requirements (that&#039;s the BA&#039;s job!), so they give surface level fluff like, &quot;I need a drop down menu here...&quot; And what do you get? A project spec that essentially says, &quot;replicate what we do on paper with a computer program please: replace the paper with a Web form, the filing cabinents with the RDBMS, the clerk with a search screen.&quot; Guess what folks? If the existing paper process was so great, you wouldn&#039;t be looking to dump it.

In reality, what should be happening is an identification of the goals, a complete process rewrite, and then an implementation of that process in software.

What Agile/Agile-like methods bring to the table is a means of compensating for the overall incompetance of those involved in the process, by allowing them &quot;bonus rounds&quot; or &quot;extra credit&quot; opportunities frequently to make up what they missed. The problem is, the people who stink at this so badly that they are constantly missing major requirements are the same people who turn &quot;Agile&quot; into &quot;Anarchy&quot;.

We can&#039;t win, and frankly, I have become incredibly pessimistic about this industry as a whole. We are not delivering value to our users, and for every ounce of productivity we deliver, we create an ounce of pain. Email is a great communication tool, but it is used to swamp people, for an overall loss of productivity. Applciation replace paper, but don&#039;t figure out how to handle &quot;edge cases&quot; that on paper can be easily solved by writing a note in the margin and crossing out a few items on the form. And so on and so on.

Sigh.

J.Ja</description>
		<content:encoded><![CDATA[<p>This is still a great conversation, even a year later.</p>
<p>I&#8217;ve revised a lot of my thoughts regarding Agile and Agile-like development over the last year or so. Some of it was because I discovered that much of my negative feelings stemmed (rightfully!) from people promoting project anarchy as &#8220;Agile&#8221;. And some of it is because of things like what Scott says right above. I&#8217;ve seen more and more the sheer incompetance and mediocrity of our industry, enough so that I am blindingly sick and tired of it. It is clear that probably 90% of the people involved with requirements gathering, specification writing, etc. have no business doing these things. They don&#8217;t know what to ask, or how to ask it. You have BA&#8217;s asking users and managers who have never been involved with development, &#8220;what do you need?&#8221;, expecting the user/manager to essentially do their job for them, write it down in a way that a programmer can understand, and call it a day. The users/managers don&#8217;t know how to identify their real requirements (that&#8217;s the BA&#8217;s job!), so they give surface level fluff like, &#8220;I need a drop down menu here&#8230;&#8221; And what do you get? A project spec that essentially says, &#8220;replicate what we do on paper with a computer program please: replace the paper with a Web form, the filing cabinents with the RDBMS, the clerk with a search screen.&#8221; Guess what folks? If the existing paper process was so great, you wouldn&#8217;t be looking to dump it.</p>
<p>In reality, what should be happening is an identification of the goals, a complete process rewrite, and then an implementation of that process in software.</p>
<p>What Agile/Agile-like methods bring to the table is a means of compensating for the overall incompetance of those involved in the process, by allowing them &#8220;bonus rounds&#8221; or &#8220;extra credit&#8221; opportunities frequently to make up what they missed. The problem is, the people who stink at this so badly that they are constantly missing major requirements are the same people who turn &#8220;Agile&#8221; into &#8220;Anarchy&#8221;.</p>
<p>We can&#8217;t win, and frankly, I have become incredibly pessimistic about this industry as a whole. We are not delivering value to our users, and for every ounce of productivity we deliver, we create an ounce of pain. Email is a great communication tool, but it is used to swamp people, for an overall loss of productivity. Applciation replace paper, but don&#8217;t figure out how to handle &#8220;edge cases&#8221; that on paper can be easily solved by writing a note in the margin and crossing out a few items on the form. And so on and so on.</p>
<p>Sigh.</p>
<p>J.Ja</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-353130</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Tue, 22 Apr 2008 13:23:08 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-353130</guid>
		<description>Hey Dave, thanks for joining in on the thread (even if it is a year later :)).  It proves out (to me) that the flashback posts are worthwhile, and that many of our articles are still relevant a year or two later.  Also, of course, thanks for being a long time participant here - your contributions always make the discussions better.  You should set up a &lt;a href=&quot;http://tynerblain.com/blog/how-to-create-your-gravatar/&quot; rel=&quot;nofollow&quot;&gt;gravatar&lt;/a&gt;, because it will make your contributions stand out even more.

OK, as to &quot;undiscovered requirements&quot; - yes, I&#039;m driving a hard line about them being undiscovered &lt;i&gt;by the team doing the work&lt;/i&gt;, not necessarily that they are &lt;i&gt;undiscoverable&lt;/i&gt; by anyone.

Sure, the security example may have been discovered but forgotten (I put that in possible-failure-mode #2 from the article).  But if it were not discovered, that does not mean it does not exist.  Nor does it mean that the team should be absolved of it.

One of the challenges that companies face when outsourcing product development is that the third-party may not understand their domain.  The Hyatt example is especially egregious, but it could be something more arcane (and just as critical).  

Wordpress software (at least as of a year ago) was not hardened against SQL injection attacks.  I know - my blog was successfully compromised, and I had to update to the current version, replace all of the source code (and customizations), backup and process the database, and do a lot of due dilligance to block the exploit in the future and assure that the damage had been repaired.  Wordpress has been around for a long time, has extreme market penetration, and has many people scouring the freely available source code.  SQL injection attacks have been around a long time too.  I expected (a year ago) that Wordpress was hardened against them.  But it wasn&#039;t.

Just because that team had apparently not discovered that requirement, it did not absolve them of the responsibility.  A better team would have found it.

In a particular domain, there will be other examples that are just as obvious within the domain.

&lt;ul&gt;
&lt;li&gt;Of course an insurance agent can be licensed in multiple states&lt;/li&gt;
&lt;li&gt;Of course the UPS must provide enough power to run the equipment&lt;/li&gt;
&lt;li&gt;Of course the signup form must support visually impaired users&lt;/li&gt;
&lt;/ul&gt;

You can make a compassionate argument, with respect to any particular team, that &lt;i&gt;that&lt;/i&gt; team would not be able to discover requirement X.  I contend that if X is required, you have staffed the project incorrectly.  The blame may not lie with the team member, but it doesn&#039;t just evaporate.

A process, such as agile, that incorporates frequent feedback cycles, will present opportunities to uncover otherwise undiscovered requirements.  

A process, such as agile, that encourages the team to respond to these &quot;after the train has left the station&quot; requirements is better than a process that requires them to languish because they were discovered &quot;too late.&quot;</description>
		<content:encoded><![CDATA[<p>Hey Dave, thanks for joining in on the thread (even if it is a year later :)).  It proves out (to me) that the flashback posts are worthwhile, and that many of our articles are still relevant a year or two later.  Also, of course, thanks for being a long time participant here &#8211; your contributions always make the discussions better.  You should set up a <a href="http://tynerblain.com/blog/how-to-create-your-gravatar/" rel="nofollow">gravatar</a>, because it will make your contributions stand out even more.</p>
<p>OK, as to &#8220;undiscovered requirements&#8221; &#8211; yes, I&#8217;m driving a hard line about them being undiscovered <i>by the team doing the work</i>, not necessarily that they are <i>undiscoverable</i> by anyone.</p>
<p>Sure, the security example may have been discovered but forgotten (I put that in possible-failure-mode #2 from the article).  But if it were not discovered, that does not mean it does not exist.  Nor does it mean that the team should be absolved of it.</p>
<p>One of the challenges that companies face when outsourcing product development is that the third-party may not understand their domain.  The Hyatt example is especially egregious, but it could be something more arcane (and just as critical).  </p>
<p>Wordpress software (at least as of a year ago) was not hardened against SQL injection attacks.  I know &#8211; my blog was successfully compromised, and I had to update to the current version, replace all of the source code (and customizations), backup and process the database, and do a lot of due dilligance to block the exploit in the future and assure that the damage had been repaired.  WordPress has been around for a long time, has extreme market penetration, and has many people scouring the freely available source code.  SQL injection attacks have been around a long time too.  I expected (a year ago) that WordPress was hardened against them.  But it wasn&#8217;t.</p>
<p>Just because that team had apparently not discovered that requirement, it did not absolve them of the responsibility.  A better team would have found it.</p>
<p>In a particular domain, there will be other examples that are just as obvious within the domain.</p>
<ul>
<li>Of course an insurance agent can be licensed in multiple states</li>
<li>Of course the UPS must provide enough power to run the equipment</li>
<li>Of course the signup form must support visually impaired users</li>
</ul>
<p>You can make a compassionate argument, with respect to any particular team, that <i>that</i> team would not be able to discover requirement X.  I contend that if X is required, you have staffed the project incorrectly.  The blame may not lie with the team member, but it doesn&#8217;t just evaporate.</p>
<p>A process, such as agile, that incorporates frequent feedback cycles, will present opportunities to uncover otherwise undiscovered requirements.  </p>
<p>A process, such as agile, that encourages the team to respond to these &#8220;after the train has left the station&#8221; requirements is better than a process that requires them to languish because they were discovered &#8220;too late.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Wright</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-352477</link>
		<dc:creator>David Wright</dc:creator>
		<pubDate>Tue, 22 Apr 2008 04:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-352477</guid>
		<description>I know I am late into this discussion, and have not read everything, but I want to get right back to the beginning and quote this statement:

&quot;...failure to implement an undiscovered / undocumented must-be requirement still qualifies as incompleteness.&quot;

Well, I guess this can&#039;t be realized until after the fact, so you can be complete...then, oops, you are incomplete. Is the whole insecure Hyatt thing what you are referring to with this statement? I mean, securing a customer&#039;s credit card can&#039;t be considered an undiscovered requirement at this point, I would call it a forgotten one. An undiscovered requirement has to be something no one has thought of before within the domain, and if no one has thought of it yet, YOU CAN&#039;T IMPLEMENT IT. ...sorry, its late, but when I read the above statement the first time, I thought my head would explode, better to type in CAPS for a bit to let off the pressure.

OK, the Nyquil is kicking in, will check back tomorrow... Dave W</description>
		<content:encoded><![CDATA[<p>I know I am late into this discussion, and have not read everything, but I want to get right back to the beginning and quote this statement:</p>
<p>&#8220;&#8230;failure to implement an undiscovered / undocumented must-be requirement still qualifies as incompleteness.&#8221;</p>
<p>Well, I guess this can&#8217;t be realized until after the fact, so you can be complete&#8230;then, oops, you are incomplete. Is the whole insecure Hyatt thing what you are referring to with this statement? I mean, securing a customer&#8217;s credit card can&#8217;t be considered an undiscovered requirement at this point, I would call it a forgotten one. An undiscovered requirement has to be something no one has thought of before within the domain, and if no one has thought of it yet, YOU CAN&#8217;T IMPLEMENT IT. &#8230;sorry, its late, but when I read the above statement the first time, I thought my head would explode, better to type in CAPS for a bit to let off the pressure.</p>
<p>OK, the Nyquil is kicking in, will check back tomorrow&#8230; Dave W</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Productologist » Fighting, er, Working with Engineering</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-253819</link>
		<dc:creator>The Productologist » Fighting, er, Working with Engineering</dc:creator>
		<pubDate>Sun, 06 Jan 2008 00:25:41 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-253819</guid>
		<description>[...] There&#8217;s an interesting thread going on across several blogs about the Agile development method (Agile, here and across other posts, is being used as a catch-all for many rapid release methodologies) and the role of Product Management. I have posted an article and made comments on several of these blogs, but this post isn&#8217;t about that. It&#8217;s about the relationship between Product Management and Engineering. [...]</description>
		<content:encoded><![CDATA[<p>[...] There&#8217;s an interesting thread going on across several blogs about the Agile development method (Agile, here and across other posts, is being used as a catch-all for many rapid release methodologies) and the role of Product Management. I have posted an article and made comments on several of these blogs, but this post isn&#8217;t about that. It&#8217;s about the relationship between Product Management and Engineering. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-89771</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Mon, 23 Apr 2007 00:05:50 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-89771</guid>
		<description>MSM - very cool, had not heard of PatientKeeper.

Another thought I&#039;ll throw out there - &quot;100% responsive&quot; does not equate to &quot;do 100% of the things they ask you to do.&quot;

In the open agile project we&#039;re running here, we&#039;re being responsive to every customer who shares their inputs.  We may not do everything they ask, but we will respond to, and incorporate all of their inputs in our decision making.</description>
		<content:encoded><![CDATA[<p>MSM &#8211; very cool, had not heard of PatientKeeper.</p>
<p>Another thought I&#8217;ll throw out there &#8211; &#8220;100% responsive&#8221; does not equate to &#8220;do 100% of the things they ask you to do.&#8221;</p>
<p>In the open agile project we&#8217;re running here, we&#8217;re being responsive to every customer who shares their inputs.  We may not do everything they ask, but we will respond to, and incorporate all of their inputs in our decision making.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MSM</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-89700</link>
		<dc:creator>MSM</dc:creator>
		<pubDate>Sun, 22 Apr 2007 17:25:50 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-89700</guid>
		<description>&gt;Go ahead, try being 100% responsive to your first and only customer, and you end up with a product that only they will use.

I&#039;m pretty certain that&#039;s a consequence of Conway&#039;s Law and not necessarily of Agile adoption.

By the way, one of the progenitors of Scrum, Jeff Sutherland, runs one of the most proficient Agile development teams in the world at PatientKeeper, which is mission-critical decision support software for physicians and nurses. Contradicts assertion #1.</description>
		<content:encoded><![CDATA[<p>&gt;Go ahead, try being 100% responsive to your first and only customer, and you end up with a product that only they will use.</p>
<p>I&#8217;m pretty certain that&#8217;s a consequence of Conway&#8217;s Law and not necessarily of Agile adoption.</p>
<p>By the way, one of the progenitors of Scrum, Jeff Sutherland, runs one of the most proficient Agile development teams in the world at PatientKeeper, which is mission-critical decision support software for physicians and nurses. Contradicts assertion #1.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin James</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-89229</link>
		<dc:creator>Justin James</dc:creator>
		<pubDate>Sat, 21 Apr 2007 05:37:45 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-89229</guid>
		<description>Sorry for the late follow up here, it has been a heck of a week...

On the maturity of the organization, I think it is less about the maturity and more about the commitment. Start ups tend to have a lack of focus in the drive to get something *anything* out the door before their opportunity passes. Established companies have just enough legacy code and habits to be a challenge, but are still short on time. Mature companies are set in their ways. Each situation is different, but regardless of how it is approached, the whole team needs to be commited to &quot;Agile&quot;, and know how to do it right, to make it happen.

On the topic of #4, the &quot;Cranky PM&quot; post is 100% right. &quot;Agile&quot; only works when the product is for only one customer! Go ahead, try being 100% responsive to your first and only customer, and you end up with a product that only they will use. Here is an example. Let&#039;s say that you are working on a &quot;just in time&quot; parts ordering system. Your first customer is General Electric. So you are totally responsive to them, and build exactly what they want. Do you think that Toyota or IBM or anyone else for that matter will want it the &quot;GE Way&quot;? Nope! Instead, you *properly architect your code* (bye bye &quot;fast release cycle&quot;!) and make it so that customizations can occur at implementation time, via database, config file, etc. You need a rather monolithic code base to do that, because you are abstracting so much of the code.

I agree that a poor team will blow up a waterfall project, but the explosion is so much more contained. When your first milestone is missed, you know something is rotten in Denmark. With &quot;Agile&quot;, you wake up one day and find out that some rogue programmer has been taking direct calls from the customer, and cowboyed his way into a real mess. With waterfall, there is just as much testing, it just occurs at a more &quot;built&quot; state. Indeed, I could argue that waterfall is *more* efficient, since you are not retesting the code every twenty seconds. After a certain point, the tests take much longer than the code changes. Therefore, it is much slower to run them constantly than during set points.

Finally, let&#039;s get honest with ourselves. *No one*, not even the biggest &quot;Agile&quot; proponents, will use &quot;Agile&quot; for an air traffic control system or something equivalent. If &quot;Agile&quot; can&#039;t handle a &quot;life and death&quot; project, why would you trust it for &quot;mission critical&quot; applications? At that point, what do you have? Something good for free consumer Web sites and that is it? On the other hand, the Java license states that it is not suitable for air traffic control systems, nuclear power plants, etc...

So I really am going to stick to my &quot;softened stance&quot;. &quot;Agile&quot; can be useful, but only in a very specialize role. To me, it is like a C-Section, one way of getting the baby out, but most doctors do not recommend doing it without a good medical reason. If you have a valid business reason, like a single customer for your product who requires constant evolution of the product, or who is willing to accept the &quot;initial release&quot; provided that their &quot;wish list&quot; gets built quickly, go for it. If you are building mass market software that requires reliability and is complex enough for users to have to be trained in it, &quot;Agile&quot; is simply the wrong tool.

J.Ja</description>
		<content:encoded><![CDATA[<p>Sorry for the late follow up here, it has been a heck of a week&#8230;</p>
<p>On the maturity of the organization, I think it is less about the maturity and more about the commitment. Start ups tend to have a lack of focus in the drive to get something *anything* out the door before their opportunity passes. Established companies have just enough legacy code and habits to be a challenge, but are still short on time. Mature companies are set in their ways. Each situation is different, but regardless of how it is approached, the whole team needs to be commited to &#8220;Agile&#8221;, and know how to do it right, to make it happen.</p>
<p>On the topic of #4, the &#8220;Cranky PM&#8221; post is 100% right. &#8220;Agile&#8221; only works when the product is for only one customer! Go ahead, try being 100% responsive to your first and only customer, and you end up with a product that only they will use. Here is an example. Let&#8217;s say that you are working on a &#8220;just in time&#8221; parts ordering system. Your first customer is General Electric. So you are totally responsive to them, and build exactly what they want. Do you think that Toyota or IBM or anyone else for that matter will want it the &#8220;GE Way&#8221;? Nope! Instead, you *properly architect your code* (bye bye &#8220;fast release cycle&#8221;!) and make it so that customizations can occur at implementation time, via database, config file, etc. You need a rather monolithic code base to do that, because you are abstracting so much of the code.</p>
<p>I agree that a poor team will blow up a waterfall project, but the explosion is so much more contained. When your first milestone is missed, you know something is rotten in Denmark. With &#8220;Agile&#8221;, you wake up one day and find out that some rogue programmer has been taking direct calls from the customer, and cowboyed his way into a real mess. With waterfall, there is just as much testing, it just occurs at a more &#8220;built&#8221; state. Indeed, I could argue that waterfall is *more* efficient, since you are not retesting the code every twenty seconds. After a certain point, the tests take much longer than the code changes. Therefore, it is much slower to run them constantly than during set points.</p>
<p>Finally, let&#8217;s get honest with ourselves. *No one*, not even the biggest &#8220;Agile&#8221; proponents, will use &#8220;Agile&#8221; for an air traffic control system or something equivalent. If &#8220;Agile&#8221; can&#8217;t handle a &#8220;life and death&#8221; project, why would you trust it for &#8220;mission critical&#8221; applications? At that point, what do you have? Something good for free consumer Web sites and that is it? On the other hand, the Java license states that it is not suitable for air traffic control systems, nuclear power plants, etc&#8230;</p>
<p>So I really am going to stick to my &#8220;softened stance&#8221;. &#8220;Agile&#8221; can be useful, but only in a very specialize role. To me, it is like a C-Section, one way of getting the baby out, but most doctors do not recommend doing it without a good medical reason. If you have a valid business reason, like a single customer for your product who requires constant evolution of the product, or who is willing to accept the &#8220;initial release&#8221; provided that their &#8220;wish list&#8221; gets built quickly, go for it. If you are building mass market software that requires reliability and is complex enough for users to have to be trained in it, &#8220;Agile&#8221; is simply the wrong tool.</p>
<p>J.Ja</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-89117</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Fri, 20 Apr 2007 17:33:56 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-89117</guid>
		<description>Kelly - completely agree, and thanks for commenting!

AVA - I think you make great points, and you&#039;re right - the details definitely vary with type of project.  They also vary with skill of the team, nature of the office politics, etc.

When the cost of a deployment outweighs the benefit of an incremental deployment - and your example is a great one - you definitely shouldn&#039;t do it.  However, if you believe there is a benefit (ignoring costs for a second) to accelerating your release cycle, I would suggest that you 
1) quantify that benefit somewhow
2) determine how much you would have to reduce deployment costs to make it a good business decision, and
3) figure out how much it would cost you to make those changes.  If there&#039;s enough ROI, you should do it.

You can look at ways to automate some of the testing (for example permutations of dev environment via virtualization) that might work for you.  You can explore the possibility of making physical media distribution optional (and/or for a fee) with website downloads available more frequently.  You can take a page from the agile folks, and offer &quot;latest stable&quot; + &quot;latest tip&quot;, so that people who WANT to risk it all on the bleeding edge can try, and people who don&#039;t want to will stay away.  My intuition is that these things would help with any market, but ultimately it is your call.</description>
		<content:encoded><![CDATA[<p>Kelly &#8211; completely agree, and thanks for commenting!</p>
<p>AVA &#8211; I think you make great points, and you&#8217;re right &#8211; the details definitely vary with type of project.  They also vary with skill of the team, nature of the office politics, etc.</p>
<p>When the cost of a deployment outweighs the benefit of an incremental deployment &#8211; and your example is a great one &#8211; you definitely shouldn&#8217;t do it.  However, if you believe there is a benefit (ignoring costs for a second) to accelerating your release cycle, I would suggest that you<br />
1) quantify that benefit somewhow<br />
2) determine how much you would have to reduce deployment costs to make it a good business decision, and<br />
3) figure out how much it would cost you to make those changes.  If there&#8217;s enough ROI, you should do it.</p>
<p>You can look at ways to automate some of the testing (for example permutations of dev environment via virtualization) that might work for you.  You can explore the possibility of making physical media distribution optional (and/or for a fee) with website downloads available more frequently.  You can take a page from the agile folks, and offer &#8220;latest stable&#8221; + &#8220;latest tip&#8221;, so that people who WANT to risk it all on the bleeding edge can try, and people who don&#8217;t want to will stay away.  My intuition is that these things would help with any market, but ultimately it is your call.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-89116</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Fri, 20 Apr 2007 17:27:35 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-89116</guid>
		<description>Hey - go check out this article and discussion thread at the Cranky PM!

http://www.crankypm.com/2007/04/so_you_think_ag.html

The source article has created another discussion that &quot;went a different way.&quot;

What a great read - I love her stuff!</description>
		<content:encoded><![CDATA[<p>Hey &#8211; go check out this article and discussion thread at the Cranky PM!</p>
<p><a href="http://www.crankypm.com/2007/04/so_you_think_ag.html" rel="nofollow">http://www.crankypm.com/2007/04/so_you_think_ag.html</a></p>
<p>The source article has created another discussion that &#8220;went a different way.&#8221;</p>
<p>What a great read &#8211; I love her stuff!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ~AVA</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-89020</link>
		<dc:creator>~AVA</dc:creator>
		<pubDate>Fri, 20 Apr 2007 06:56:30 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-89020</guid>
		<description>The meaning of the sentence &quot;Short Release Cycles are Bad&quot; depends on what is the definition of &quot;short&quot;, &quot;release&quot;, and &quot;bad&quot;. Those definitions are different for hardware driver, e-mail client, web site, and enterprise documentation management system. Different people have their own different definitions even for the same product. 
To make the discussion about short releases useful, you need first make an explicit definition of terms, and then speak only in those terms. 
For example, for the device driver the &quot;release&quot; means making the executable part, the help system, the user manual in printed and downloadable form, the installation package, and the supporting web site. Each of those components must be tested for functionality, usability, compatibility, and many other &quot;abilities&quot;. Then you make the distributive CD and integrate driver documentation with device documentation. The essential attribute of the release is documented acceptance testing of the distribution package on customer&#039;s side.
For this kind of product &quot;short&quot; releases ( 6 months or less ) inevitable should have small amount of changed functions ( 10% or less ), to provide acceptable quality level for the given cost of development. 
In this context short releases are &quot;bad&quot; ( inappropriate for both manufacturer and user ), because: 
- From manufacturer point of view, the usefullness of the small change does not justify the cost of development. 
- From user point of view, the usefullness of the small change does not justify the risk of product replacement. 
The discussion of the example makes sense only when all participants agree to use definitions introduced in that example. If participants introduce their own definitions, this will be another, different example. From this perspective, consecutive comments of Tim Weaver, Aaron Korver, Scott Sehlhorst, and Roger L. Cauvin (April 17-18) do not look like a discussion (for me), because basic definitions in those comments are implicit, and readers may assume other meaning of terms than authors. 
It would be great to have side-by side comparison of various products: what is release, what is short, what is bad, which development processes are most suitable.</description>
		<content:encoded><![CDATA[<p>The meaning of the sentence &#8220;Short Release Cycles are Bad&#8221; depends on what is the definition of &#8220;short&#8221;, &#8220;release&#8221;, and &#8220;bad&#8221;. Those definitions are different for hardware driver, e-mail client, web site, and enterprise documentation management system. Different people have their own different definitions even for the same product.<br />
To make the discussion about short releases useful, you need first make an explicit definition of terms, and then speak only in those terms.<br />
For example, for the device driver the &#8220;release&#8221; means making the executable part, the help system, the user manual in printed and downloadable form, the installation package, and the supporting web site. Each of those components must be tested for functionality, usability, compatibility, and many other &#8220;abilities&#8221;. Then you make the distributive CD and integrate driver documentation with device documentation. The essential attribute of the release is documented acceptance testing of the distribution package on customer&#8217;s side.<br />
For this kind of product &#8220;short&#8221; releases ( 6 months or less ) inevitable should have small amount of changed functions ( 10% or less ), to provide acceptable quality level for the given cost of development.<br />
In this context short releases are &#8220;bad&#8221; ( inappropriate for both manufacturer and user ), because:<br />
- From manufacturer point of view, the usefullness of the small change does not justify the cost of development.<br />
- From user point of view, the usefullness of the small change does not justify the risk of product replacement.<br />
The discussion of the example makes sense only when all participants agree to use definitions introduced in that example. If participants introduce their own definitions, this will be another, different example. From this perspective, consecutive comments of Tim Weaver, Aaron Korver, Scott Sehlhorst, and Roger L. Cauvin (April 17-18) do not look like a discussion (for me), because basic definitions in those comments are implicit, and readers may assume other meaning of terms than authors.<br />
It would be great to have side-by side comparison of various products: what is release, what is short, what is bad, which development processes are most suitable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kelly Waters</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-88948</link>
		<dc:creator>Kelly Waters</dc:creator>
		<pubDate>Thu, 19 Apr 2007 21:03:07 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-88948</guid>
		<description>Great discussion!  Personally I think you can do business-critical projects using an agile development approach.  As long as you are clear about delivering must-have requirements, and you must give the right emphasis to testing and quality to reflect the nature of the application, in whatever methodology you choose.  Must admit I would think twice for air traffic control system though :-)

Kelly Waters
http://www.allaboutagile.com &#124; Blog all about agile</description>
		<content:encoded><![CDATA[<p>Great discussion!  Personally I think you can do business-critical projects using an agile development approach.  As long as you are clear about delivering must-have requirements, and you must give the right emphasis to testing and quality to reflect the nature of the application, in whatever methodology you choose.  Must admit I would think twice for air traffic control system though :-)</p>
<p>Kelly Waters<br />
<a href="http://www.allaboutagile.com" rel="nofollow">http://www.allaboutagile.com</a> | Blog all about agile</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-88919</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 19 Apr 2007 16:41:40 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-88919</guid>
		<description>On #4 - 

Product managers HAVE to focus on multiple customers.  Companies, especially young ones, as Ivan points out, HAVE to focus on key customers.

My wife used to work as a mediator, and she used to say &quot;if both sides are unhappy, you know you&#039;ve reached a reasonable compromise.&quot;

Don&#039;t know that I can top that!</description>
		<content:encoded><![CDATA[<p>On #4 &#8211; </p>
<p>Product managers HAVE to focus on multiple customers.  Companies, especially young ones, as Ivan points out, HAVE to focus on key customers.</p>
<p>My wife used to work as a mediator, and she used to say &#8220;if both sides are unhappy, you know you&#8217;ve reached a reasonable compromise.&#8221;</p>
<p>Don&#8217;t know that I can top that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-88917</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 19 Apr 2007 16:39:40 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-88917</guid>
		<description>On Justin&#039;s #3:

Code entanglement.  When I was still doing coding/consulting, I was airlifted  over and parachuted into some spaghetti code nightmares that would blow your mind.  And usually with a complete lack of testing automation.

There are three ways to fix that problem.

1) Rewrite the whole thing but do it right this time.  Almost never a good business decision, as much as it appeals to technologists.

2) Change the way you write code starting right now.  All new code requires tests, and should be as well designed as reasonable.  Over time, you&#039;ll be able to gain confidence that &quot;at least you didn&#039;t break the new stuff.&quot;  And that will gradually afford you the opportunity to start refactoring the spaghetti a strand at a time.  It may take a year, but there&#039;s no incremental cost (In my anecdotal experience, the breakeven was 3 months, including the time spent creating a testing framework and training the team to use it - AND including the extra time it initially took per work item to write tests.  Within a month, there was enough time/cost savings to &quot;pay for testing by the developers.&quot;)

3) Sell the company and change your cell phone number.</description>
		<content:encoded><![CDATA[<p>On Justin&#8217;s #3:</p>
<p>Code entanglement.  When I was still doing coding/consulting, I was airlifted  over and parachuted into some spaghetti code nightmares that would blow your mind.  And usually with a complete lack of testing automation.</p>
<p>There are three ways to fix that problem.</p>
<p>1) Rewrite the whole thing but do it right this time.  Almost never a good business decision, as much as it appeals to technologists.</p>
<p>2) Change the way you write code starting right now.  All new code requires tests, and should be as well designed as reasonable.  Over time, you&#8217;ll be able to gain confidence that &#8220;at least you didn&#8217;t break the new stuff.&#8221;  And that will gradually afford you the opportunity to start refactoring the spaghetti a strand at a time.  It may take a year, but there&#8217;s no incremental cost (In my anecdotal experience, the breakeven was 3 months, including the time spent creating a testing framework and training the team to use it &#8211; AND including the extra time it initially took per work item to write tests.  Within a month, there was enough time/cost savings to &#8220;pay for testing by the developers.&#8221;)</p>
<p>3) Sell the company and change your cell phone number.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-88916</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 19 Apr 2007 16:33:26 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-88916</guid>
		<description>This is an awesome discussion!  I don&#039;t know that I can even keep going on all of the topics.  I&#039;ll pick Justin&#039;s #2:

Team capability matters.  Justin makes a great point that rapid-release cycles will crater with an unskilled team.  So will waterfall processes.  The difference is that you spend a lot more time and money with a waterfall process before you discover how bad of a job the team did.  If you let the developers release the code &quot;into the wild&quot; without some form of validation and testing, then yes - agile is a death sentance with the wrong team.  Again - at least you&#039;ll find out earlier.</description>
		<content:encoded><![CDATA[<p>This is an awesome discussion!  I don&#8217;t know that I can even keep going on all of the topics.  I&#8217;ll pick Justin&#8217;s #2:</p>
<p>Team capability matters.  Justin makes a great point that rapid-release cycles will crater with an unskilled team.  So will waterfall processes.  The difference is that you spend a lot more time and money with a waterfall process before you discover how bad of a job the team did.  If you let the developers release the code &#8220;into the wild&#8221; without some form of validation and testing, then yes &#8211; agile is a death sentance with the wrong team.  Again &#8211; at least you&#8217;ll find out earlier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivan Chalif</title>
		<link>http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/comment-page-1/#comment-88846</link>
		<dc:creator>Ivan Chalif</dc:creator>
		<pubDate>Thu, 19 Apr 2007 04:23:00 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/#comment-88846</guid>
		<description>@Scott S.
A provocative discussion indeed, especially since it referenced me in the first sentence :-)

@Justin J.
Items 2, 3, and 5 on your list seem like very high hurdles to get over in order to justify using Agile. What are your thoughts on the maturity of the organization (early stage startup vs. established company vs. big, honkin&#039; enterprise) affecting the successful use of Agile? 

Item 4 is a tough nut, too, especially for young organizations that HAVE to be responsive to prospects and customers in order to keep the product/company going. I have been in situations where I have been expressly told by the executive staff to do whatever it takes to close whatever the next big deal is. Not a great way to manage a product, but it sometimes has to be that way in order to continue to have a job as a PM (at least at that company).</description>
		<content:encoded><![CDATA[<p>@Scott S.<br />
A provocative discussion indeed, especially since it referenced me in the first sentence :-)</p>
<p>@Justin J.<br />
Items 2, 3, and 5 on your list seem like very high hurdles to get over in order to justify using Agile. What are your thoughts on the maturity of the organization (early stage startup vs. established company vs. big, honkin&#8217; enterprise) affecting the successful use of Agile? </p>
<p>Item 4 is a tough nut, too, especially for young organizations that HAVE to be responsive to prospects and customers in order to keep the product/company going. I have been in situations where I have been expressly told by the executive staff to do whatever it takes to close whatever the next big deal is. Not a great way to manage a product, but it sometimes has to be that way in order to continue to have a job as a PM (at least at that company).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

