<?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: Lessons learned: Are you solving the right problem?</title>
	<atom:link href="http://www.drmaciver.com/2009/06/lessons-learned-are-you-solving-the-right-problem/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drmaciver.com/2009/06/lessons-learned-are-you-solving-the-right-problem/</link>
	<description></description>
	<lastBuildDate>Mon, 06 Feb 2012 22:56:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: david</title>
		<link>http://www.drmaciver.com/2009/06/lessons-learned-are-you-solving-the-right-problem/#comment-915</link>
		<dc:creator>david</dc:creator>
		<pubDate>Wed, 10 Jun 2009 17:24:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=751#comment-915</guid>
		<description>Right. When the requirements are handed to you by someone who you can&#039;t interact with on a technical level you may unfortunately end up with cases where you might as well try to move mountains as drop requirements. It&#039;s sad. :-( 

The document tagging example has the pleasant feature of being purely technical: From the end user point of view it simply has no visible effect except that their themes suddenly get a lot better. So from their point of view no requirements have been dropped! So this advice is still useful even in the case where the external functionality is written in stone.

One way that can sometimes help with the client facing interaction is to simplify by separating. e.g. to take my silly coffee example &quot;Well, I *could* build you a thing which does that. But how about I buy you a computer and a coffee maker instead?&quot;. i.e. rather than trying to simultaneously satisfy the full set of requirements you offer to satisfy sets of them separately. But I must admit to having only limited experience with trying this in practice.

I also tend to solve the problem by evading it. These days I&#039;m very much in the technical guts of the software rather than on the very user facing side. And I love it that way. :-)</description>
		<content:encoded><![CDATA[<p>Right. When the requirements are handed to you by someone who you can&#8217;t interact with on a technical level you may unfortunately end up with cases where you might as well try to move mountains as drop requirements. It&#8217;s sad. :-( </p>
<p>The document tagging example has the pleasant feature of being purely technical: From the end user point of view it simply has no visible effect except that their themes suddenly get a lot better. So from their point of view no requirements have been dropped! So this advice is still useful even in the case where the external functionality is written in stone.</p>
<p>One way that can sometimes help with the client facing interaction is to simplify by separating. e.g. to take my silly coffee example &#8220;Well, I *could* build you a thing which does that. But how about I buy you a computer and a coffee maker instead?&#8221;. i.e. rather than trying to simultaneously satisfy the full set of requirements you offer to satisfy sets of them separately. But I must admit to having only limited experience with trying this in practice.</p>
<p>I also tend to solve the problem by evading it. These days I&#8217;m very much in the technical guts of the software rather than on the very user facing side. And I love it that way. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://www.drmaciver.com/2009/06/lessons-learned-are-you-solving-the-right-problem/#comment-914</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Wed, 10 Jun 2009 17:15:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=751#comment-914</guid>
		<description>I love it, but I have two problems.

1) You&#039;re quite lucky in that you can push back on the requirements, as in your document tagging example. I&#039;ve never been so lucky: the mere suggestion of simplifying leads the analyst/salesperson/customer/manager to begin to have epileptic fits, followed quickly by frothing at the mouth, fainting spells, and the stammering of thousands of reasons why the solution must literally be the hardest possible one or it will do no good.

2) Since no rationalization works for simplification of requirements, I attempt simplification by assumption-reduction. I try to treat problems like Sun-Earth-Moon problems, where I can ignore the effects of the moon to get into the ballpark then add it back in to improve my results. But, as I&#039;ve learned the very, very hard way, in places where there &quot;are&quot; thousands of reasons for extreme complexity, every problem is an n-body problem.

I&#039;m sure you&#039;ve encountered these; how do you deal with them?

To be clear, I don&#039;t deny your hypothesis that reducing complexity in the problem makes a linear-plus improvement in the solution complexity. It&#039;s my strong agreement with it that leads me to continually bang my head against the walls of (1) and (2).</description>
		<content:encoded><![CDATA[<p>I love it, but I have two problems.</p>
<p>1) You&#8217;re quite lucky in that you can push back on the requirements, as in your document tagging example. I&#8217;ve never been so lucky: the mere suggestion of simplifying leads the analyst/salesperson/customer/manager to begin to have epileptic fits, followed quickly by frothing at the mouth, fainting spells, and the stammering of thousands of reasons why the solution must literally be the hardest possible one or it will do no good.</p>
<p>2) Since no rationalization works for simplification of requirements, I attempt simplification by assumption-reduction. I try to treat problems like Sun-Earth-Moon problems, where I can ignore the effects of the moon to get into the ballpark then add it back in to improve my results. But, as I&#8217;ve learned the very, very hard way, in places where there &#8220;are&#8221; thousands of reasons for extreme complexity, every problem is an n-body problem.</p>
<p>I&#8217;m sure you&#8217;ve encountered these; how do you deal with them?</p>
<p>To be clear, I don&#8217;t deny your hypothesis that reducing complexity in the problem makes a linear-plus improvement in the solution complexity. It&#8217;s my strong agreement with it that leads me to continually bang my head against the walls of (1) and (2).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: david</title>
		<link>http://www.drmaciver.com/2009/06/lessons-learned-are-you-solving-the-right-problem/#comment-912</link>
		<dc:creator>david</dc:creator>
		<pubDate>Wed, 10 Jun 2009 08:57:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=751#comment-912</guid>
		<description>As I understand it the type inference implementation has been improved in 2.8.</description>
		<content:encoded><![CDATA[<p>As I understand it the type inference implementation has been improved in 2.8.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesper Nordenberg</title>
		<link>http://www.drmaciver.com/2009/06/lessons-learned-are-you-solving-the-right-problem/#comment-911</link>
		<dc:creator>Jesper Nordenberg</dc:creator>
		<pubDate>Wed, 10 Jun 2009 07:27:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.drmaciver.com/?p=751#comment-911</guid>
		<description>Hmm, I&#039;m a bit puzzled how Martin&#039;s versions even work. If I&#039;m not mistaken a type parameter can&#039;t be inferred from an implicit parameter, so how is &quot;That&quot; bound to the correct type at call site? Will it require explicit binding or is the type inferrer improved in 2.8.0?</description>
		<content:encoded><![CDATA[<p>Hmm, I&#8217;m a bit puzzled how Martin&#8217;s versions even work. If I&#8217;m not mistaken a type parameter can&#8217;t be inferred from an implicit parameter, so how is &#8220;That&#8221; bound to the correct type at call site? Will it require explicit binding or is the type inferrer improved in 2.8.0?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

