<?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: Two kinds of software challenges</title>
	<atom:link href="http://www.johndcook.com/blog/2009/06/04/software-challenges/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/</link>
	<description>The blog of John D. Cook</description>
	<lastBuildDate>Sat, 11 Feb 2012 01:10:06 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tad</title>
		<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/comment-page-1/#comment-135657</link>
		<dc:creator>Tad</dc:creator>
		<pubDate>Mon, 06 Feb 2012 15:08:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2392#comment-135657</guid>
		<description>Curious on your rationale on &quot;verifiability&quot; and &quot;testing&quot; being on the 2nd list.  Always thought those were ones a bit easier to solve and not ones that permeated the entire project.  Clear or clarified requirements and then either good-quality QA folks, or good-quality automated tests don&#039;t always require a re-work of the whole project - though (depending on scope of project) I&#039;ll concede that automated testing can.</description>
		<content:encoded><![CDATA[<p>Curious on your rationale on &#8220;verifiability&#8221; and &#8220;testing&#8221; being on the 2nd list.  Always thought those were ones a bit easier to solve and not ones that permeated the entire project.  Clear or clarified requirements and then either good-quality QA folks, or good-quality automated tests don&#8217;t always require a re-work of the whole project &#8211; though (depending on scope of project) I&#8217;ll concede that automated testing can.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: deadalnix</title>
		<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/comment-page-1/#comment-135656</link>
		<dc:creator>deadalnix</dc:creator>
		<pubDate>Mon, 06 Feb 2012 15:05:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2392#comment-135656</guid>
		<description>Problems on the second list must be considered during the dev of the project. They have to be refined each time you get a better understanding of the project.

I see a lot of project wanting to go forward without considering it. You end up with a unmaintainable mess. You have to solve these issue little by little each day, mainly by fighting against entropy.</description>
		<content:encoded><![CDATA[<p>Problems on the second list must be considered during the dev of the project. They have to be refined each time you get a better understanding of the project.</p>
<p>I see a lot of project wanting to go forward without considering it. You end up with a unmaintainable mess. You have to solve these issue little by little each day, mainly by fighting against entropy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roger Marlow</title>
		<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/comment-page-1/#comment-19030</link>
		<dc:creator>Roger Marlow</dc:creator>
		<pubDate>Wed, 10 Jun 2009 13:07:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2392#comment-19030</guid>
		<description>I agree. And your point that items in the second list have more to do with psychology and human nature is important. It is people that commission, manage, design, build and use software; every aspect of software creation is impossible without people, yet students of software are taught little or nothing about how they &quot;work&quot;. Indeed they are predisposed to be disinterested, even antagonistic, towards any efforts to teach them psychology let alone soft skills. Interestingly there was a similar problem in Economics (i.e. it was dominated by a narrow mathematical world view) but Behavioural Economics is changing all that. Will there be a similar movement in Computer Science and Software Engineering? I believe it is overdue and academia could provide leadership in this area.</description>
		<content:encoded><![CDATA[<p>I agree. And your point that items in the second list have more to do with psychology and human nature is important. It is people that commission, manage, design, build and use software; every aspect of software creation is impossible without people, yet students of software are taught little or nothing about how they &#8220;work&#8221;. Indeed they are predisposed to be disinterested, even antagonistic, towards any efforts to teach them psychology let alone soft skills. Interestingly there was a similar problem in Economics (i.e. it was dominated by a narrow mathematical world view) but Behavioural Economics is changing all that. Will there be a similar movement in Computer Science and Software Engineering? I believe it is overdue and academia could provide leadership in this area.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Moeller</title>
		<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/comment-page-1/#comment-18822</link>
		<dc:creator>John Moeller</dc:creator>
		<pubDate>Fri, 05 Jun 2009 03:31:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2392#comment-18822</guid>
		<description>&lt;blockquote&gt;This requires practice, and Computer Science professors typically don’t write *any* software. Ever.&lt;/blockquote&gt;
Or if they do, it&#039;s a one-off that doesn&#039;t ever get integrated into anything, and thus doesn&#039;t need to meet the restrictions noted in the second list.

There are curricula that attempt to address these issues through teamwork and long-term projects.  Unfortunately, there are software engineers (thankfully in the minority) who never learn these principles in the workplace either.</description>
		<content:encoded><![CDATA[<blockquote><p>This requires practice, and Computer Science professors typically don’t write *any* software. Ever.</p></blockquote>
<p>Or if they do, it&#8217;s a one-off that doesn&#8217;t ever get integrated into anything, and thus doesn&#8217;t need to meet the restrictions noted in the second list.</p>
<p>There are curricula that attempt to address these issues through teamwork and long-term projects.  Unfortunately, there are software engineers (thankfully in the minority) who never learn these principles in the workplace either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Lemire</title>
		<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/comment-page-1/#comment-18820</link>
		<dc:creator>Daniel Lemire</dc:creator>
		<pubDate>Fri, 05 Jun 2009 02:44:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2392#comment-18820</guid>
		<description>Great point. However, robustness is commonly addressed mathematically. Something like &quot;rate of failure&quot;. We probably could model mathematically all elements on the second list.

It seems to me that the first list describes &quot;core Computer Science&quot; whereas the second list is more about &quot;good software design&quot;. Don&#039;t expect a Computer Science professor to know about designing good software. This requires practice, and Computer Science professors typically don&#039;t write *any* software. Ever.</description>
		<content:encoded><![CDATA[<p>Great point. However, robustness is commonly addressed mathematically. Something like &#8220;rate of failure&#8221;. We probably could model mathematically all elements on the second list.</p>
<p>It seems to me that the first list describes &#8220;core Computer Science&#8221; whereas the second list is more about &#8220;good software design&#8221;. Don&#8217;t expect a Computer Science professor to know about designing good software. This requires practice, and Computer Science professors typically don&#8217;t write *any* software. Ever.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Moeller</title>
		<link>http://www.johndcook.com/blog/2009/06/04/software-challenges/comment-page-1/#comment-18817</link>
		<dc:creator>John Moeller</dc:creator>
		<pubDate>Fri, 05 Jun 2009 00:12:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2392#comment-18817</guid>
		<description>Excellent article.  I&#039;m in absolute agreement.  Since I&#039;m in training to be an algorithmist, I can&#039;t quite say that it&#039;s a good idea to ignore the first list :-) (with the exception of graphics; I really don&#039;t care about visual UX, because there are people far better at it than me).  But I agree; algorithms are best implemented as a module.

My experience as a software engineer has taught me that every single item in the second list &lt;em&gt;will cost time&lt;/em&gt;.  These are all items that must be considered from design through maintenance, but are too often attempted as turnkey implementations or duct tape/spackle/bailing wire at the last minute.</description>
		<content:encoded><![CDATA[<p>Excellent article.  I&#8217;m in absolute agreement.  Since I&#8217;m in training to be an algorithmist, I can&#8217;t quite say that it&#8217;s a good idea to ignore the first list <img src='http://www.johndcook.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (with the exception of graphics; I really don&#8217;t care about visual UX, because there are people far better at it than me).  But I agree; algorithms are best implemented as a module.</p>
<p>My experience as a software engineer has taught me that every single item in the second list <em>will cost time</em>.  These are all items that must be considered from design through maintenance, but are too often attempted as turnkey implementations or duct tape/spackle/bailing wire at the last minute.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.319 seconds -->

