<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"	>
<channel>
	<title>Comments on: Teaching good software design</title>
	<atom:link href="http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/</link>
	<description>Johannes Brodwall&#039;s Musings on Software Architecture and Programming</description>
	<lastBuildDate>Fri, 13 Apr 2012 19:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By:  TelecommunicationS</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-127619</link>
		<dc:creator> TelecommunicationS</dc:creator>
		<pubDate>Wed, 10 Jun 2009 15:19:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-127619</guid>
		<description>Designing usable software is difficult, and teaching others how to do it is worse! Although useful methodologies exist, it is not possible to teach someone simply &quot;how to do it&quot;. To be capable of doing more than producing Microsoft clones, student designers need a broader approach to the task, one that has important attitudinal, aesthetic and creative components.</description>
		<content:encoded><![CDATA[<p>Designing usable software is difficult, and teaching others how to do it is worse! Although useful methodologies exist, it is not possible to teach someone simply &#8220;how to do it&#8221;. To be capable of doing more than producing Microsoft clones, student designers need a broader approach to the task, one that has important attitudinal, aesthetic and creative components.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By:  TelecommunicationS</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-126373</link>
		<dc:creator> TelecommunicationS</dc:creator>
		<pubDate>Wed, 10 Jun 2009 08:19:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-126373</guid>
		<description>Designing usable software is difficult, and teaching others how to do it is worse! Although useful methodologies exist, it is not possible to teach someone simply &quot;how to do it&quot;. To be capable of doing more than producing Microsoft clones, student designers need a broader approach to the task, one that has important attitudinal, aesthetic and creative components.</description>
		<content:encoded><![CDATA[<p>Designing usable software is difficult, and teaching others how to do it is worse! Although useful methodologies exist, it is not possible to teach someone simply &#8220;how to do it&#8221;. To be capable of doing more than producing Microsoft clones, student designers need a broader approach to the task, one that has important attitudinal, aesthetic and creative components.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trond Arve</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-61623</link>
		<dc:creator>Trond Arve</dc:creator>
		<pubDate>Mon, 30 Jun 2008 14:05:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-61623</guid>
		<description>A typo at the end, sorry: In any case, giving general advice when I don&#039;t know the problem well enough often fails.</description>
		<content:encoded><![CDATA[<p>A typo at the end, sorry: In any case, giving general advice when I don&#8217;t know the problem well enough often fails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trond Arve</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-61622</link>
		<dc:creator>Trond Arve</dc:creator>
		<pubDate>Mon, 30 Jun 2008 14:03:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-61622</guid>
		<description>One piece of advice that might be useful in most situations is to start learning about your problem domain. Writing tests is a way to start learning. Working with examples you have to think about how your solution is to be designed and used by clients. Of course there are many more ways to learn, like drawing models on a whiteboard, discussing the problem with others or just start hacking. I tend to prefer tests, but I appreciate that testing requires experience and can be a hard path to follow. In any case, giving general advice when you I know the problem well enough often fails.</description>
		<content:encoded><![CDATA[<p>One piece of advice that might be useful in most situations is to start learning about your problem domain. Writing tests is a way to start learning. Working with examples you have to think about how your solution is to be designed and used by clients. Of course there are many more ways to learn, like drawing models on a whiteboard, discussing the problem with others or just start hacking. I tend to prefer tests, but I appreciate that testing requires experience and can be a hard path to follow. In any case, giving general advice when you I know the problem well enough often fails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trond Arve</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-84558</link>
		<dc:creator>Trond Arve</dc:creator>
		<pubDate>Mon, 30 Jun 2008 12:05:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-84558</guid>
		<description>A typo at the end, sorry: In any case, giving general advice when I don&#039;t know the problem well enough often fails.</description>
		<content:encoded><![CDATA[<p>A typo at the end, sorry: In any case, giving general advice when I don&#39;t know the problem well enough often fails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trond Arve</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-84557</link>
		<dc:creator>Trond Arve</dc:creator>
		<pubDate>Mon, 30 Jun 2008 12:03:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-84557</guid>
		<description>One piece of advice that might be useful in most situations is to start learning about your problem domain. Writing tests is a way to start learning. Working with examples you have to think about how your solution is to be designed and used by clients. Of course there are many more ways to learn, like drawing models on a whiteboard, discussing the problem with others or just start hacking. I tend to prefer tests, but I appreciate that testing requires experience and can be a hard path to follow. In any case, giving general advice when you I know the problem well enough often fails.</description>
		<content:encoded><![CDATA[<p>One piece of advice that might be useful in most situations is to start learning about your problem domain. Writing tests is a way to start learning. Working with examples you have to think about how your solution is to be designed and used by clients. Of course there are many more ways to learn, like drawing models on a whiteboard, discussing the problem with others or just start hacking. I tend to prefer tests, but I appreciate that testing requires experience and can be a hard path to follow. In any case, giving general advice when you I know the problem well enough often fails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-59765</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Tue, 24 Jun 2008 16:11:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-59765</guid>
		<description>Hi, Eivind

Thanks for another insightful comment. As you say: We shouldn&#039;t stop doing object-orientation. My experience is that I should only stop recommending that others choose object-oriented solutions when asked for my input.

Trying to force people to use object-orientation (or testing for that matter) without proper understanding is probably not a good idea. With teaching tests, at least I know what to point to as good examples that won&#039;t lead people astray. With OO... not so much.</description>
		<content:encoded><![CDATA[<p>Hi, Eivind</p>
<p>Thanks for another insightful comment. As you say: We shouldn&#8217;t stop doing object-orientation. My experience is that I should only stop recommending that others choose object-oriented solutions when asked for my input.</p>
<p>Trying to force people to use object-orientation (or testing for that matter) without proper understanding is probably not a good idea. With teaching tests, at least I know what to point to as good examples that won&#8217;t lead people astray. With OO&#8230; not so much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes Brodwall</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-84556</link>
		<dc:creator>Johannes Brodwall</dc:creator>
		<pubDate>Tue, 24 Jun 2008 14:11:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-84556</guid>
		<description>Hi, Eivind&lt;br&gt;&lt;br&gt;Thanks for another insightful comment. As you say: We shouldn&#039;t stop doing object-orientation. My experience is that I should only stop recommending that others choose object-oriented solutions when asked for my input.&lt;br&gt;&lt;br&gt;Trying to force people to use object-orientation (or testing for that matter) without proper understanding is probably not a good idea. With teaching tests, at least I know what to point to as good examples that won&#039;t lead people astray. With OO... not so much.</description>
		<content:encoded><![CDATA[<p>Hi, Eivind</p>
<p>Thanks for another insightful comment. As you say: We shouldn&#39;t stop doing object-orientation. My experience is that I should only stop recommending that others choose object-oriented solutions when asked for my input.</p>
<p>Trying to force people to use object-orientation (or testing for that matter) without proper understanding is probably not a good idea. With teaching tests, at least I know what to point to as good examples that won&#39;t lead people astray. With OO&#8230; not so much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eivind</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-59687</link>
		<dc:creator>Eivind</dc:creator>
		<pubDate>Tue, 24 Jun 2008 10:22:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-59687</guid>
		<description>There are a lot of deseases out there, for example architecturitis, analysis paralysis and big design up-front, just to mention a three. And why not add object-orientation itself to the list? It is much like eating and drinking, it may give you a lot of pleasure, but abused, it often results in a lot of pain. But that doesn&#039;t mean that we should stop doing it, does it?

I think a keyword you mention here is &quot;needlessly&quot;. I use to teach that if you don&#039;t possess the modelling and abstraction capacity required for doing good object-orientation, you&#039;d better stick to the plain, old, structured way of thinkink. At least, that gives you something that is working in the short term, although perhaps not as modifyable in the future. Object-orientation and architectures are good for managing changes. At the same time, changeability implies complexity, so they ought to be kept at a minimum. In fact, we may make everything changeable, at the price of making is so complex that it is not changeable any more. That, may be, is a good definition of architecturitis.</description>
		<content:encoded><![CDATA[<p>There are a lot of deseases out there, for example architecturitis, analysis paralysis and big design up-front, just to mention a three. And why not add object-orientation itself to the list? It is much like eating and drinking, it may give you a lot of pleasure, but abused, it often results in a lot of pain. But that doesn&#8217;t mean that we should stop doing it, does it?</p>
<p>I think a keyword you mention here is &#8220;needlessly&#8221;. I use to teach that if you don&#8217;t possess the modelling and abstraction capacity required for doing good object-orientation, you&#8217;d better stick to the plain, old, structured way of thinkink. At least, that gives you something that is working in the short term, although perhaps not as modifyable in the future. Object-orientation and architectures are good for managing changes. At the same time, changeability implies complexity, so they ought to be kept at a minimum. In fact, we may make everything changeable, at the price of making is so complex that it is not changeable any more. That, may be, is a good definition of architecturitis.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eivind</title>
		<link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/comment-page-1/#comment-84555</link>
		<dc:creator>Eivind</dc:creator>
		<pubDate>Tue, 24 Jun 2008 08:22:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/06/22/teaching-good-software-design/#comment-84555</guid>
		<description>There are a lot of deseases out there, for example architecturitis, analysis paralysis and big design up-front, just to mention a three. And why not add object-orientation itself to the list? It is much like eating and drinking, it may give you a lot of pleasure, but abused, it often results in a lot of pain. But that doesn&#039;t mean that we should stop doing it, does it?&lt;br&gt;&lt;br&gt;I think a keyword you mention here is &quot;needlessly&quot;. I use to teach that if you don&#039;t possess the modelling and abstraction capacity required for doing good object-orientation, you&#039;d better stick to the plain, old, structured way of thinkink. At least, that gives you something that is working in the short term, although perhaps not as modifyable in the future. Object-orientation and architectures are good for managing changes. At the same time, changeability implies complexity, so they ought to be kept at a minimum. In fact, we may make everything changeable, at the price of making is so complex that it is not changeable any more. That, may be, is a good definition of architecturitis.</description>
		<content:encoded><![CDATA[<p>There are a lot of deseases out there, for example architecturitis, analysis paralysis and big design up-front, just to mention a three. And why not add object-orientation itself to the list? It is much like eating and drinking, it may give you a lot of pleasure, but abused, it often results in a lot of pain. But that doesn&#39;t mean that we should stop doing it, does it?</p>
<p>I think a keyword you mention here is &#8220;needlessly&#8221;. I use to teach that if you don&#39;t possess the modelling and abstraction capacity required for doing good object-orientation, you&#39;d better stick to the plain, old, structured way of thinkink. At least, that gives you something that is working in the short term, although perhaps not as modifyable in the future. Object-orientation and architectures are good for managing changes. At the same time, changeability implies complexity, so they ought to be kept at a minimum. In fact, we may make everything changeable, at the price of making is so complex that it is not changeable any more. That, may be, is a good definition of architecturitis.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

