<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>something learned comments on Half-Baked Epiphany</title>
    <link>http://somethinglearned.com/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>something learned comments</description>
    <item>
      <title>"Half-Baked Epiphany" by trevor</title>
      <description>&lt;p&gt;Browsing when I should be working, I learned something when I came across this &lt;a href="http://www.garrettdimon.com/archives/the-crossover-designers-and-programmers"&gt;little essay&lt;/a&gt;.  Garrett&amp;#8217;s ideas are interesting but some of the comments really struck a chord.&lt;/p&gt;


	&lt;p&gt;One comment in particular talks about &amp;#8220;cogs&amp;#8221;.  To paraphrase &amp;#8211; a designer starts from how something looks, building cogs to support it, while a programmer starts from a cog and drapes a skin over it to act as an interface.&lt;/p&gt;


	&lt;p&gt;What&amp;#8217;s interesting is &amp;#8220;cogs&amp;#8221;.  That&amp;#8217;s pretty visual isn&amp;#8217;t it?&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s also nothing like how I operate as a programmer.  I don&amp;#8217;t imagine discrete machine parts turning in concert, I imagine discrete entities &lt;em&gt;talking&lt;/em&gt; to each other.  Nouns and verbs.&lt;/p&gt;


	&lt;p&gt;When I express a problem in my head I don&amp;#8217;t see the solution unfold, I &lt;em&gt;hear&lt;/em&gt; it.&lt;/p&gt;


	&lt;p&gt;Think fast: Observer or Listener?  Granted, they aren&amp;#8217;t exactly the same thing but they address similar needs.  What do you instinctively reach for?  Do you imagine your objects are watching for changes or listening for changes?&lt;/p&gt;


	&lt;p&gt;Does it even matter?  Maybe.&lt;/p&gt;


	&lt;p&gt;It may be why &lt;a href="http://www.37signals.com/svn/archives/001050.php"&gt;starting with the interface&lt;/a&gt; feels a little unnatural to me.  Of course it makes sense &amp;#8211; starting with the interface helps to ensure early on that your priorities are aligned with the priorities of the person paying the bills.&lt;/p&gt;


	&lt;p&gt;I think why I&amp;#8217;ve felt it unnatural is because an interface is something you see (it&amp;#8217;s not called a &amp;#8216;display&amp;#8217; for nothing) and something you touch.  It passively waits for you to poke and prod.  It&amp;#8217;s a viewpoint that&amp;#8217;s habit more than anything else &amp;#8211; I spent too long writing code and then grafting on the interface when the designers were done.&lt;/p&gt;


	&lt;p&gt;The &amp;#8220;half-baked epiphany&amp;#8221; is that I&amp;#8217;ve probably sold myself short.  Not to insult your intelligence (dear reader) by stating the obvious, but &amp;#8220;the visual&amp;#8221; speaks too.  I need to spend more time giving the users an appropriate vocabulary to talk to my code.&lt;/p&gt;

</description>
      <pubDate>Wed, 18 May 2005 14:41:23 EDT</pubDate>
      <guid>&lt;a href="/articles/2005/05/18/half-baked-epiphany"&gt;Half-Baked Epiphany&lt;/a&gt;</guid>
      <link>&lt;a href="/articles/2005/05/18/half-baked-epiphany"&gt;Half-Baked Epiphany&lt;/a&gt;</link>
    </item>
  </channel>
</rss>
