<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>Comments on: Designing for the future</title>
	<atom:link href="http://conal.net/blog/posts/designing-for-the-future/feed" rel="self" type="application/rss+xml" />
	<link>http://conal.net/blog/posts/designing-for-the-future</link>
	<description>Inspirations &#38; experiments, mainly about denotative/functional programming in Haskell</description>
	<lastBuildDate>Sat, 26 Sep 2020 21:06:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.17</generator>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/designing-for-the-future#comment-160</link>
		<dc:creator><![CDATA[conal]]></dc:creator>
		<pubDate>Tue, 25 Nov 2008 16:27:50 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=52#comment-160</guid>
		<description><![CDATA[&lt;p&gt;I just read a &lt;a href=&quot;http://blog.wolfram.com/2008/01/10/ten-thousand-hours-of-design-reviews/&quot; rel=&quot;nofollow&quot;&gt;post on Stephen Wolfram&#039;s blog&lt;/a&gt; that overlaps with what I&#039;m getting at above.  Here&#039;s a snippet:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In fundamental science, one starts from a bunch of phenomena, and then one tries to drill down to find out what’s underneath them—to try to find the root causes, the ultimate primitives, of what’s going on.&lt;/p&gt;
  
  &lt;p&gt;In science, if one does a good job at finding the primitives, then one can have a very broad theory that covers not just the phenomena one started from, but lots of others too.&lt;/p&gt;
  
  &lt;p&gt;And in software design, it’s the same kind of thing.&lt;/p&gt;
  
  &lt;p&gt;If one does a good job at finding the primitives, then one can build a very broad system that gives one not just the functionality one  was first thinking about, but lots more too.&lt;/p&gt;
&lt;/blockquote&gt;
]]></description>
		<content:encoded><![CDATA[<p>I just read a <a href="http://blog.wolfram.com/2008/01/10/ten-thousand-hours-of-design-reviews/" rel="nofollow">post on Stephen Wolfram&#8217;s blog</a> that overlaps with what I&#8217;m getting at above.  Here&#8217;s a snippet:</p>

<blockquote>
  <p>In fundamental science, one starts from a bunch of phenomena, and then one tries to drill down to find out what’s underneath them—to try to find the root causes, the ultimate primitives, of what’s going on.</p>
  
  <p>In science, if one does a good job at finding the primitives, then one can have a very broad theory that covers not just the phenomena one started from, but lots of others too.</p>
  
  <p>And in software design, it’s the same kind of thing.</p>
  
  <p>If one does a good job at finding the primitives, then one can build a very broad system that gives one not just the functionality one  was first thinking about, but lots more too.</p>
</blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/designing-for-the-future#comment-159</link>
		<dc:creator><![CDATA[conal]]></dc:creator>
		<pubDate>Fri, 14 Nov 2008 15:50:10 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=52#comment-159</guid>
		<description><![CDATA[&lt;p&gt;A reader asked:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Then what do you design for? 95%? 99%?  [...]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even 100% would not satisfy my goal of supporting creativity.
I don&#039;t design for preconceived use cases.
I design a coherent world that captures the uses I can think of while being a simple/general as possible.
(I measure simplicity in a particular way, by describing a precise math model.)
The anticipated uses serve to give me &lt;em&gt;hints&lt;/em&gt; about that world, rather than defining it.&lt;/p&gt;

&lt;p&gt;If a design meets my expected uses &lt;em&gt;and&lt;/em&gt; is very simple, then I&#039;m confident about it handing my unanticipated needs as well.
If it uses complexity (special cases) to address my expected uses, then I expect it will need more complexity thrown in to handle unexpected uses.&lt;/p&gt;

&lt;p&gt;As &lt;a href=&quot;http://scifac.ru.ac.za/cspt/hoare.htm&quot; rel=&quot;nofollow&quot;&gt;Tony Hoare said&lt;/a&gt; in his Turing Award lecture,&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is make it so complicated that there are no obvious deficiencies.&lt;/p&gt;
&lt;/blockquote&gt;
]]></description>
		<content:encoded><![CDATA[<p>A reader asked:</p>

<blockquote>
  <p>Then what do you design for? 95%? 99%?  [&#8230;]</p>
</blockquote>

<p>Even 100% would not satisfy my goal of supporting creativity.
I don&#8217;t design for preconceived use cases.
I design a coherent world that captures the uses I can think of while being a simple/general as possible.
(I measure simplicity in a particular way, by describing a precise math model.)
The anticipated uses serve to give me <em>hints</em> about that world, rather than defining it.</p>

<p>If a design meets my expected uses <em>and</em> is very simple, then I&#8217;m confident about it handing my unanticipated needs as well.
If it uses complexity (special cases) to address my expected uses, then I expect it will need more complexity thrown in to handle unexpected uses.</p>

<p>As <a href="http://scifac.ru.ac.za/cspt/hoare.htm" rel="nofollow">Tony Hoare said</a> in his Turing Award lecture,</p>

<blockquote>
  <p>I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is make it so complicated that there are no obvious deficiencies.</p>
</blockquote>
]]></content:encoded>
	</item>
</channel>
</rss>
