<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>select * &#187; software design</title>
	<atom:link href="http://aptoma.com/select.star/category/software-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://aptoma.com/select.star</link>
	<description>web-development, and other issues we really, really care about</description>
	<lastBuildDate>Sun, 19 Feb 2012 18:00:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Dialogue based dictatorship</title>
		<link>http://aptoma.com/select.star/2012/02/19/dialogue-based-dictatorship/</link>
		<comments>http://aptoma.com/select.star/2012/02/19/dialogue-based-dictatorship/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 18:00:23 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[process]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1321</guid>
		<description><![CDATA[We&#8217;re planning some major improvements to how our products are used. It so happened that one project triggered the other, and we&#8217;re left with about 6-9 projects (depending on how you group them) that needs to be coordinated in order to achieve the aims. Coordination takes time from developers, so we have to find an [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re planning some major improvements to how our products are used. It so happened that one project triggered the other, and we&#8217;re left with about 6-9 projects (depending on how you group them) that needs to be coordinated in order to achieve the aims.</p>
<p>Coordination takes time from developers, so we have to find an effective solution. This is a short story on how we have proceded this far.</p>
<p>One person is in charge of overall coordination of all projects. This person is the program director (which happens to be me). My initial job was to write about the common motivation for all projects, and a little more specifically about each project. Just a few short sentences.</p>
<p>The next step was to appoint project leads for planning each project that had dependencies. Our principles for project leaders are simple.</p>
<p><em><strong>We trust you. Go ahead, be a dictator, make decisions.</strong></em></p>
<p>So, you start out with trust. Trust is good. We are a competent set of grown-ups. To keep this trust during the project, and to avoid any doubts and second guessing at the end of planning, we encourage the following process.</p>
<ul>
<li><strong>Listen to opinions</strong>. All perspectives are valuable. (Customers and co-workers alike) This means that you have to seek these opinions out early in the process, before establishing assumptions and making decisions.</li>
<li><strong>Disregard opinions if you have to.</strong> If there is a very specific opinion that you&#8217;ll like to disregard, document the opinion and the reason why you disregard it.</li>
<li><strong>Inform, but don&#8217;t stop and wait.</strong> No approvals needed, we trust you, remember?</li>
</ul>
<p>Consider the figure below.</p>
<p><a href="http://aptoma.com/select.star/wp-content/uploads/2012/02/Screen-shot-2012-02-16-at-09.19.28.png"><img class="size-full wp-image-1322 alignnone" title="Screen shot 2012-02-16 at 09.19.28" src="http://aptoma.com/select.star/wp-content/uploads/2012/02/Screen-shot-2012-02-16-at-09.19.28.png" alt="" width="420" height="413" /></a></p>
<p>Think of each colored circle as an opinion. It&#8217;s a good quality that there are difference of opinions due to differing perspectives. (Completely overlapping circles signals group think, be alarmed, be very alarmed.) The area where all opinions overlap are the <em>design by committee</em> area. This is the crappy solution where no-one disagrees, but no-one is happy. Have no doubt about it, design by committee is what democracy looks like. It is safe and, it is steady, and slow, and populistic. It&#8217;s good for society, but bad for risky innovation. Democracy is modus operandi for many companies, and they&#8217;re usually stuck.</p>
<p><strong>Then, there&#8217;s the workshop</strong></p>
<p>Interrelated topics requires a lot of back-and-forth coordination, and a workshop is a great arena for resolving these issues, as well as exploring more opinions.</p>
<p>We&#8217;ve recently gathered at a workshop, and each project has presented their current planning status, and then proceeded to address open questions and dependencies. This requires a bit of going back and forth between topics, but at the end of the workshop (we spent 2 days), there has been so much information and clarification back and forth, that the project leads are able to go back to the drawing board, and make wise and informed dictatoral decisions for the final stages of the design and planning.</p>
<p>We expect the dictatorship part to work, as it relies on trust, and is time-boxed. You&#8217;re not a dictator for life, just per project. If you get corrupted by power, and ultimately lose the trust of your peers, you will not be able to lead future projects with any efficacy.</p>
<p>We expect some controversial areas in the final designs.</p>
<p>The figure below might represent the different forms of decision making:</p>
<p><a href="http://aptoma.com/select.star/wp-content/uploads/2012/02/Dialogue-based-dictatorship.png"><img title="Dialogue based dictatorship" src="http://aptoma.com/select.star/wp-content/uploads/2012/02/Dialogue-based-dictatorship.png" alt="" width="100%" /></a></p>
<p>We&#8217;re not done with these designs quite, yet. So let&#8217;s wait and see how this goes before we congratulate ourselves too much.</p>
<p>(And if you&#8217;re left thinking that the process described above is what good leadership is all about: listening, careful intellectual consideration, but also being able to make the best informed decision regardless of some unresolved controversies, then you&#8217;re right. Easier said then done, though.)</p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2012/02/19/dialogue-based-dictatorship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Expect Our Buildings to Work, They Are Pieces of Art</title>
		<link>http://aptoma.com/select.star/2008/09/16/dont-expect-our-buildings-to-work-they-are-pieces-of-art/</link>
		<comments>http://aptoma.com/select.star/2008/09/16/dont-expect-our-buildings-to-work-they-are-pieces-of-art/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 07:30:43 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[software design]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[improvement]]></category>
		<category><![CDATA[quality]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=374</guid>
		<description><![CDATA[Read the title of the article and you&#8217;ll immediately realize how wrong things can go when you define your profession as art. The title is a quote from some fancy schmancy architect doofus. What he really is saying is that &#8220;Don&#8217;t Expect Our Buildings to Work, They Are $100 Million Pieces of Shit&#8221;. A definition [...]]]></description>
			<content:encoded><![CDATA[<p>Read the title of the article and you&#8217;ll immediately realize how wrong things can go when you <a href="http://aptoma.com/select.star/2008/08/18/software-engineering-is-an-art-form/">define your profession as art</a>. The title is a quote from some fancy schmancy architect doofus. What he really is saying is that &#8220;Don&#8217;t Expect Our Buildings to Work, They Are $100 Million Pieces of Shit&#8221;.</p>
<p>A definition of art is definitively in order. Defining it to simply mean &#8220;to make something look great&#8221; have caused many a disaster while combined with the profession of an architect. Some architects &#8212; or even quite many, it may seem &#8212; evidently do define their work this way. A few take it one step further to the definition &#8220;Make a great looking building AND make sure it does not collapse&#8221;, but it still just won&#8217;t cut it. It&#8217;s not good enough.</p>
<p><a href="http://aptoma.com/select.star/wp-content/uploads/2008/08/building1.jpg"><img class="alignnone wp-image-380" style="border:0;" title="building1" src="http://aptoma.com/select.star/wp-content/uploads/2008/08/building1.jpg" alt="" width="575" height="202" /></a></p>
<p>In 1997 BBC aired a series about buildings called &#8220;How Buildings Learn&#8221; (links at the end). A study mentioned in these series states that only 1 in 10 buildings are revisited by the architect upon completion. They don&#8217;t go back. &#8220;It&#8217;s just too discouraging&#8221; as one architect was quoted saying. If architects show no apparent interest in how people experience their buildings, how do we expect them to improve in making usable housing? I have already asserted that <em>without feedback, there is no improvement</em>. Not going back is a bad mistake, at best. Poor sons of bitches.<em><br />
</em></p>
<h3>A Set of Qualities in the Art of Software Engineering</h3>
<p>When we define ourselves as artists, within the business of software engineering, we also stand the chance of making similar mistakes. We will have to define the universe within which we wish to be artists. The universe must not be too big, and not too small.</p>
<p>I would like to define our universe as a set of software qualities.</p>
<ol>
<li><strong>Usability</strong> &#8211; The art of making something that is a blast to use.</li>
<li><strong>Reliability</strong> &#8211; The art of making something that works as it should, consistently.</li>
<li><strong>Efficiency</strong> &#8211; The art of creating software that is lean; it economizes running time and space consumption.</li>
<li><strong>Modifiability</strong> &#8211; The art of making something that can evolve with time, that is maintainable.</li>
<li><strong>Testability</strong> &#8211; The art of creating software that is easy to test.</li>
<li><strong>Portability</strong> &#8211; The art of creating software that is easily moved about, when needed.</li>
<li><strong>Understandability</strong> &#8211; The art of creating software that another engineer actually can comprehend.</li>
</ol>
<p>If all of these qualities are met with elegance, we consider ourselves to have created a true piece of art. And notice how the user is considered right there at the top. Our main goals must always be to leverage the user, and to solve his most important problems first (i.e. what do you need an unusable but reliable and efficient application for?)</p>
<p>Also, I reckon that considering the color and shape (design) is an outright insult, if not all of the above qualities are given careful consideration first.</p>
<p>But I am digressing, we were talking about architects, weren&#8217;t we?</p>
<h3>Qualities in the Art of Making Buildings</h3>
<p><a href="http://aptoma.com/select.star/wp-content/uploads/2008/08/building2.jpg"><img class="alignnone size-full wp-image-384" title="building2" src="http://aptoma.com/select.star/wp-content/uploads/2008/08/building2.jpg" alt="" width="575" height="123" /></a></p>
<p>Architects do not seem to present their customer with a clear list of requirements that they have to consider, and this is a root cause for a lot of wrath. I thought I&#8217;d help them out in starting a little brain-storming on the subject.</p>
<p>So what does an architect need to consider while <a href="http://sethgodin.typepad.com/seths_blog/2008/08/is-architect-a.html"><em>architecting</em></a> and designing a building?</p>
<p><strong>Usability</strong></p>
<p>Usability in buildings is best described by <a href="http://www.newyorker.com/reporting/2008/04/21/080421fa_fact_paumgarten?currentPage=all">elevators having enough capacity</a>, that it&#8217;s bright and pleasant, that stairs are easily accessible and that people generally feel comfortable moving around and being stationary for hours on end in this building.</p>
<p><strong>Minglability</strong></p>
<p>Yes, I&#8217;m making these words up. Get over it. The building from which you run your business should be designed so that even though your business occupy a lot of floors, or even all floors, people should run into each other in <em>chance encounters</em> where the micro-meetings takes place and information is distributed informally and organically.</p>
<p><strong>Maintainability</strong></p>
<p>The building is easy to clean. Repairing the electrical wiring, adding more wiring, fixing pipes, replacing broken walls etc. is, if not straight forward, at least possible.</p>
<p><strong>Modifiability</strong></p>
<p>No building must be expected to be built just right at once. The human activity taking place inside the building is far too complex to fully predict ahead of building it. (Notice the analogy to software engineering and the <a href="http://aptoma.com/select.star/2008/07/09/scrum-kills-your-plan-but-hits-your-business-targets/">failure of deterministic, up-front planning</a>). Thus the building should be able to adapt to changing requirements. I guess this means that walls can be moved, piping can be re-routed without demolishing core structure of the building, storage areas can be turned into offices and the other way around. A lot of the construction will (and should) take place after the building is &#8220;done&#8221;, and thus this should be facilitated by the architecture and design.</p>
<p>This is the very minimum of quality attributes that should make up the universe within which the architects should be calling themselves artists. (I know, I know, engineers should also be involved in constructing a building, but we need someone to hassle about this, and the architects are just such an easy target for this discussion. But, please, include engineers as well.). The main point is that forgetting the important requirements, oversimplifying the complex task of creating usable buildings that evolve, leaves you with too many constraints, and a building that is potentially inhabitable for anyone trying to run a serious business, or live a happy life, in general.</p>
<p><strong>When all else fails</strong></p>
<p>If few or none of the requirements above are met, there&#8217;s a way out. It&#8217;s not lean, but sometimes it has to be done.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/-1qgx95SFds&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/-1qgx95SFds&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object></p>
<p>Let&#8217;s hope the next time, the architects behind these buildings do a better job.</p>
<h3>References</h3>
<ol>
<li>BBC Episodes on &#8220;How buildings learn&#8221; are found on the (stinking) Google Video service: Episodes <a href="http://video.google.com/videoplay?docid=8639555925486210852">1</a>, <a href="http://video.google.com/videoplay?docid=5088653796598486022">2</a>, <a href="http://video.google.com/videoplay?docid=6141960341438553915">3</a>, <a href="http://video.google.com/videoplay?docid=-8761299882173964035">4</a>, <a href="http://video.google.com/videoplay?docid=5407846553590755822">5</a>, <a href="http://video.google.com/videoplay?docid=2283224496826631552">6</a>.</li>
<li>List of qualities inspired by <a href="http://www.amazon.com/Facts-Fallacies-Software-Engineering-Development/dp/0321117425">Facts and Fallacies of Software Engineering</a>, by Robert L. Glass)</li>
<li><a href="http://www.truefilms.com/archives/2008/08/how_buildings_l.php">Kevin Kelly&#8217;s original story on the episodes in True Film</a>.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2008/09/16/dont-expect-our-buildings-to-work-they-are-pieces-of-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

