<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Yourdon Report &#187; software testing</title>
	<atom:link href="http://www.yourdonreport.com/index.php/category/software-testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yourdonreport.com</link>
	<description>Blogging the impact of computer-related technology trends, and whatever else catches my interest.</description>
	<lastBuildDate>Sun, 16 Oct 2011 00:56:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Extreme Project Management in Rome</title>
		<link>http://www.yourdonreport.com/index.php/2011/10/15/extreme-project-management-in-rome/</link>
		<comments>http://www.yourdonreport.com/index.php/2011/10/15/extreme-project-management-in-rome/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 00:52:31 +0000</pubDate>
		<dc:creator>ed</dc:creator>
				<category><![CDATA[Dreaming in Code]]></category>
		<category><![CDATA[Good-enough software]]></category>
		<category><![CDATA[IT project confessional]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[System Requirements]]></category>
		<category><![CDATA[Tom DeMarco]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[death march]]></category>
		<category><![CDATA[project confessional]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.yourdonreport.com/index.php/2011/10/15/extreme-project-management-in-rome/</guid>
		<description><![CDATA[I spent most of last week in Rome, presenting a three-day seminar on &#8220;Extreme Project Management&#8221; for Technology Transfer Institute. If you were stuck in some other part of the world, or if you couldn&#8217;t persuade your boss to send you to Rome, you can click here to view and download the 7MB) PDF version of the [...]]]></description>
			<content:encoded><![CDATA[<p>I spent most of last week in Rome, presenting a three-day seminar on &#8220;Extreme Project Management&#8221; for <a href="http://www.technologytransfer.eu/" target="_blank">Technology Transfer Institute</a>. If you were stuck in some other part of the world, or if you couldn&#8217;t persuade your boss to send you to Rome, you can <a href="http://www.slideshare.net/yourdon/extreme-project-management-9716943" target="_blank">click here</a> to view and download the 7MB) PDF version of the presentation on SlideShare.Net, which has a whole  bunch of embedded links to other presentations, publications, books, articles, websites, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2011/10/15/extreme-project-management-in-rome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top Ten Software Engineering Concepts, v10</title>
		<link>http://www.yourdonreport.com/index.php/2008/11/13/top-ten-software-engineering-concepts-v10/</link>
		<comments>http://www.yourdonreport.com/index.php/2008/11/13/top-ten-software-engineering-concepts-v10/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 11:31:03 +0000</pubDate>
		<dc:creator>ed</dc:creator>
				<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[Dreaming in Code]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Good-enough software]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[Structured Stuff]]></category>
		<category><![CDATA[System Requirements]]></category>
		<category><![CDATA[Technology Forecasting]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Yourdon]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[death march]]></category>
		<category><![CDATA[software metrics]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.yourdonreport.com/index.php/2008/11/13/top-ten-software-engineering-concepts-v10/</guid>
		<description><![CDATA[I&#8217;m giving a presentation on &#8220;Top 10 Software Engineering Concepts&#8221; at a CompAid &#8220;Software Best Practices&#8221; conference in Chicago on November 13th. I hope you&#8217;ll be there in person to hear all the nuances; but if you&#8217;re stuck in some other part of the world, you&#8217;re welcome to download the (10 megabyte) PDF version of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m giving a presentation on &#8220;Top 10 Software Engineering Concepts&#8221; at a <a href="http://www.compaid.com/" target="_blank">CompAid</a> &#8220;<a href="http://www.itmpi.org/events/" target="_blank">Software Best Practices</a>&#8221; conference in Chicago on November 13th. I hope you&#8217;ll be there in person to hear all the nuances; but if you&#8217;re stuck in some other part of the world, you&#8217;re welcome to download the (10 megabyte) PDF version of the presentation, which has a whole bunch of embedded links to other presentations, publications, books, articles, Websites, etc.
<p style="text-align: center"><span class="Apple-style-span" style="color: #0000ee; text-decoration: underline"><a href="http://www.yourdon.com/downloads/TopTenSEconceptsV10a.pdf" target="_blank"><img src="http://www.yourdonreport.com/wp-content/uploads/2008/11/toptenv10.png" width="400" height="300" align="middle" /></a></span></p>
<p style="text-align: left"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2008/11/13/top-ten-software-engineering-concepts-v10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;Death March&#8221; at Parsons New School for Design</title>
		<link>http://www.yourdonreport.com/index.php/2008/10/30/death-march-at-parsons-new-school-for-design/</link>
		<comments>http://www.yourdonreport.com/index.php/2008/10/30/death-march-at-parsons-new-school-for-design/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 21:48:11 +0000</pubDate>
		<dc:creator>ed</dc:creator>
				<category><![CDATA[Dreaming in Code]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Good-enough software]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Tom DeMarco]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Yourdon]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[death march]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.yourdonreport.com/index.php/2008/10/30/death-march-at-parsons-new-school-for-design/</guid>
		<description><![CDATA[I&#8217;m giving a 2-hour presentation on &#8220;Death March&#8221; projects at the Parsons New School for Design in New York City tomorrow (October 31st). I took a version of the presentation that I gave in Russia last month, made a few modifications, and then told Apple&#8217;s Keynote program to skip roughly half of the slides. But I&#8217;ve uploaded [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m giving a 2-hour presentation on &#8220;Death March&#8221; projects at the <a href="http://www.parsons.newschool.edu/">Parsons New School for Design</a> in New York City tomorrow (October 31st). I took a version of the presentation that I gave in Russia last month, made a few modifications, and then told Apple&#8217;s Keynote program to skip roughly half of the slides. But I&#8217;ve uploaded a PDF version of the entire presentation, which has a little over 100 pages of material. You can download it by clicking on the icon below; it&#8217;s a 2-megabyte file.
<p style="text-align: center"> <a href="http://www.yourdon.com/downloads/ParsonsDeathMarch.pdf"><img src="http://www.yourdonreport.com/wp-content/uploads/2008/10/parsons.png" width="320" height="240" align="middle" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2008/10/30/death-march-at-parsons-new-school-for-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Jersey Software Process Symposium</title>
		<link>http://www.yourdonreport.com/index.php/2008/10/13/new-jersey-software-process-symposium/</link>
		<comments>http://www.yourdonreport.com/index.php/2008/10/13/new-jersey-software-process-symposium/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 00:25:16 +0000</pubDate>
		<dc:creator>ed</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[Future trends]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Good-enough software]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Micro-blogging]]></category>
		<category><![CDATA[Outsourcing]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Social Networks]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Structured Stuff]]></category>
		<category><![CDATA[System Requirements]]></category>
		<category><![CDATA[Technology Forecasting]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[Yourdon]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[death march]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.yourdonreport.com/index.php/2008/10/13/new-jersey-software-process-symposium/</guid>
		<description><![CDATA[I&#8217;m giving a keynote address at the New Jersey Software Process Symposium on October 14th &#8230; somewhere in the wilderness of New Jersey. (All I know is that I&#8217;ve checked in at the New Brunswick Hyatt Regency hotel on the evening of the 13th, in the midst of pitch-black darkness all around, and I&#8217;ve got [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m giving a keynote address at the New Jersey Software Process Symposium on October 14th &#8230; somewhere in the wilderness of New Jersey. (All I know is that I&#8217;ve checked in at the New Brunswick Hyatt Regency hotel on the evening of the 13th, in the midst of pitch-black darkness all around, and I&#8217;ve got a Google Maps set of directions to get me to the conference tomorrow morning). I&#8217;m supposed to be talking on the &#8220;Impact of Web 2.0 on Software Development, Project Management and Process Improvement&#8221;:
<p style="text-align: center"><a href="http://www.yourdon.com/downloads/NJswProcessSymposium.pdf" target="_blank"><img src="http://www.yourdonreport.com/wp-content/uploads/2008/10/title1.png" width="320" height="240" /></a></p>
<p> But after a week of watching a gut-wrenching roller-coaster ride on the New York stock market, and reading various gloom-and-doom predictions of bad economic times ahead, I thought it would be more appropriate to replace that talk with a presentation on &#8220;Death-March 3: Software Processes in the New Hard Times&#8221;:
<p style="text-align: center"><a href="http://www.yourdon.com/downloads/NJswProcessSymposium.pdf" target="_blank"><img src="http://www.yourdonreport.com/wp-content/uploads/2008/10/title2.png" height="240" width="320" /></a></p>
<p><span style="color: #0000ee; text-decoration: underline" class="Apple-style-span"></span>If you click on either icon, you&#8217;ll download a 12.2-megabyte PDF file that actually contains <span style="font-style: italic" class="Apple-style-span">both</span> presentations. So you can look at either one of them, depending on whether you&#8217;re feeling optimistic or pessimistic. Enjoy &#8230; or don&#8217;t.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2008/10/13/new-jersey-software-process-symposium/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Top Ten Software Engineering Ideas, Albany-style</title>
		<link>http://www.yourdonreport.com/index.php/2007/11/07/top-ten-software-engineering-ideas-albany-style/</link>
		<comments>http://www.yourdonreport.com/index.php/2007/11/07/top-ten-software-engineering-ideas-albany-style/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 16:02:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[Dreaming in Code]]></category>
		<category><![CDATA[Good-enough software]]></category>
		<category><![CDATA[Mind-map]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[Tom DeMarco]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[death march]]></category>
		<category><![CDATA[software metrics]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.yourdonreport.com/index.php/2007/11/07/top-ten-software-engineering-ideas-albany-style/</guid>
		<description><![CDATA[I&#8217;m participating in a &#8220;Software Best Practices&#8221; seminar in Albany tomorrow (click here for details on future venues of this seminar, hosted by IT Metrics &#38; Productivity Institute &#8212; including Ft. Lauderdale and Austin next week), and I&#8217;ll be giving a talk on the &#8220;Top Ten Software Engineering Ideas.&#8221;



To download the 20.5-megabyte PDF of the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m participating in a &#8220;Software Best Practices&#8221; seminar in Albany tomorrow (<a href="http://www.itmpi.org/events/">click here</a> for details on future venues of this seminar, hosted by IT Metrics &amp; Productivity Institute &#8212; including Ft. Lauderdale and Austin next week), and I&#8217;ll be giving a talk on the &#8220;Top Ten Software Engineering Ideas.&#8221;</p>
<p><a href="http://www.yourdon.com/downloads/CompAidTopTenALB.pdf" title="CompAid Top Ten SE Ideas - Albany.pdf"></p>
<p style="text-align: center"><img src="http://www.yourdonreport.com/wp-content/uploads/2007/11/compaidtoptenalb.png" alt="Top Ten SE ideas Albany.pdf" border="2" height="240" hspace="5" vspace="5" width="320" /></p>
<p></a></p>
<p>To download the 20.5-megabyte PDF of the mind-map summary of this presentation, <a href="http://www.yourdon.com/downloads/CompAidTopTenALB.pdf" title="Top Ten SE Ideas.pdf" target="_blank">click here</a> (or on the thumbnail icon above). The hyperlinks are preserved in the PDF file, so you&#8217;ll see clickable links that you can pursue to get more information on 18 recommended books, and 41 other references (articles, websites, blog articles, etc.) on key aspects of software engineering.</p>
<p>For the fans who follow this blog closely, you may recall seeing a similar mind-map for a &#8220;Top Ten&#8221; presentation that I did in Jacksonville, Florida a couple weeks ago. Here is a summary of the additions/changes I&#8217;ve added to that material for tomorrow&#8217;s presentation in Albany:</p>
<ol>
<li>For the mind-map branch that refers to Google HR strategy, I&#8217;ve now found an interesting article in the Oct 21, 2007 issue of <em>The New York Times</em>, entitled &#8220;<a href="http://www.nytimes.com/2007/10/21/jobs/21pre.html">The Google Way: Give Engineers Room</a>.&#8221;</li>
<li>As an additional reference on &#8220;peopleware&#8221; issues, I&#8217;ve included a relatively new book entitled <em><a href="http://www.amazon.com/exec/obidos/ASIN/0787961485/edyourdonswebsit">Leading Geeks</a></em>.</li>
<li>For the mind-map branch that refers to &#8220;evidence-based scheduling,&#8221; I&#8217;ve found a better reference: a very detailed Oct 26, 2007 blog posting entitled &#8220;<a href="http://www.joelonsoftware.com/items/2007/10/26.html">Evidence-Based Scheduling</a>&#8221; (duh!) by <a href="http://en.wikipedia.org/wiki/Joel_Spolsky">Joel Spolsky</a>, of New York City&#8217;s <a href="http://www.fogcreek.com/">Fog Creek Software</a>. Highly recommended!</li>
</ol>
<p>Let me know if you have any suggestions for improving the material &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2007/11/07/top-ten-software-engineering-ideas-albany-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 Software Engineering Concepts, in Detroit</title>
		<link>http://www.yourdonreport.com/index.php/2007/10/11/top-10-software-engineering-concepts-in-detroit/</link>
		<comments>http://www.yourdonreport.com/index.php/2007/10/11/top-10-software-engineering-concepts-in-detroit/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 10:00:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Good-enough software]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[System Requirements]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[software metrics]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.yourdonreport.com/index.php/2007/10/11/top-10-software-engineering-concepts-in-detroit/</guid>
		<description><![CDATA[I&#8217;ll be giving a presentation on the &#8220;top 10 software engineering concepts&#8221; at a software best-practices seminar in Detroit today; for more details about this and future seminars (including, for example, Jacksonville next week, and Austin next month), click here.


 
If you&#8217;d like to download a 15.9-megabyte PDF of the one-page mind-map for the presentation, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be giving a presentation on the &#8220;top 10 software engineering concepts&#8221; at a software best-practices seminar in Detroit today; for more details about this and future seminars (including, for example, Jacksonville next week, and Austin next month), <a href="http://www.itmpi.org/events/" target="_blank">click here</a>.</p>
<p><a href="http://www.yourdon.com/downloads/CompAidTopTen.pdf" title="picture-7.png"></a></p>
<p style="text-align: center"><a href="http://www.yourdon.com/downloads/CompAidTopTen.pdf" title="picture-7.png"><img src="http://www.yourdonreport.com/wp-content/uploads/2007/10/picture-7.png" title="Top ten SE ideas" alt="Top ten SE ideas" border="2" height="240" hspace="5" vspace="5" width="320" /></a></p>
<p><a href="http://www.yourdonreport.com/wp-content/uploads/2007/10/picture-6.png" title="picture-6.png"> </a></p>
<p>If you&#8217;d like to download a 15.9-megabyte PDF of the one-page mind-map for the presentation, <a href="http://www.yourdon.com/downloads/CompAidTopTen.pdf" target="_blank">click here</a>. And if you&#8217;d like to see the Google Docs version of the presentation, <a href="http://docs.google.com/Present?docid=dvz6jkh_507g3rsbp&amp;fs=true" target="_blank">click here</a>. Because Google Docs presentations are sharable, there&#8217;s an opportunity for you to revise, enhance, correct, and generally improve the material. In order to do that, you&#8217;ll need to be added to the list of &#8220;collaborators&#8221; for the document; send me an email at ed-at-yourdon-to-com, and I&#8217;ll add you to the list.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2007/10/11/top-10-software-engineering-concepts-in-detroit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yes, software still has bugs in it</title>
		<link>http://www.yourdonreport.com/index.php/2007/02/25/yes-software-still-has-bugs-in-it/</link>
		<comments>http://www.yourdonreport.com/index.php/2007/02/25/yes-software-still-has-bugs-in-it/#comments</comments>
		<pubDate>Mon, 26 Feb 2007 02:05:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://yourdon.com/personal/blog/2007/02/25/yes-software-still-has-bugs-in-it/</guid>
		<description><![CDATA[Years ago, there were stories about a software bug that caused F-16 fighter jets to flip upside down when they crossed the equator. When you first hear such a story, it&#8217;s bound to make you laugh; but I suspect that the fighter pilot didn&#8217;t think it was very funny. I haven&#8217;t been able to track [...]]]></description>
			<content:encoded><![CDATA[<p>Years ago, there were stories about a software bug that caused F-16 fighter jets to flip upside down when they crossed the equator. When you first hear such a story, it&#8217;s bound to make you laugh; but I suspect that the fighter pilot didn&#8217;t think it was very funny. I haven&#8217;t been able to track down the details of this apocryphal story, but you can find a mention of it <a href="http://www.cs.queensu.ca/Software-Engineering/archive/horror" target="_blank">here</a> and <a href="http://science.slashdot.org/comments.pl?sid=216348&amp;cid=17556956" target="_blank">here</a>; the original article was allegedly published in <em>ACM Software Engineering Notes</em>, Vol. 5, Number 2, in April 1980. But it doesn&#8217;t appear in the table of contents for that issue, and I haven&#8217;t yet been able to track down; if you are clever enough to find it, please send me a note so I can let everyone know where it is..</p>
<p>In any case, it appears that a similar software problem has appeared in a newer, state-of-the-art military plane: an article in today&#8217;s <em>Slashdot</em>, entitled &#8220;<a href="http://it.slashdot.org/article.pl?sid=07/02/25/2038217" target="_blank">Software Bug Halts F-22 Flight</a>,&#8221; says:</p>
<p style="text-indent:20pt;">&#8220;&#8221;The new US stealth fighter, the <a href="http://www.f-16.net/modules/Gallery2/gallery2/main.php?g2_view=core.DownloadItem&amp;g2_itemId=208072&amp;g2_serialNumber=2" target="_blank">F-22 Raptor</a>, was deployed for the first time to Asia earlier this month. On Feb. 11, twelve Raptors flying from Hawaii to Japan were forced to turn back when a software glitch crashed all of the F-22s&#8217; on-board computers as they crossed the international date line. The delay in arrival in Japan was <a href="http://www.boston.com/news/world/asia/articles/2007/02/11/us_delays_f_22_raptor_fighters_arrival_in_japan/" target="_blank">previously reported</a>, with rumors of problems with the software. CNN television, however, this morning reported that every fighter completely lost all navigation and communications when they crossed the international date line. They reportedly had to turn around and follow their tankers by visual contact back to Hawaii. According to the CNN story, if they had not been with their tankers, or the weather had been bad, this would have been serious. CNN has not put up anything on their website yet.&#8221;</p>
<p>All of which should remind us to be very humble: we have much better technology than we did in 1980, but we&#8217;re building much larger, more complex systems. And even though you would think that programmers would write their code to behave appropriately when a plane crosses the equator or the international date line, and even though you would think the QA people would remember to include this as part of their testing regimen, there are still some very unhappy pilots out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2007/02/25/yes-software-still-has-bugs-in-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogging Japan, part 2: three things for taming the quality monster</title>
		<link>http://www.yourdonreport.com/index.php/2007/01/31/blogging-japan-part-2-three-things-for-taming-the-quality-monster/</link>
		<comments>http://www.yourdonreport.com/index.php/2007/01/31/blogging-japan-part-2-three-things-for-taming-the-quality-monster/#comments</comments>
		<pubDate>Thu, 01 Feb 2007 02:11:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[Society]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://yourdon.com/personal/blog/2007/01/31/blogging-japan-part-2-three-things-for-taming-the-quality-monster/</guid>
		<description><![CDATA[What would you say if your manager suddenly confronted you and said, &#8220;Quick! Tell me the three most important things that our software industry needs to do in order to bring about a substantial improvement in software quality! Just three things!&#8220;? Of course, if you don&#8217;t work in the software field, you wouldn&#8217;t know what [...]]]></description>
			<content:encoded><![CDATA[<p>What would you say if your manager suddenly confronted you and said, &#8220;Quick! Tell me the three most important things that our software industry needs to do in order to bring about a substantial improvement in software quality! <em>Just three things!</em>&#8220;? Of course, if you don&#8217;t work in the software field, you wouldn&#8217;t know what to say &#8230; except, perhaps, to put your manager on the defensive by saying, &#8220;Whaddya mean <em>three</em> things? Why not just <em>one</em> thing? Don&#8217;t you remember what <a href="http://en.wikipedia.org/wiki/Jack_Palance" target="_blank">Jack Palance</a> had to say about &#8216;<a href="http://www.selfgrowth.com/articles/Lallone2.html" target="_blank">just one thing</a>&#8216; in <em><a href="http://en.wikipedia.org/wiki/City_Slickers" target="_blank">City Slickers</a></em>?&#8221;</p>
<p>But if you <em>do</em> work in the software field, you might want to give the question some serious thought. I was asked to do so yesterday, as part of a panel session on the final day of the <a href="http://www.jasst.jp/attribute/jasst07e.html" target="_blank">JaSST conference</a> that I attended here in Tokyo. Two other panelists and I were given a short ten minutes to present our ideas, before the audience was invited to express their opinions and ask some questions. My three proposals for improving the overall state of software quality focused on these areas: politics, collaboration, and negotiating tradeoffs.</p>
<p><em>Politics</em> might seem a strange thing to talk about, in the context of something complex and esoteric like software quality. But consider the following: most of the large companies around the world today &#8212; ranging from banks to telecom vendors to automobile companies to consumer electronics firms &#8212; are actually thinly disguised software companies; and the same is true for most government agencies. The products and services provided by such companies are software intensive; and even if the software doesn&#8217;t account for the largest part of direct expenses, it&#8217;s typically the most crucial factor in terms of overall success and failure.</p>
<p>Considering the importance of software in so many companies, it&#8217;s interesting that senior managers&#8211; especially the CEO/COO and Board of Directors &#8212; are usually people with backgrounds in finance and accounting; sales and marketing; law; and (sometimes) hardware engineering (or mechanical engineering, aeronautical engineering, etc.). So, in my humble opinion, we should be electing, promoting, and rewarding people with software skills and backgrounds into more senior management positions. That doesn&#8217;t necessarily mean that I&#8217;d vote for Bill Gates as President &#8230; but it might lead to more successful results than electing a former movie actor as President.</p>
<p><em>Collaboration</em> is something we hear a lot about in the Web 2.0 world, but you don&#8217;t hear much about it in traditional software development &#8212; at least not in the context of software quality. We hear mostly about software processes and methodologies, better tools and testing techniques, etc. But it seems to me that large software teams (or, perhaps more accurately, &#8220;software armies&#8221;) organized in a traditional hierarchical managerial structure have not worked very well. One reason is that the people in the senior technical managerial roles are often technically obsolete (e.g., their last programming assignment was in Autocoder on an IBM 1401), and thus incompetent to be giving technical instructions to the bottom-level technicians who are trying to write high-quality Java code for a complex distributed system. Another problem is the typical time-lag between the moment that a senior technical manager makes a decision (&#8220;the architecture for our system shall be X, and the programming language shall be Y!&#8221;) and the time it reaches the bottom-level technicians, by which time the decision may no longer be relevant.</p>
<p>So, we should be exploring peer-organized, grass-roots open-source development strategies &#8212; e.g., why is it that development efforts like Linux and Wikipedia have been so successful, when (to oversimplify things a bit) nobody is &#8220;in charge,&#8221; in the traditional sense of the word? The issue here isn&#8217;t whether Linux is better than Microsoft Vista, or whether Wikipedia is better than <em>Encyclopedia Britannica</em>; the issue here is that a traditional management-oriented person would have predicted that the Linux/Wikipedia organizational approaches would quickly disintegrate into chaos and anarchy. But they clearly have not done so; and while books like Eric Raymond&#8217;s <em><a href="http://www.amazon.com/exec/obidos/ASIN/0596001088/edyourdonswebsit" target="_blank">The Cathedral and the Bazaar</a></em><em> </em>have given us some insights into the open-source development model, we need more analyses and investigations.</p>
<p>Also, we should realize that we not only need more collaboration <em>within</em> a software development organization, but also <em>across</em> the organizational boundary, into the marketplace. We need to get <em>customers</em> involved in R&amp;D, product definition, documentation, QA, and technical support. The Web 2.0 people have been telling us this for the last couple of years, and people like  <a href="http://en.wikipedia.org/wiki/Don_Tapscott">Don Tapscott</a> and <a href="http://anthonydwilliams.com/biography">Anthony D. Williams</a> have been articulating the concept in new books like <em><a href="http://www.amazon.com/exec/obidos/ASIN/1591841380/edyourdonswebsit">Wikinomics: how mass collaboration changes everything</a></em>. The pharmaceutical industry is already making big investments, and reaping big rewards, in this area; the software industry needs to start listening.</p>
<p>Finally, on the technical side of things, we need to remember that the tradeoffs between functionality, time, people, cost, and quality are <em>non-linear</em>. If you compress the schedule for a project by, say, ten percent, chances are you&#8217;re going to suffer a disproportionately <em>larger</em> decrease in quality, assuming that you hold the cost, functionality, and people constant. Unfortunately, customers and senior management don&#8217;t understand that reality; indeed, most of them don&#8217;t want to acknowledge any tradeoff at all, and would prefer to accomplish shorter schedules by yelling and shouting at the developers to &#8220;Be more motivated!&#8221;, by which they mean &#8220;Work more unpaid overtime!&#8221;</p>
<p>In order to have a rational, mature dialogue about this issue (which may be difficult to do in any case, because of the politics &#8212; which is why my first proposal concentrated on the political issues), we need to make better use of existing software estimating models and tools. One of the best ones, though by no means the only one, is <a href="http://en.wikipedia.org/wiki/Putnam_model" target="_blank">Larry Putnam&#8217;s SLIM model</a>. Sadly, tools and models like this are used in only a small percentage of software development efforts.</p>
<p>So, those are my three suggestions for improving software quality. Somehow, I managed to articulate all of this within the prescribed ten minutes, but I&#8217;m not sure it made any sense at all when it was translated into Japanese.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2007/01/31/blogging-japan-part-2-three-things-for-taming-the-quality-monster/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Dreaming in Code,&#8221; Chapter 0</title>
		<link>http://www.yourdonreport.com/index.php/2007/01/18/dreaming-in-code-chapter-0/</link>
		<comments>http://www.yourdonreport.com/index.php/2007/01/18/dreaming-in-code-chapter-0/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 05:15:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[Dreaming in Code]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://yourdon.com/personal/blog/2007/01/17/dreaming-in-code-chapter-0/</guid>
		<description><![CDATA[I didn&#8217;t think I&#8217;d have a chance to get started reading and reviewing Dreaming in Code until next week, when I embark upon a 14-hour flight to Tokyo (click here to see an amazing HDR, or &#8220;high dynamic range,&#8221; photo of Tokyo, and be sure to click on the full-size image; thanks, BoingBoing!) But the [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t think I&#8217;d have a chance to get started reading and reviewing <em><a href="http://www.amazon.com/exec/obidos/ASIN/1400082463/edyourdonswebsit%0AAmazon%20URL%0Ahttp://www.amazon.com/exec/obidos/ASIN/1400082463/edyourdonswebsit%0AAmazon%20URL%0Ahttp://www.amazon.com/exec/obidos/ASIN/1400082463/edyourdonswebsit%0Ahttp://www.amazon.com/exec/obidos/ASIN/1400082463/edyourdonswebsit" target="_blank">Dreaming in Code </a></em>until next week, when I embark upon a 14-hour flight to Tokyo (click <a href="http://flickr.com/photos/altus/322152193/" target="_blank">here</a> to see an amazing HDR, or &#8220;high dynamic range,&#8221; photo of Tokyo, and be sure to click on the full-size image; thanks, <a href="http://www.boingboing.net/2007/01/17/stunning_hdr_shot_of.html" target="_blank">BoingBoing</a>!) But the first chapter is a short one, and I&#8217;ve got a few spare moments at the end of a long day, so let&#8217;s get started.</p>
<p>The first chapter is numbered zero, for reasons I&#8217;ll let you discover on your own; Rosenberg begins with two vignettes about the excitement and frustrations of writing computer programs. The first one takes place in 1975, when he was a high school student programming a game called Sumer; the second takes place in 2000, when he was a 40 year old executive at <em><a href="http://www.salon.com" target="_blank">Salon </a></em>magazine, in charge of a software development effort to &#8220;revolutionize&#8221; the organization&#8217;s web site with &#8220;dynamic features,&#8221; the details of which are never explained. The first effort was all-absorbing, frustrating, but ultimately successful; the second effort was equally all-absorbing, more frustrating, and apparently successful at the last moment because of several all-night work sessions.</p>
<p>Rosenberg uses these two vignettes as a metaphor for the industry-wide experience that while the intellectual excitement of computer programming is undiluted after 25 years, the odds of success haven&#8217;t improved much; indeed, if anything, it&#8217;s gotten much more difficult to make today&#8217;s software work. The consequences, and possible solutions, to this dilemma are presumably the subject of the remainder of the book; and it&#8217;s obviously something he feels we <em>must</em> discuss. As he says in the final paragraphs of the chapter,</p>
<blockquote><p>&#8220;<em>Software is a heap of trouble. And yet we can&#8217;t, and won&#8217;t, simply power down our computers and walk away. The software that frustrates and hogties us also captivates us with new capabilities and enthralls us with promises of faster, better ways to work and live. There&#8217;s no going back. We need the stuff more than we can hate it.</em></p></blockquote>
<blockquote>
<p style="text-indent: 20pt"><em> &#8230;<br />
</em></p></blockquote>
<blockquote><p><em> Some dream of ripping down the entire edifice of today&#8217;s software and replacing it with something new and entirely different. Others simply yearn for programs that will respond less rigidly to the flow of human wishes and actions, for software that does what we want and then gets out of our way, for code that we can count on.&#8221;</em></p></blockquote>
<p>Well, that&#8217;s fine &#8212; and I&#8217;m looking forward to what he has to say about this great intellectual dilemma. But I must admit that I&#8217;m already a little worried, for I&#8217;ve seen no indication that he&#8217;s going to focus on what some of us see as the essence of the problem. The problem, at least to some extent, is not better programming languages, better tools, better design methodologies, or better testing techniques. The problem is <em>people</em>, and the communication between people.</p>
<p>Consider the two vignettes at the beginning of the chapter. In the first one, Scott Rosenberg labors alone, as a nerdish 15 year old student trying to make the BASIC programming language manipulate the rules of a game that simulated a city-state in the ancient Fertile Crescent. He didn&#8217;t have to communicate with anyone other than himself; he didn&#8217;t have to schedule any meetings, he didn&#8217;t have to write any memos, and he didn&#8217;t have to worry whether the &#8220;programming team&#8221; of one person was sufficiently motivated to finish the task.</p>
<p>In the second vignette, Rosenberg is the Managing Editor of a high-tech magazine; he&#8217;s got a Vice President of technology reporting to him, who in turn supervises a &#8220;lead programmer, [who] after working around the clock for weeks on end and finally announcing that his work was done, had taken off for Hawaii on a long-planned family vacation.&#8221; But apparently the program didn&#8217;t work after all, and apparently the VP didn&#8217;t figure that out until it was too late. There are vague references toward the end of the vignette to other &#8220;developers&#8221; (plural), and implied acknowledgments of human-inspired breakdowns in testing, documentation, supervision, change control, and goodness knows what else.</p>
<p>Even today, one-person programming projects have a <em>much</em> higher likelihood of success than the &#8220;Mongolian horde&#8221; projects involving hundreds of developers (I recall reading somewhere that the Microsoft Vista project had 4,000 developers, though I can&#8217;t seem to find any supporting documentation for that number right now; still, even if it was only 1,000 developers, it&#8217;s still a horde). And a large percentage of the truly innovative and successful software products (e.g., Visicalc, Netscape Navigator, the initial version of Google, and YouTube come to mind) were built by small teams of only a handful of people. Because our tools and technologies <em>have</em> improved enormously over the past 50 years, a few really gifted people can sometimes develop systems of staggering size and complexity; but since our demands and desires for technological achievements sometimes grow even faster than our technologies, we still find ourselves forming huge armies of developers to create even more massive systems &#8230; and these often fail.</p>
<p>Maybe all of this will be acknowledged and discussed in subsequent chapters. But I took a quick look at the index and was disappointed to find no entries for &#8220;<a href="http://en.wikipedia.org/wiki/Peopleware" target="_blank">peopleware</a>&#8221; or <a href="http://en.wikipedia.org/wiki/Tom_DeMarco" target="_blank">Tom DeMarco</a>&#8217;s work. On the other hand, <a href="http://www.geraldmweinberg.com/index.html" target="_blank">Gerald Weinberg</a> (author of <em><a href="http://www.amazon.com/exec/obidos/ASIN/0932633420/edyourdonswebsit" target="_blank">The Psychology of Computer Programming</a></em>, and many other fine books) has an entry, as does the <em><a href="http://www.amazon.com/exec/obidos/ASIN/0932633420/edyourdonswebsit" target="_blank">Psychology</a></em> book itself; and there are several entries under the heading of &#8220;management of software projects,&#8221; as well as entries for several other interesting people who have some very perceptive things to say about software development. So that gives me hope for the rest of the book; I&#8217;ll continue soldiering on. (<span style="color: #ff0000"><strong>Update</strong></span>: a couple hours after initially posting this blog entry, Scott Rosenberg graciously emailed me to confirm that (a) he is indeed aware of Tom DeMarco&#8217;s fine work, even though he didn&#8217;t have a chance to acknowledge it in his book, and (b) he does indeed emphasize the importance of people, and communication between people, in subsequent chapters of his book. Now I feel greatly encouraged, and will indeed move on to the next chapter of <em>Dreaming in Code</em> with great enthusiasm!)</p>
<p>One other brief comment at the beginning of this review process: I&#8217;ve already stumbled upon an example of the inadequacy of &#8220;dead tree&#8221; publications, the advantages and benefits of Web-based publications of the same material, and the occasional inconsistency of the two.  When reading through Chapter 0, I found a reference to a Web page maintained by the ACM (&#8220;<a href="http://www.acm.org/" target="_blank">Association for Computing Machinery</a>&#8221; for the non-geeks out there) &#8220;that lists versions of &#8216;Hello World&#8217; [the first and most elementary program that anyone writes in any programming language] in nearly two hundred different languages.&#8221;</p>
<p><em>Huh!</em> I thought. <em>Cool! Where the heck is it?</em> There was no footnote on the page, no URL to the aforementioned Web page; and even if there had been one, it&#8217;s pretty hard to double-click a piece of paper and expect anything useful to happen. It was only later, when I started scrounging through the index in search of my friend <a href="http://www.systemsguild.com/GuildSite/TDM/Tom_DeMarco.html" target="_blank">Tom DeMarco</a>, that I happened to notice a section at the end of the book called &#8220;Notes,&#8221; which contained end-notes for each chapter. There were ten such notes for Chapter 0, with lots of useful information<em>,</em> but none of it was mentioned or identified in Chapter 0 itself.<em> Bummer</em>, I thought. <em>Some editor should be hung by his thumbs until he screams for mercy.</em></p>
<p>But then I had another thought: <em>surely</em>, thought I, <em>someone as clever and erudite as Scott Rosenberg can&#8217;t be oblivious of the Web! </em>So I typed the search phrase &#8220;Scott Rosenberg Dreaming in Code&#8221; to Google, and voila! the first item at the top of the list of 244,000 items found by Google was an entire website titled <a href="http://www.dreamingincode.com/" target="_blank">DreaminginCode.com</a>. Book reviews by other people! A <a href="http://www.wordyard.com/" target="_blank">blog </a>by Scott Rosenberg! Links to Amazon and Barnes-and-Noble, where you can buy the book! Everything you would want and need!</p>
<p>Indeed, there&#8217;s even a link to a section called &#8220;Endnotes,&#8221; which (among other things) I hoped would provide me with a clickable version of the URL to the ACM &#8220;Hello World&#8221; page. But, sadly, here&#8217;s what I found when I clicked on the &#8220;Endnotes&#8221; link:</p>
<p style="text-indent: 20pt"><em>Many of the references in Dreaming in Code are to online resources and Web sites. When the book is published, this page will contain a version of its endnotes with all the links “live.” I’ve been writing almost exclusively for the Web since 1995, and found myself frustrated with the impossibility of doing this in the book’s print edition!<br />
</em></p>
<p>Hey Scott! The book <em>is</em> published; I ordered my copy from Amazon just like every other mere mortal (I wasn&#8217;t one of the lucky few who got a pre-publication review copy). So where are the contents of this page? Feh! (<span style="color: #ff0000"><strong>Update</strong></span>: Scott Rosenberg emailed me to say that his book had only been in the stores for two days when I posted my critical comment. And he apologized for the delay in uploading an HTML version of all the EndNotes, pointing out that he has no staff or assistants, and must do it all by himself. Okay, I&#8217;ll apologize for being so impatient &#8230; but, hey, Scott, can&#8217;t you find any interns at Stanford or Berkeley who would volunteer to do this work gratis &#8212; or have they all been hired away by Google? Just kidding; we&#8217;ll all be very grateful whenever you get a chance to get this stuff onto your website.)</p>
<p>For those who really want to see all of that ACM code, the &#8220;Hello World&#8221; page is <a href="http://www2.latech.edu/~acm/HelloWorld.shtml" target="_blank">here</a>. And there are only 193 languages in the list. But why quibble over the difference between 193 and &#8220;nearly two hundred&#8221;? After all, it&#8217;s only computers we&#8217;re talking about, and computers are forgiving, right?</p>
<p>Well, anyway, that should be enough to keep you busy for a little while. I&#8217;ll carry on with the next chapter as soon as I get a chance&#8230;</p>
<p><span style="color: #ff0000; text-decoration: underline"><strong>Updated to add:</strong></span></p>
<p><span style="text-decoration: underline"><strong>Reviews of other chapters of &#8220;Dreaming in Code&#8221;</strong></span><br />
<a href="http://www.yourdonreport.com/index.php/2007/01/15/dreaming-in-code-has-arrived/">Preface</a><br />
<a href="http://www.yourdonreport.com/index.php/2007/02/08/dreaming-in-code-chapter-1-doomed/" target="_blank">Chapter 1: Doomed</a><br />
<a href="http://www.yourdonreport.com/index.php/2007/02/11/dreaming-in-code-chapter-2-the-soul-of-agenda/">Chapter 2: The Soul of Agenda</a><br />
<a href="http://www.dreamingincode.com/endnotes/"></a></p>
<p><a href="http://www.yourdonreport.com/index.php/2007/02/13/dreaming-in-code-chapter-3-prototypes-and-python/" target="_blank">Chapter 3: Prototypes and Python </a></p>
<p><a href="http://www.dreamingincode.com/endnotes/">Endnotes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2007/01/18/dreaming-in-code-chapter-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More thoughts on why software development hasn&#8217;t gotten any better</title>
		<link>http://www.yourdonreport.com/index.php/2006/11/19/more-thoughts-on-why-software-development-hasnt-gotten-any-better/</link>
		<comments>http://www.yourdonreport.com/index.php/2006/11/19/more-thoughts-on-why-software-development-hasnt-gotten-any-better/#comments</comments>
		<pubDate>Mon, 20 Nov 2006 02:59:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[software metrics]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://yourdon.com/personal/blog/2006/11/19/more-thoughts-on-why-software-development-hasnt-gotten-any-better/</guid>
		<description><![CDATA[A couple weeks ago, I posted a blog article entitled &#8220;Why Hasn&#8217;t Software Development Gotten Any Better?&#8221; Hank Heath and Moshe Gotesman posted some thoughtful comments on the blog, which I encourage you to read; and I&#8217;ve also gotten some interesting offline comments sent via email. For example, a long-time colleague, Becky Winant, wrote to [...]]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago, I posted a blog article entitled &#8220;<a href="http://www.yourdonreport.com/index.php/2006/11/09/why-hasnt-software-development-gotten-any-better/">Why Hasn&#8217;t Software Development Gotten Any Better?</a>&#8221; Hank Heath and <a href="http://mosgot.blogspot.com/index.html" target="_blank">Moshe Gotesman</a> posted some thoughtful comments on the blog, which I encourage you to read; and I&#8217;ve also gotten some interesting offline comments sent via email. For example, a long-time colleague, <a href="http://www.zoominfo.com/search/PersonDetail.aspx?PersonID=14544019" target="_blank">Becky Winant</a>, wrote to me and said:</p>
<p style="text-indent: 20pt">&#8220;Your item on why software hasn&#8217;t got any better really resonated. My team at [a large insurance company] looks for way to improve methods, tools and practices. So, I have pondered this myself &#8211; particularly #12 (how do we explain this better?), #7, and number 5 (insurance is regulated at every level and with the advent of consumer heath plans &#8211; the envelope might be pushed)</p>
<p style="text-indent: 20pt">&#8220;Here&#8217;s a few more that jumped out for me:</p>
<p style="text-indent: 20pt">&#8220;13. We off shore our work and do not always specify quality. I was asked to join a conversation with our off shore company where we were asking them to re-structure some COBOL code to make it better. The conversation continued to talk about the amount of code and engagement dates until I stepped in and asked: How will you know you got back code restructured in a way that you wanted? Silence.</p>
<p style="text-indent: 20pt">&#8220;14. We don&#8217;t do an effective job of re-use. Code (heck, requirements!) may be reconstructed for the same or similar functionality to 10 things we have already. Big organizations are not necessarily structured for effective software development. Even when they try &#8211; politics places a key group out under someone else&#8217;s control. (So, would you organize a very large group?) There are still a whole lot of siloed departments, and siloed projects where slices of work are rather small (cost concern) and focused (so we can get it quickly) and siloed directories with security so that if you are not in a very specific group (dept, project) you can&#8217;t get in. As a result there is precious little visibility in to what we have as an asset inventory. (And, yes, no $ incentives or scorecards incentives to do so).</p>
<p style="text-indent: 20pt">&#8220;15. According to <a href="http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator" target="_blank">Myers-Briggs Personality Type Indicator tests</a>, conceptual and abstract thinking is only about 10% of the  population. So, principles would not be a natural mode of thinking for software folks (who often test in the &#8220;other&#8221; profile areas that prefer specificity and concreteness).&#8221;</p>
<p>Another colleague, <a href="http://www.ece.utexas.edu/faculty/directory/details.php?id=170" target="_blank">Herb Krasner</a>, wrote:</p>
<p style="text-indent: 20pt">&#8220;On the question of &#8220;why haven&#8217;t we gotten any better?&#8221;, it is my belief that the question itself is based on a false expectation that software development is supposed to be easier than it really is.</p>
<p style="text-indent: 20pt">It is my belief that software development was, is now, and in the future will be difficult and challenging. Turning concepts into artificial reality usually is. I still link back to the &#8220;<a href="http://en.wikipedia.org/wiki/No_Silver_Bullet" target="_blank">No Silver Bullet</a>&#8221; theory that the essence of software is in its complexity, changeability and conformity &#8212; that is its true nature.</p>
<p style="text-indent: 20pt">&#8220;As I look at your dirty dozen explanations, I find that my beliefs mostly align with your reasons 3, 4, and 9 &#8212; but I just love your embedded reflection in item 10 (as you get older &#8230;). And you already know that a side point of my ROI talk is to solve the problem stated by your #12.&#8221;</p>
<p>Finally, software metrics guru <a href="http://www.unt.edu/isrc/Faculty/FacultyFellows/jones.htm" target="_blank">Capers Jones</a> wrote to me after he, Herb Krasner, and I participated in a &#8220;software best practices&#8221; conference in early November, and said:</p>
<p style="text-indent: 20pt">&#8220;Thanks for your thoughts on the stasis in the software industry.</p>
<p style="text-indent: 20pt">&#8220;Here is a tidbit from chapter 24 of the 2nd edition of &#8220;<a href="http://www.amazon.com/Estimating-Software-Costs-Development/dp/0079130941" target="_blank">Estimating Software Costs</a>&#8221; [scheduled to be published in 2007].  It summarizes an issue &#8211; too many mediocre choices.</p>
<p style="text-indent: 20pt">&#8220;There is one other aspect of complexity that has a direct bearing on automated software cost estimating tools and also on benchmarks.  As of 2007 the software industry uses some 600 different programming languages and creates about 120 different kinds of software applications each of which can contain about 23 different features.  The software industry employs 90 kinds of specialists, creates 53 kinds of paper document, uses 43 different design methods, and measures with 38 different size metrics.  Software applications are built utilizing 26 different development methods that include at least 35 different activities.  About 25 international standards affect software projects.  Software projects face 30 different kinds of risk factors.  The software industry must also deal with 24 kinds of complexity, perform 23 different kinds of maintenance activities, and may perform 18 different kinds of testing.  The combinatorial complexity of these topics is enormous.  There is no way for either project managers or estimating tool developers to include all of these factors at the same time.  It is obvious from the plethora of choices and alternatives in the software industry that we are groping for better ways of doing things, but have not yet found optimal approaches.&#8221;</p>
<p>I suspect there are still other explanations waiting to be articulated. And while all of this sounds rather gloomy, we should keep in mind that we have software today that simply didn&#8217;t exist 20 years ago. Yes, we had email and word-processors and spreadsheets back in the mid-1980s, but we didn&#8217;t have web browsers, or Google, or most of the graphics programs available on our PC&#8217;s today. But the bottom line is that we&#8217;re still encountering serious difficulties trying to develop large, complex software projects on time, within budget, and with an acceptable level of quality. And it probably won&#8217;t get much better anytime soon&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2006/11/19/more-thoughts-on-why-software-development-hasnt-gotten-any-better/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Ten Most Important Ideas in Software Engineering</title>
		<link>http://www.yourdonreport.com/index.php/2006/10/17/the-ten-most-important-ideas-in-software-engineering/</link>
		<comments>http://www.yourdonreport.com/index.php/2006/10/17/the-ten-most-important-ideas-in-software-engineering/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 15:28:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Career/Professional]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[Structured Stuff]]></category>
		<category><![CDATA[System Requirements]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://yourdon.com/personal/blog/2006/10/17/the-ten-most-important-ideas-in-software-engineering/</guid>
		<description><![CDATA[I had the good fortune to be invited to participate in Construx&#8217;s Executive Summit conference in Seattle this week, and have just finished the first day of the conference. The highlight of the first day was the opening keynote presentation by Steve McConnell, founder of the firm, and author of a number of excellent books [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/exec/obidos/ASIN/0735605351/edyourdonswebsit" target="_blank"><img src="http://www.yourdonreport.com/wp-content/uploads/2006/10/0735605351.01._AA240_SCLZZZZZZZ_V56899447_.thumbnail.jpg" alt="Software Estimation: Demystifying the Black Art" id="image273" title="Software Estimation: Demystifying the Black Art" align="left" /></a>I had the good fortune to be invited to participate in <a href="http://www.construx.com/" target="_blank">Construx</a>&#8217;s Executive Summit conference in Seattle this week, and have just finished the first day of the conference. The highlight of the first day was the opening keynote presentation by <a href="http://en.wikipedia.org/wiki/Steve_McConnell" target="_blank">Steve McConnell</a>, founder of the firm, and author of a number of excellent books on software engineering (including a new book on estimating, <em><a href="http://www.amazon.com/exec/obidos/ASIN/0735605351/edyourdonswebsit" target="_blank">Software Estimation: Demystifying the Black Art</a></em>).</p>
<p>Steve&#8217;s talk was titled &#8220;The Ten Most Important Ideas in Software Engineering&#8221;; he emphasized that these are not <em>new</em> ideas, but ideas that are being &#8220;rediscovered&#8221; from other engineering disciplines, or simply ideas that have been discussed widely but not practiced widely. Here is Steve&#8217;s list:</p>
<ol>
<li><em><a href="http://www.amazon.com/exec/obidos/ASIN/093263342/edyourdonswebsit" target="_blank"><img src="http://www.yourdonreport.com/wp-content/uploads/2006/10/0932633420.01._AA240_SCLZZZZZZZ_.thumbnail.jpg" alt="Psychology of Computer Programming" id="image272" title="Psychology of Computer Programming" align="right" /></a>Software development is performed by human beings.</em> This notion was first popularized by Gerald Weinberg in 1971, with a book entitled <em><a href="http://www.amazon.com/exec/obidos/ASIN/093263342/edyourdonswebsit" target="_blank">The Psychology of Computer Programming</a></em> (the silver anniversary edition of the book was republished in 1998). McConnell noted that estimating models like <a href="http://en.wikipedia.org/wiki/COCOMO_II" target="_blank">COCOMO-II</a> demonstrate the significant cost/effort multipliers associated with having talented, experienced personnel on a project. He also suggests that we can draw three conclusions from this point: (a) the success of companies like Google, Yahoo, and Microsoft is not accidental, and is partially due to their emphasis on hiring talented people; (b) recruiting talented staff members is easily cost-justified; and (c) spending money on employee retention programs is cost-justified.</li>
<li><em>Incrementalism is essential.</em> Steve distinguishes between &#8220;incremental&#8221; and &#8220;iterative&#8221; development; by &#8220;incrementalism,&#8221; he refers to the idea of developing a little bit at a time, in contrast to the <a href="http://en.wikipedia.org/wiki/Big_Bang_%28project_management%29" target="_blank">big-bang</a> software development approach.</li>
<li><em>Iteration is essential. </em>This is a familiar concept, but Steve warned us to avoid accepting the all-or-nothing extremes of iteration. You don&#8217;t have to accept the &#8220;keep iterating forever&#8221; extreme, nor do you have to accept the &#8220;no iterations are allowed&#8221; waterfall approach.</li>
<li><em>The cost to increase a defect increases over time, throughout the development life cycle. </em>This is a concept that has been widely accepted for the past 25 years, and McConnell says he has revalidated its truth with data as recent as 2004, including XP/agile projects. I was somewhat surprised by this, because a common argument from the XP/agile enthusiasts is that modern tools have made the old concept irrelevant &#8212; i.e., the XP/agile people argue that it doesn&#8217;t cost much to fix a requirements defect later in the development process, because modern IDE tools make it easy to redevelop software. McConnell obviously disagrees with this point, and I&#8217;ll have to look into it further before I make up my own mind.</li>
<li><em>There is an important kernel of truth in the waterfall model of development</em>. McConnell suggests that the primary activities of software development are <em>discovery</em> (of what the requirements really are), <em>invention</em> (of a solution), and <em>construction</em> (i.e., implementation of that invented solution). And he argues that while these activities can overlap and take place somewhat concurrently, there is an intrinsically sequential nature to the activities.</li>
<li><em>The accuracy of estimates (about the schedule, effort, and cost) for a project increases over time throughout the development of a software system.</em> There is a great deal of uncertainty in the initial estimates that we create at the beginning of a project. The &#8220;cone of uncertainty,&#8221; as McConnell calls it, does not narrow by itself, it must be actively managed. As a result, McConnell concludes that iteration must be iterative, project planning must be incremental, and that estimates aren&#8217;t meaningful unless they contain a description of their uncertainty.</li>
<li><em>The most powerful form of reuse is reuse of everything &#8212; not just code.</em> We&#8217;ve long known that we should be reusing designs, plans, checklists, role, etc; and McConnell reminds us that we should be reusing <em>processes</em> for developing systems. Indeed, that&#8217;s what SEI-CMM level 3 is all about.</li>
<li><em>Risk management provides important insights into software development</em>. McConnel notes that most projects spend more than 50% of their effort on unplanned work, and that the role of risk management is to reduce unplanned work.</li>
<li><em>Different kinds of software calls for different kinds of software development approaches</em>. The &#8220;one size fits all&#8221; approach to software development methodologies is just plain silly</li>
<li><em>The Software Engineering Body of Knowledge (</em><em><a href="http://en.wikipedia.org/wiki/SWEBOK" target="_blank">SWEBOK</a></em><em>) is an important asset for software developers</em>. SWEBOK has detailed information about 10 different areas of software development, including the familiar ones of analysis, design, construction, and testing. McConnell notes that it can be used for curriculum development, career development, certification, interviewing, and building a technical skills inventory.</li>
</ol>
<p>Today&#8217;s presentation is from Joel Spolsky; if I get a chance this evening, I&#8217;ll post a blog entry summarizing his talk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2006/10/17/the-ten-most-important-ideas-in-software-engineering/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My version of the ten commandments for project management</title>
		<link>http://www.yourdonreport.com/index.php/2006/10/04/my-version-of-the-ten-commandments-for-project-management/</link>
		<comments>http://www.yourdonreport.com/index.php/2006/10/04/my-version-of-the-ten-commandments-for-project-management/#comments</comments>
		<pubDate>Wed, 04 Oct 2006 19:32:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Project management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://yourdon.com/personal/blog/2006/10/04/my-version-of-the-ten-commandments-for-project-management/</guid>
		<description><![CDATA[Yesterday, I wrote about a Computerworld  article, entitled &#8220;The Ten Commandments of Project Management,&#8221; which proposed a number of &#8220;commandments&#8221; to ensure project management success. I thought it was a good start, but I&#8217;ve got an alternative list. Here it is:

Don&#8217;t fail to identify the key &#8220;players&#8221; who will ultimately declare &#8220;success&#8221; or &#8220;failure&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I wrote about a <em><a href="http://www.computerworld.com/" target="_blank">Computerworld </a></em> article, entitled &#8220;<a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=254934&amp;pageNumber=1" target="_blank">The Ten Commandments of Project Management</a>,&#8221; which proposed a number of &#8220;commandments&#8221; to ensure project management success. I thought it was a good start, but I&#8217;ve got an alternative list. Here it is:</p>
<ol>
<li><em>Don&#8217;t fail to identify the key &#8220;players&#8221; who will ultimately declare &#8220;success&#8221; or &#8220;failure&#8221; for your project</em> &#8212; you can deliver the required functionality, and you can do so on time, under budget, and with good technical quality, and <em>still</em> have your project declared a failure by a powerful stakeholder who has decided he doesn&#8217;t want your project to succeed for some reason. Similarly, you can deliver a subset of the required functionality, with lots of bugs, months behind schedule, and <em>way</em> over budget &#8212; and still have your project declared a success, if a key stakeholder is satisfied with the results. If you haven&#8217;t identified the key stakeholders and sources of power, your chances of success with anything other than a trivial project are minimal.</li>
<li><em>Don&#8217;t fail to clearly identify (preferably in writing!) what constitutes &#8220;success&#8221; for your project</em> &#8212; everyone wants to deliver a defect-free system, with all of the features and functions requested by the user, on time and under budget. But which of these <em>really</em> matters to the person/persons who have the power to declare success? Sometimes it&#8217;s okay to be a week or two behind schedule; sometimes it&#8217;s not. Sometimes you can exceed the budget by a few million dollars; sometimes you can&#8217;t exceed it by a penny. You&#8217;d better figure out which of the criteria for success are &#8220;hard&#8221; and non-negotiable, and which ones are soft and/or negotiable at the last moment.</li>
<li><em>Don&#8217;t confuse &#8220;estimating&#8221; project schedules and budgets with &#8220;guessing&#8221; or &#8220;negotiating&#8221;</em> &#8212; much of what we call &#8220;estimating&#8221; is a farce: even if we had adequate historical data with which to develop a &#8220;rational&#8221; estimate of the time, money, and people required to develop a system, that estimate would not be acceptable to the end-user or key stakeholder(s). What usually takes place is a form of negotiating, based on inadequate and incomplete information; unfortunately, what <em>really</em> takes place in many projects is a form of bullying, where the project manager is ultimately forced to accept a schedule, budget, and staff that he knows, deep in his heart, won&#8217;t be sufficient to get the job done.</li>
<li><em>Don&#8217;t ignore the non-linear nature of tradeoffs between people, time, money, and quality when negotiating key project parameters &#8212; </em>if you tell the end-user, or key project stakeholders, that it will take 12 months and 10 people to develop a system, what happens when they respond by saying the system <em>must</em> be delivered in 6 months? In most cases, their initial negotiating position is to offer <em>zero</em> additional people; the implicit assumption is that your initial estimate was a bluff, or that it included a 100% &#8220;safety factor,&#8221; or that your staff should be willing to work 16 hours a day instead of 8 hours a day. Even if your end-user/stakeholders are generous, they&#8217;ll normally assume that the tradeoff between time and people (or any of the other project parameters) is linear: if they want the system finished in half the time, they have some vague notion that you&#8217;ll need twice as many people. But it doesn&#8217;t work that way; the tradeoffs are non-linear in nature, and you really need a sophisticated estimating tool (of which several are available in the marketplace) to calculate the details of the third-order polynomial equations that are involved. Meanwhile, tell your end-user/stakeholders to skim through <a href="http://en.wikipedia.org/wiki/Fred_Brooks">Fred Brooks</a>&#8216; <em><a href="http://www.amazon.com/exec/obidos/ISBN=0201835959/edyourdonswebsitA">The Mythical Man-Month</a></em> for an explanation of this concept.</li>
<li><em>Don&#8217;t attempt to &#8220;freeze&#8221; user requirements; </em><span style="text-decoration: underline"><em>do</em></span><em> </em><em>expect &#8220;scope creep,&#8221; but don&#8217;t accept &#8220;requirements churn&#8221;</em> &#8212; Anyone with experience developing a non-trivial system knows how unrealistic it is to expect end-users to freeze their requirements in the early stages of development. But the other extreme is just as bad: chaotic, uncontrolled &#8220;requirements churn&#8221; virtually guarantees that the system will never be sufficient stable that it can be used. You should assume that user requirements will continue changing at the rate of approximately 1% per months throughout the project; and you need to have some mechanism in place to acknowledge those changes, manage them (which means, among other things, prioritizing them), and incorporate them into the evolving system.</li>
<li><em>Don&#8217;t allow developers and key end-users to stop communicating with each other</em> &#8212; one of the key elements of most XP/agile development methodologies is to encourage ongoing, intensive interactions between the developers and the end-users who will eventually be stuck with the system. Everyone understands this point, and most projects <em>begin</em> with a reasonable degree of interaction between the end-users and developers. But for a variety of reasons, there&#8217;s a common tendency for the two groups to start drifting apart as the project continues &#8212; the end-users are busy doing their &#8220;regular&#8221; jobs, and the developers often believe that they&#8217;ve learned enough about the end-user requirements to go off in a corner and start coding furiously. This is almost always a disaster, if only because the two groups typically fail to come back together again to participate in acceptance testing in a cooperative fashion. Keep them together, joined at the hip, throughout the entire project.</li>
<li><em>Don&#8217;t commit teamicide</em> &#8212; most non-trivial projects require a <em>team</em> of developers and related specialists; the success or failure of the project depends, to some extent, on how well the team works together. But in many cases, any chances for successful teamwork is killed by idiotic managerial and bureaucratic rules and procedures. For details, see <em><a href="http://www.amazon.com/exec/obidos/ISBN=0932633439/edyourdonswebsitA">Peopleware</a></em>, by Tom DeMarco and Tim Lister; for a more recent update, see &#8220;<a href="http://www.dorsethouse.com/features/excerpts/expwch27.html">Teamicide Revisited</a>,&#8221; by the same two authors.</li>
<li><em>Don&#8217;t ignore whatever software processes the project team has committed to</em> &#8212; it&#8217;s hard to endorse a waterfall life-cycle and its associated processes these days; but aside from that, it doesn&#8217;t matter too much whether your project team decides to use XP, scrum, RAD, RUP, agile development processes, or whatever else strikes their fancy. The most important thing is that the team should agree, at the beginning of the project, which of the &#8220;standard&#8221; process activities will be eliminated, which ones will be followed on a cursory basis, and which ones will be followed with religious fervor (e.g., pair programming, writing acceptance test criteria before writing code, etc.). And once those details have been agreed upon, don&#8217;t abandon the process in the heat of battle, simply because everyone is &#8220;too busy&#8221; to follow the process. The result of such abandonment is usually anarchy, and it doesn&#8217;t end well.</li>
<li><em>Don&#8217;t skimp on risk management</em> &#8212; trivial projects may not have any risks, but any interesting, non-trivial project is inevitably saddled with risks. You can&#8217;t make them go away; but you also can&#8217;t ignore them. I&#8217;m amazed by how many managers pound their fist on the table, and exclaim loudly, &#8220;I don&#8217;t want to hear about any problems unless you&#8217;ve got a solution!&#8221; &#8230; and then wonders why nobody on the project team tells the managers about such problems. Duh! The serious risks are the ones for which the project team members <em>can&#8217;t</em> figure out a solution &#8212; that&#8217;s why they want to bring it to the attention of the manager!</li>
<li><em>Don&#8217;t forget the importance of a &#8220;daily build&#8221; approach</em> &#8212; project status indicators that consist of delivering piles of paper (test plans, requirements documents, architecture diagrams, use-case models, etc.) are better than nothing, but they don&#8217;t really show <em>tangible</em> evidence of progress. As (former) Microsoft Visual C++ manager Jim McCarthy likes to say, &#8220;The daily build is the heartbeat of the project &#8212; it&#8217;s how you know you&#8217;re alive.&#8221; If you don&#8217;t know what this is all about, check out the Wikipedia article <a href="http://en.wikipedia.org/wiki/Daily_build">here</a>.</li>
</ol>
<p>Project managers who follow these commandments may not deliver a &#8220;perfect&#8221; system, but my own experience indicates that they will have eliminated the major causes of project collapse and failure.</p>
<p>Let me know if you have your own list of &#8220;ten commandments.&#8221; We can use as much wisdom as we can get in this area!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourdonreport.com/index.php/2006/10/04/my-version-of-the-ten-commandments-for-project-management/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

