<?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>skrud.net &#187; design</title>
	<atom:link href="http://skrud.com/articles/tag/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://skrud.com</link>
	<description>Trust Your Geekflex</description>
	<lastBuildDate>Mon, 24 Nov 2008 20:13:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Brief Impressions from OOPSLA (Part 1)</title>
		<link>http://skrud.com/articles/2007/10/23/brief-impressions-from-oopsla-part-1/</link>
		<comments>http://skrud.com/articles/2007/10/23/brief-impressions-from-oopsla-part-1/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 13:05:40 +0000</pubDate>
		<dc:creator>Skrud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[oopsla]]></category>
		<category><![CDATA[soen]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.skrud.net/articles/2007/10/23/brief-impressions-from-oopsla-part-1/</guid>
		<description><![CDATA[Being at OOPSLA is like seeing a live show of all the blogs that I read. The discussions are profound, and they&#8217;re everywhere, at every turn.  The attendees at ooPSLA all seem passionate, smart and opinionated. I&#8217;m learning incredible amounts just being around it all!

Anecdote from Rebecca Wirfs-Brock: &#8220;What&#8217;s the difference between an extroverted [...]]]></description>
			<content:encoded><![CDATA[<p>Being at OOPSLA is like seeing a live show of all the blogs that I read. The discussions are profound, and they&#8217;re <em>everywhere</em>, at every turn.  The attendees at ooPSLA all seem passionate, smart and opinionated. I&#8217;m learning incredible amounts just being around it all!</p>

<p>Anecdote from <a href="http://www.wirfs-brock.com/rebeccasblog.html">Rebecca Wirfs-Brock</a>: &#8220;What&#8217;s the difference between an extroverted software developer and an introverted software developer? The extroverted one stares at <em>your</em> feet when talking to you.&#8221;</p>

<p>Quote from <a href="http://st-www.cs.uiuc.edu/~droberts/">Don Roberts</a>: &#8220;Teaching C++ to freshmen makes me feel like a child molester.&#8221;</p>

<p>Here&#8217;s the fancy jersey that all student volunteers get to wear this year. I love the colours!</p>

<p><a href='http://www.skrud.net/articles/2007/10/23/brief-impressions-from-oopsla-part-1/oopsla-2007-jersey/' rel='attachment wp-att-2454' title='OOPSLA 2007 Jersey'><img src='http://www.skrud.net/files/oopsla_jersey.jpg' alt='OOPSLA 2007 Jersey' /></a></p>

<p>Apparently, attendees often try to buy Student Volunteer shirts at the conference &#8212; or afterwards on eBay. I&#8217;m not sure I want to sell mine. I think it&#8217;ll be an awesome souvenir.</p>
]]></content:encoded>
			<wfw:commentRss>http://skrud.com/articles/2007/10/23/brief-impressions-from-oopsla-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Design is a Social Activity</title>
		<link>http://skrud.com/articles/2007/10/23/software-design-is-a-social-activity/</link>
		<comments>http://skrud.com/articles/2007/10/23/software-design-is-a-social-activity/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 05:26:14 +0000</pubDate>
		<dc:creator>Skrud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[linguistics]]></category>
		<category><![CDATA[oopsla]]></category>
		<category><![CDATA[soen]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.skrud.net/articles/2007/10/23/software-design-is-a-social-activity/</guid>
		<description><![CDATA[Early Sunday morning at ooPSLA I had the pleasure of participating in DesignFest &#8216;07. The concept is simple: Get people to try attacking the same problem but in different ways, and have them compare notes at the end. We were a pretty small collection of people, ranging from programmers working in various industries (military, medicine, [...]]]></description>
			<content:encoded><![CDATA[<p>Early Sunday morning at <a href="http://www.oopsla.org">ooPSLA</a> I had the pleasure of participating in <a href="http://www.oopsla.org/oopsla2007/index.php?page=program/designfest/">DesignFest &#8216;07</a>. The concept is simple: Get people to try attacking the same problem but in different ways, and have them compare notes at the end. We were a pretty small collection of people, ranging from programmers working in various industries (military, medicine, academia), to consultants, professors, and students.</p>

<p>The problem we were given came from <a href="http://st-www.cs.uiuc.edu/~droberts/">Don Roberts</a>, whose wife is a veterinarian. We were tasked with coming up with a design that would allow a veterinary hospital to keep track of its patients and their owners and bill them appropriately. Sounds simple, until you realize that you can have race horses owned by multiple people, each with a different percentage stake&#8230; and, of course, many more complications. The group quickly divided into two. One group wanted to try a pure <a href="en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development</a> (TDD) approach, while others wanted to go for a <a href="http://en.wikipedia.org/wiki/Software_prototyping">Prototype</a>. I was in the prototype camp.</p>

<p>The interesting thing about a prototype, is that while the actual <em>development</em> is quick (in theory), there&#8217;s still a good deal of work that needs to go into the design <em>before</em> you can start programming. A prototype is usually a set of minimal functional requirements that sort of work. In that sense, it&#8217;s not too different from &#8220;hacking&#8221;. (Yes, we got into a discussion about &#8220;prototyping vs. hacking&#8221; that derailed us for a few minutes). What happened was we ended up focusing all of our energy (and time) on coming up with a solid, complete Object-Oriented design for our solution.  The result of our design was little more than a class diagram on paper, but we were able to work through every use case thrown at us.</p>

<p>The TDD team found that they, too, needed some initial design work to be done before they could start writing the test cases that would yield code. I have trouble wrapping my head around a pure TDD approach. I understand how TDD can work if your requirements are <em>well-defined</em> and you <em>already have a design that you can code tests against</em>. The idea is that you write test cases for the design <em>before</em> you write the actual code. They will fail initially, and your goal as a programmer is to <em>make them pass</em>. In that sense, it is indeed Test-Driven <em>Development</em>. I&#8217;m not sure the concept can be extended to Test-Driven <em>Design</em>.  The TDD team had little more than one test case, but they had actual <em>code</em> for one of the use cases, which is more than what we had.</p>

<p>The ensuing discussion was extremely stimulating. It&#8217;s amazing what happens when you get a bunch of really smart software geeks in a room together.</p>

<p>The key realization that I took away from this experience was that <strong>software design is a <em>social</em> activity</strong>.  Even though we hadn&#8217;t met each other previously, our team had to <em>work together</em>. We had to help each other out and make sure we were <em>all</em> on the same page. We had to <em>communicate</em>. It was amazing that we didn&#8217;t have a lot of trouble doing it, though. We mostly seemed to agree and moved along at very reasonable pace. Maybe it&#8217;s just because we&#8217;ve all trained our brains on OOP for so long.</p>

<p>One question in the discussion stuck in my head the most, and I&#8217;m still thinking about it. Don asked &#8220;What is the <em>language</em> of design?&#8221;. Since software is collaborative and social, it follows that like any human language, we must take some concept from our minds and communicate it to someone else. If any non-programmer happened to be walking by our table, we would have sounded like the <a href="http://en.wikipedia.org/wiki/Darmok">Children of Tamar</a>. Our speech consisted of terms taken from object-oriented programming (&#8221;object&#8221;, &#8220;class&#8221;, &#8220;instance&#8221;), UML (&#8221;association&#8221;, &#8220;composition&#8221;, &#8220;aggregation&#8221;), and Design Patterns (&#8221;state pattern&#8221;, &#8220;template method&#8221;, &#8220;strategy&#8221;). And that was just the spoken part.</p>

<p>Software Design has a <em>grammar</em>. There is a way of communicating design that involves a vocabulary as well as a set of rules describing how to put sentences together. And I don&#8217;t mean <em>English</em>. Design is more like a mash-up that derives itself from UML and Design Patterns and English. Whatever it is, we need to ensure that those designs we have floating around in our heads can remain intact after we&#8217;ve thrown them into the ether. I think this is where a <em>formal</em> design language specification like UML falls short. It&#8217;s so restrictive that most UML tools require you to input far too much information before they&#8217;ll display a simple diagram. Thus defeating the purpose. UML diagrams need to be free-flowing and erasable. The language doesn&#8217;t have to be <em>perfect</em>, it has to be <em>understood</em>. More importantly, it doesn&#8217;t have to be understood by a computer &#8212; that&#8217;s what programmers are for. But programmers are people. So, design has to be understood by people. People are capable of parsing an imperfect sentence that might not be &#8220;grammatical&#8221; according to a formal specification, but can still be understood by those natural language processing mechanisms we call brains. It all comes back to software design being a social activity.</p>
]]></content:encoded>
			<wfw:commentRss>http://skrud.com/articles/2007/10/23/software-design-is-a-social-activity/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Canadian Money &amp; Design</title>
		<link>http://skrud.com/articles/2006/07/17/canadian-money-design/</link>
		<comments>http://skrud.com/articles/2006/07/17/canadian-money-design/#comments</comments>
		<pubDate>Mon, 17 Jul 2006 12:27:52 +0000</pubDate>
		<dc:creator>Skrud</dc:creator>
				<category><![CDATA[canada]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.skrud.net/2006/07/17/canadian-money-design/</guid>
		<description><![CDATA[During my early morning digging I was pointed to a critique on the design of Canadian bills which was an entertaining and fascinating read. I was led there from a link on Kathy Sierra&#8217;s post Does the US Suck at Design?, which itself is an interesting reflection on the differences in cultures between the U.S. [...]]]></description>
			<content:encoded><![CDATA[<p>During my early morning digging I was pointed to a <a href="http://www.underconsideration.com/speakup/archives/002094.html">critique on the design of Canadian bills</a> which was an entertaining and fascinating read. I was led there from a link on Kathy Sierra&#8217;s post <a href="http://headrush.typepad.com/creating_passionate_users/2006/07/does_the_us_suc.html">Does the US Suck at Design?</a>, which itself is an interesting reflection on the differences in cultures between the U.S. and the rest of the world in terms of aesthetics.</p>
]]></content:encoded>
			<wfw:commentRss>http://skrud.com/articles/2006/07/17/canadian-money-design/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Engine, New Design</title>
		<link>http://skrud.com/articles/2006/03/29/new-engine-new-design/</link>
		<comments>http://skrud.com/articles/2006/03/29/new-engine-new-design/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 01:00:00 +0000</pubDate>
		<dc:creator>Skrud</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[metablogging]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[school]]></category>

		<guid isPermaLink="false">http://www.skrud.net/2006/03/29/new-engine-new-design/</guid>
		<description><![CDATA[I&#8217;ve been meaning to do this for a while, and after hacking around all week I&#8217;ve finally gotten around to it. I switched my blog over to Typo. Typo is a blogging platform built with Ruby on Rails. The biggest advantage of Typo, is that I can hack it up, make it my own, and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to do this for a while, and after hacking around all week I&#8217;ve finally gotten around to it. I switched my blog over to <a href="http://www.typosphere.org">Typo</a>. Typo is a blogging platform built with <a href="http://www.rubyonrails.org">Ruby on Rails</a>. The biggest advantage of Typo, is that <em>I</em> can hack it up, make it my own, and pretty much do whatever I want with it. I love Ruby, and I love Rails, and it&#8217;s a pleasure to hack through Typo.</p>

<p>I learned a lot of stuff while coercing Typo to let static pages accept comments (for example, the <a href="/pages/about">about</a> and <a href="/pages/deaddocs">Dead?Docs</a> pages). I also added loads of stuff to the wordpress importer script so that it will import static pages, as well as convert categories to tags, and some other things.</p>

<h3>The Logical Counter-point</h3>

<p>Why should I switch to a blogging platform that needs my own modifications, when I can just keep on using <a href="http://www.wordpress.org">Wordpress</a>, without any problems or modifications at all? </p>

<p>The answer: I needed a change, and change is fun. Learning is a huge motivation, and playing around with <a href="http://www.rubyonrails.org">Rails</a> and <a href="http://www.typosphere.org">Typo</a> is a knowledge catalyst. :)</p>

<h3>What about the old design? That thing was awesome!</h3>

<p>I got bored of it. It&#8217;s my site, I can do what I want. :P (Don&#8217;t worry, I backed everything up first). I was especially sick of the dark colour scheme. The whole white-on-purple thing &#8230; it&#8217;s so <em>emo</em>, I don&#8217;t think it reflected how <em>I</em> felt anymore.</p>

<h3>Neither does your new design, you&#8217;re a crappy web designer.</h3>

<p>I don&#8217;t like using third-party themes available on web sites all over the place for a number of reasons: I like having something homegrown and it&#8217;s good to refresh my memory of <acronym title="eXtensible HyperText Mark-up Language">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym> every now and then. I also like the fact that my site looks different from <em>all the other Typo sites out there</em>. Sure, <a href="http://typo.leevigraham.com/">Origami</a> is a beautiful theme, but it&#8217;s not <em>mine</em>. If it still bugs you, send your stylesheets to drskrud at gmail.</p>

<h3>Lies! You&#8217;re procrastinating and you know it!</h3>

<p>I have a huge <abbr title="Software Design Project">SOEN 390</abbr> project work on. It&#8217;s a Task Manager written in <acronym title="Java 2 Enterprise Edition">J2EE</acronym> and Servlets. I am <em>so sick</em> of task management right now that I needed to clear my head and work with a framework that I enjoy working with: <a href="http://www.rubyonrails.org">Rails</a>. I can&#8217;t imagine I&#8217;ll be very productive to MyTeam if I simply continue to bitch about Java, the SoenEA2 &#8220;framework&#8221;, Tomcat, Internet Explorer &#8230;</p>

<p>Sure I also have a chat server and client to implement, from scratch, for my System Software Design course. I&#8217;ve been letting my brain&#8217;s passive daemon processes handle the problem-solving on that one over the past week or so, and I think a design is formulating. Accorind a recent <a href="http://www.lifehacker.com/software/mind-hacks/increase-your-creativity-slack-off-161397.php">Lifehacker article</a>, slacking off is a great way to increase one&#8217;s creativity.</p>

<p>There&#8217;s also an in-class presentation to be given in our User Interface tutorial on Friday morning, but we got the bulk of that done today, and I think we&#8217;re stylishly ready.</p>

<p>As always, feel free to leave your comments, and marvel at the really cool <acronym title="Asynchronous Javascript And XML">AJAX</acronym> comment form&#8230; :)</p>
]]></content:encoded>
			<wfw:commentRss>http://skrud.com/articles/2006/03/29/new-engine-new-design/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
