Object Mentor Blog: Sufficient Design means Damned Good Design.tag:blog.objectmentor.com,2005:TypoTypo2010-04-28T18:03:18-05:00Uncle Boburn:uuid:7af1f4ce-c8d6-40c7-aa72-57d9c40f32be2010-04-28T18:02:10-05:002010-04-28T18:03:18-05:00Sufficient Design means Damned Good Design.<p>@JoshuaKerievsky wrote a <a href="https://elearning.industriallogic.com/gh/submit?Action=PageAction&album=blog2009&path=blog2009/2010/sufficientDesign&devLanguage=Java">blog</a> entitled “Sufficient Design”.</p>
<p>Josh makes this point:</p>
<blockquote>
<p>‘Yet some programmers argue that the software design quality of every last piece of code ought to be as high as possible. “Produce clean code or you are not a software craftsman!”’</p>
</blockquote>
<p>He goes on to say:</p>
<blockquote>
<p>“Yet ultimately the craftsmanship advice fails to consider simple economics: If you take the time to craft code of little or moderate value to users, you’re wasting time and money.”</p>
</blockquote>
<p>Now this sounds like heresy, and I can imagine that software craftsmanship supporters (like me) are ready to storm the halls of Industrial Logic and string the blighter up by his toenails!</p>
<p>But hold on there craftsmen, don’t get the pitchforks out yet. Look at the scenario that Josh describes. It’s quite revealing.</p>
<p>Josh’s example of “not being a craftsman” is his niggling worry over a function that returns a string but in one derivative case ought to return a void.</p>
<p>Horrors! Horrors! He left a bit of evolved cruft in the design! Revoke his craftsman license and sick the dogs on him!</p>
<p>Ah, but wait. He also says that he spent a half-day trying to refactor this into a better shape but eventually had to give up.</p>
<p>The fool! The nincompoop! The anti-craftsman! A pox on him and all his ilk!</p>
<hr>
<p>OK, enough hyperbole. It seems to me that Josh was behaving exactly as a craftsman should. He was worrying about exactly the kinds of things a craftsman ought to worry about. He was making the kinds of pragmatic decisions a craftsman ought to make. He was not leaving a huge mess in the system and rushing on to the next feature to implement. Instead he was taking care of his code. The fact that he put so much energy, time, and thought into such a small issue as an inconsistent return type speaks volumes for Josh’s integrity as a software craftsman.</p>
<p>So, as far as Josh Kerievsky is concerned “Sufficient Design” is “Pretty Damned Good Design”.</p>
<p>Look, all our software will have little tiny warts. There’s no such thing as a perfect system. Craftsmen like Josh work hard to keep those warts as small as possible, and to sequester them into parts of the system where they can do the least harm.</p>
<p>So the only aspect of Josh’s post that I disagree with is his contention that the “craftsman” message is one of unrelenting perfection. Craftsmen are first and foremost pragmatists. They seek very high quality code; but they are not so consumed with perfection that they make foolish economic tradeoffs.</p><p>@JoshuaKerievsky wrote a <a href="https://elearning.industriallogic.com/gh/submit?Action=PageAction&album=blog2009&path=blog2009/2010/sufficientDesign&devLanguage=Java">blog</a> entitled “Sufficient Design”.</p>
<p>Josh makes this point:</p>
<blockquote>
<p>‘Yet some programmers argue that the software design quality of every last piece of code ought to be as high as possible. “Produce clean code or you are not a software craftsman!”’</p>
</blockquote>
<p>He goes on to say:</p>
<blockquote>
<p>“Yet ultimately the craftsmanship advice fails to consider simple economics: If you take the time to craft code of little or moderate value to users, you’re wasting time and money.”</p>
</blockquote>
<p>Now this sounds like heresy, and I can imagine that software craftsmanship supporters (like me) are ready to storm the halls of Industrial Logic and string the blighter up by his toenails!</p>
<p>But hold on there craftsmen, don’t get the pitchforks out yet. Look at the scenario that Josh describes. It’s quite revealing.</p>
<p>Josh’s example of “not being a craftsman” is his niggling worry over a function that returns a string but in one derivative case ought to return a void.</p>
<p>Horrors! Horrors! He left a bit of evolved cruft in the design! Revoke his craftsman license and sick the dogs on him!</p>
<p>Ah, but wait. He also says that he spent a half-day trying to refactor this into a better shape but eventually had to give up.</p>
<p>The fool! The nincompoop! The anti-craftsman! A pox on him and all his ilk!</p>
<hr>
<p>OK, enough hyperbole. It seems to me that Josh was behaving exactly as a craftsman should. He was worrying about exactly the kinds of things a craftsman ought to worry about. He was making the kinds of pragmatic decisions a craftsman ought to make. He was not leaving a huge mess in the system and rushing on to the next feature to implement. Instead he was taking care of his code. The fact that he put so much energy, time, and thought into such a small issue as an inconsistent return type speaks volumes for Josh’s integrity as a software craftsman.</p>
<p>So, as far as Josh Kerievsky is concerned “Sufficient Design” is “Pretty Damned Good Design”.</p>
<p>Look, all our software will have little tiny warts. There’s no such thing as a perfect system. Craftsmen like Josh work hard to keep those warts as small as possible, and to sequester them into parts of the system where they can do the least harm.</p>
<p>So the only aspect of Josh’s post that I disagree with is his contention that the “craftsman” message is one of unrelenting perfection. Craftsmen are first and foremost pragmatists. They seek very high quality code; but they are not so consumed with perfection that they make foolish economic tradeoffs.</p>Om Sai Toysurn:uuid:bd464420-a0c7-4bd2-8ca0-bc9f41fe77bd2012-07-22T05:55:50-05:002012-07-22T05:55:50-05:00Comment on Sufficient Design means Damned Good Design. by Om Sai Toys<p>hey! that’s a great article and i quite very happy to read it so keep posting and sharing your idea with us.</p>Om Sai Toysurn:uuid:ad8bafe4-2746-40ff-a23a-14698d3344cf2012-07-22T05:51:57-05:002012-07-22T05:51:57-05:00Comment on Sufficient Design means Damned Good Design. by Om Sai Toys<p>Probably the best post I’ve read so far this year. I find a new resource.
Great stuff guys. keep posting</p>kaftan dressesurn:uuid:051609db-ec51-4eef-9ee9-07ef2aaa00ad2012-06-26T06:11:15-05:002012-06-26T06:11:15-05:00Comment on Sufficient Design means Damned Good Design. by kaftan dresses<p>It’s great stuff. This is a really excellent read for me. Must agree that you are one of the coolest bloggers I ever saw</p>Visit US urn:uuid:928afcc2-2f6a-4b07-a388-6025b52a9a1d2012-06-26T05:51:22-05:002012-06-26T05:51:22-05:00Comment on Sufficient Design means Damned Good Design. by Visit US <p>Thanks for sharing your insights from a different point of view.</p>http://www.nuvodev.com/urn:uuid:6c0baa55-92d1-42a5-bdbf-5b40f89be3aa2012-06-26T05:01:03-05:002012-06-26T05:01:03-05:00Comment on Sufficient Design means Damned Good Design. by http://www.nuvodev.com/<p>I really enjoyed this site. This is such a Great resource that you are providing and you give it away for free. It gives in depth information. Thanks for this valuable information.</p>www.kickbackwithkava.comurn:uuid:0482b3a1-71d7-41b8-8fd5-62d9ca4b9dc52012-06-11T06:41:42-05:002012-06-11T06:41:42-05:00Comment on Sufficient Design means Damned Good Design. by www.kickbackwithkava.com<p>I say this post is really interesting!Got what you are trying to say here.Very impressive and really good information.Thanks for sharing.</p>Slugger's Dugout urn:uuid:20913f8f-672f-4d1c-9c0f-56e8f44d80ee2012-06-11T06:25:11-05:002012-06-11T06:25:11-05:00Comment on Sufficient Design means Damned Good Design. by Slugger's Dugout <p>I see where you come from.I love the taste of creation.You have such great ideas and i really appreciate everything here.Keep moving with the great work!</p>lelomurn:uuid:fa1c16ad-14d5-4c53-b10a-f3243bd39d0d2012-06-06T06:53:16-05:002012-06-06T06:53:16-05:00Comment on Sufficient Design means Damned Good Design. by lelom<p>Numerous people during the stadium or by seeing the reside telecast will attracted through the skillful supreme superstar as well as through <a href="http://www.cheap-hats-caps.com/new-orleans-hornets-hat-9fifty-snapback-blackred-p-3014.html" rel="nofollow">the fitted hats</a> on their heads.</p>Plumber in Miami urn:uuid:34178d74-516b-48e3-a3d3-ddba9505a1172012-05-18T05:28:22-05:002012-05-18T05:28:22-05:00Comment on Sufficient Design means Damned Good Design. by Plumber in Miami <p>All I can say is wow! I really feel you’ve made valid and interesting points here and I concur. The difference between a good writer and a great writer is presentation. You’re a great writer.</p>bullet proof vest urn:uuid:0842e3c9-46e0-44da-a54c-7fa8e2edda182012-05-18T05:25:27-05:002012-05-18T05:25:27-05:00Comment on Sufficient Design means Damned Good Design. by bullet proof vest <p>I wish I had your talent and ability to research and write. I can only aspire to write articles like this. You have my attention with this content. Thank you.</p>master in education urn:uuid:bb387c40-76bb-4cb3-82e7-a79d6e8ab06e2012-05-18T05:22:53-05:002012-05-18T05:22:53-05:00Comment on Sufficient Design means Damned Good Design. by master in education <p>I like your presentation and agree with much of this information. You kept my attention throughout the whole article, and that’s a task. Thank you.</p>blood pressure monitors urn:uuid:9174baa4-c66c-4eee-ad43-a5b8028f26b02012-05-18T05:11:57-05:002012-05-18T05:11:57-05:00Comment on Sufficient Design means Damned Good Design. by blood pressure monitors <p>Your information is really great. I like this article. You have given rise to many points that I agree with and have enjoyed reviewing. You have a lot of really good information in this article.</p>furniture stores in memphis tn urn:uuid:e27af3fa-777d-497f-9864-a2da3ca32ab22012-05-18T05:10:45-05:002012-05-18T05:10:45-05:00Comment on Sufficient Design means Damned Good Design. by furniture stores in memphis tn <p>I don’t make it a habit to make comments on many articles, but this one deserves attention. I agree with the data you have written so eloquently here. Thank you.</p>public administration degree urn:uuid:bbbba4ad-45e0-42f8-9225-ab1ac5cc03322012-05-18T05:07:16-05:002012-05-18T05:07:16-05:00Comment on Sufficient Design means Damned Good Design. by public administration degree <p>You are obviously very good at gathering data and writing it in clear terms for your readers. I like your unique take on this topic and I agree with you on a lot of it.</p>leadership classes urn:uuid:bdaf565d-6d5c-4148-badc-8aaeb64affca2012-05-18T05:04:45-05:002012-05-18T05:04:45-05:00Comment on Sufficient Design means Damned Good Design. by leadership classes <p>This is an informative article on this subject and I really enjoyed the read. My regards and appreciation to the writer of this amazing material.</p>bespoke kitchens urn:uuid:a2d44985-7cd4-45bb-9917-eca8914d86d22012-05-14T04:51:57-05:002012-05-14T04:51:57-05:00Comment on Sufficient Design means Damned Good Design. by bespoke kitchens <p>Your article shows lots of talent in this area and I hope to see more work from you in the future. I will show my fellow colleagues this well-written content.</p>used forklifts urn:uuid:d9ad5298-49f9-4de8-bae9-2dbb0de321682012-05-14T04:27:18-05:002012-05-14T04:27:18-05:00Comment on Sufficient Design means Damned Good Design. by used forklifts <p>I’m normally not the kind of person to post my opinion on people’s blog posts, but for your write up I just needed to do it. I have been cruising in your blog a lot nowadays and I’m super impressed, I think you might really emerge as one of the main opinions for your market. :)</p>frameless glass shower doors urn:uuid:a82d30f4-38e0-4696-8c04-32e909aa7d302012-05-14T04:21:08-05:002012-05-14T04:21:08-05:00Comment on Sufficient Design means Damned Good Design. by frameless glass shower doors <p>Thanks for posting this info. I just want to let you know that I just check out your site and I find it very interesting and informative. I can’t wait to read lots of your posts. :)</p>Pet Cremation Urns urn:uuid:7053a6ba-5a6f-4e41-a096-71f962c3c9122012-05-14T04:14:05-05:002012-05-14T04:14:05-05:00Comment on Sufficient Design means Damned Good Design. by Pet Cremation Urns <p>I have been looking for content like this for a research project I am working. Thanks very much. :)</p>bladblazer urn:uuid:3e4593f9-5ceb-4301-a41d-e2a6ae9f77bc2012-05-14T04:08:33-05:002012-05-14T04:08:33-05:00Comment on Sufficient Design means Damned Good Design. by bladblazer <p>This is like my fifth time stopping by your homepage. You should write more please, this information will help me and others. Try proof reading a couple of times before publishing. Keep writing though. :)</p>st kilda apartments urn:uuid:b5504a4e-6601-4b57-ad2c-a96ef78d77852012-05-14T04:03:21-05:002012-05-14T04:03:21-05:00Comment on Sufficient Design means Damned Good Design. by st kilda apartments <p>If you are planning vacation together with your friends and family, this might be the perfect time for it to come across :)</p>skip bins urn:uuid:40ba33ee-11e3-4296-80ac-71ea676dafa32012-05-14T03:56:18-05:002012-05-14T03:56:18-05:00Comment on Sufficient Design means Damned Good Design. by skip bins <p>I have honestly enjoyed reading the information you have shared through this article. I agree on most all points of interest, but I need to consider some with much thought.</p>International Trade Software urn:uuid:cb883313-be81-4243-b387-c5e3d50a2ca02012-05-14T03:53:21-05:002012-05-14T03:53:21-05:00Comment on Sufficient Design means Damned Good Design. by International Trade Software <p>Reading your article has allowed me to take my plans and change them with ideas I have never seen prior to this. Now I can make what I had already planned, and make it better.</p>Caribbean Airlines Reservations urn:uuid:620459fb-0632-412c-a297-5662442906832012-05-14T03:34:13-05:002012-05-14T03:34:13-05:00Comment on Sufficient Design means Damned Good Design. by Caribbean Airlines Reservations <p>This is an outstanding article. Articles like this are uncommon in the online world. I know, because I read a lot of content online. You have contributed valuable, interesting and well-written information on this subject.</p>conveyancing quote urn:uuid:8a4c6fe2-0271-40f6-b734-8183b92f81ad2012-05-14T03:26:19-05:002012-05-14T03:26:19-05:00Comment on Sufficient Design means Damned Good Design. by conveyancing quote <p>I cringe when I think of the work you must have done putting this information together. I am glad you did it though and appreciate it. You’ve hit the mark.</p>