<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Thinking inside a bigger box - Latest Comments in Teaching good software design</title><link>http://thinkinginsideabiggerbox.disqus.com/</link><description></description><atom:link href="https://thinkinginsideabiggerbox.disqus.com/teaching_good_software_design/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Wed, 10 Jun 2009 06:19:57 -0000</lastBuildDate><item><title>Re: Teaching good software design</title><link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/#comment-10692225</link><description>&lt;p&gt;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 "how to do it". 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.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/"> TelecommunicationS</dc:creator><pubDate>Wed, 10 Jun 2009 06:19:57 -0000</pubDate></item><item><title>Re: Teaching good software design</title><link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/#comment-1799119</link><description>&lt;p&gt;A typo at the end, sorry: In any case, giving general advice when I don't know the problem well enough often fails.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Trond Arve</dc:creator><pubDate>Mon, 30 Jun 2008 10:05:19 -0000</pubDate></item><item><title>Re: Teaching good software design</title><link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/#comment-1799118</link><description>&lt;p&gt;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.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Trond Arve</dc:creator><pubDate>Mon, 30 Jun 2008 10:03:57 -0000</pubDate></item><item><title>Re: Teaching good software design</title><link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/#comment-1799106</link><description>&lt;p&gt;Hi, Eivind&lt;/p&gt;&lt;p&gt;Thanks for another insightful comment. As you say: We shouldn'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;/p&gt;&lt;p&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't lead people astray. With OO... not so much.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Johannes Brodwall</dc:creator><pubDate>Tue, 24 Jun 2008 12:11:30 -0000</pubDate></item><item><title>Re: Teaching good software design</title><link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/#comment-1799108</link><description>&lt;p&gt;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't mean that we should stop doing it, does it?&lt;/p&gt;&lt;p&gt;I think a keyword you mention here is "needlessly". I use to teach that if you don't possess the modelling and abstraction capacity required for doing good object-orientation, you'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.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eivind</dc:creator><pubDate>Tue, 24 Jun 2008 06:22:59 -0000</pubDate></item><item><title>Re: Teaching good software design</title><link>http://johannesbrodwall.com/2008/06/22/teaching-good-software-design/#comment-1799112</link><description>&lt;p&gt;Being new to the term I had a good laugh; you just nailed it. It seems somewhat related to aesthetiritis, where a programmer (probably one new to, and sold on, Ruby on Rails) is so obsessed with making his code "beautiful" that it becomes totally ungraspable.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marius Mathiesen</dc:creator><pubDate>Mon, 23 Jun 2008 03:17:38 -0000</pubDate></item></channel></rss>