{"id":495,"date":"2004-10-14T10:20:00","date_gmt":"2004-10-14T14:20:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2004\/10\/14\/constraints-your-best-bud-in-design\/"},"modified":"2004-10-14T10:20:00","modified_gmt":"2004-10-14T14:20:00","slug":"constraints-your-best-bud-in-design","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/10\/constraints-your-best-bud-in-design\/","title":{"rendered":"Constraints; your best bud in design"},"content":{"rendered":"<p>I have the utmost respect for\n<a href=\"http:\/\/pluralsight.com\/blogs\/dbox\/\">Don Box<\/a>\nand his work, but I have to wonder whether he&#8217;s pulling my chain, or just honestly\nmissing the point about the value of architectural constraints when\n<a href=\"http:\/\/pluralsight.com\/blogs\/dbox\/archive\/2004\/10\/13\/2762.aspx\">he writes<\/a>;<\/p>\n\n<blockquote>\nBTW, while I do claim that you can solve the majority of the world&#8217;s problems using an arbitrary handful of operations, I never claim that actually requiring (or even recommending) the world to do so is a good idea.  It&#8217;s a wonderful thought experiment, but trying to evangelize that the world only requires a fixed number of verbs is quite odd.\n<\/blockquote>\n\n<p>How to put this respectfully, and without sounding condescending, hmm&#8230;\nIt&#8217;s tough, because as I see it, the fundamental theorem of software architecture\n(and design in general, for that matter) is that only through constraint is\nutility generated.  This is what the work of luminaries such as\n<a href=\"http:\/\/www.ece.utexas.edu\/~perry\/work\/papers\/swa-sen.pdf\">Dewayne Perry and Alex Wolf<\/a>,\nand\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/software_arch.htm\">Roy Fielding<\/a>\ntaught us (for software architecture, at least &#8211; others such as\n<a href=\"http:\/\/www.patternlanguage.com\/leveltwo\/ca.htm\">Christopher Alexander<\/a>\nhave done it in other fields).  How do you tell somebody like Don that, without getting\nhis knickers in a twist?  I&#8217;m stumped.  But it&#8217;s something that needs to be said, and\nas my regular readers will know, it&#8217;s not a task I shy away from. 8-)<\/p>\n\n<p>So IMO, there&#8217;s really two separate fundamental misunderstandings going on here,\nand until the first &#8211; the role of constraints in design &#8211; is understood, the second\n&#8211; the value of the uniform interface &#8211; can probably not be fully appreciated.<\/p>\n\n<p>It seems that well-intentioned efforts such as\n<a href=\"http:\/\/www.pacificspirit.com\/blog\/2004\/10\/13\/wsget\">Dave&#8217;s latest<\/a>\nare trying to bridge the divide via incremental progress; if only we tweaked\nthis, or hacked that, we&#8217;d have something which could have the best of both\nworlds!  Sorry, but successful design just doesn&#8217;t happen like that.  You need\nthe big picture, and to have the big picture you need to <em>fully<\/em>\nunderstand the architecture of the two systems you&#8217;re trying to bridge.<\/p>\n\n<p>P.S. Peter Lindberg\n<a href=\"http:\/\/tesugen.com\/archives\/04\/10\/james-falen-poem\">spotted<\/a>\na James Fallen poem relevant to this topic;<\/p>\n\n<pre>\nEvery task involves constraint,\nSolve the thing without complaint;\nThere are magic links and chains\nForged to loose our rigid brains.\nStructures, structures, though they bind,\nStrangely liberate the mind.\n<\/pre>","protected":false},"excerpt":{"rendered":"I have the utmost respect for Don Box and his work, but I have to wonder whether he&#8217;s pulling my chain, or just honestly missing the point about the value of architectural constraints when he writes; BTW, while I do claim that you can solve the majority of the world&#8217;s problems using an arbitrary handful [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-495","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=495"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/495\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}