<?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>Pathfinder Development</title>
	<atom:link href="http://www.pathf.com/blogs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pathf.com/blogs</link>
	<description>Running commentary about agile development, user experience design and Ajax.</description>
	<lastBuildDate>Tue, 16 Mar 2010 13:42:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Teamicide</title>
		<link>http://www.pathf.com/blogs/2010/03/teamicide/</link>
		<comments>http://www.pathf.com/blogs/2010/03/teamicide/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 01:44:54 +0000</pubDate>
		<dc:creator>Perry Hertler</dc:creator>
				<category><![CDATA[Agile Coaching]]></category>
		<category><![CDATA[Agile Project Management]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4953</guid>
		<description><![CDATA[
A couple of years ago I had the benefit of seeing agile contrasted against waterfall with the same development team on the same project. The team had recently delivered the 1.1 version of a global web application. The customer then took over the project by replacing the project manager and business analysts with people who [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/teamicide/">Teamicide</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/12/velocity/' rel='bookmark' title='Permanent Link: You Shall Know Our Velocity!'>You Shall Know Our Velocity!</a></li><li><a href='http://www.pathf.com/blogs/2009/07/what-should-a-good-iteration-contain/' rel='bookmark' title='Permanent Link: What should a good iteration contain'>What should a good iteration contain</a></li><li><a href='http://www.pathf.com/blogs/2009/09/does-your-project-have-code-ownership-culture/' rel='bookmark' title='Permanent Link: Does your project have Code Ownership Culture?'>Does your project have Code Ownership Culture?</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p style="float: right"><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/03/srum2.jpg" alt="" style="float: right" height="240" border="1"></p>
<p style="float: left">A couple of years ago I had the benefit of seeing agile contrasted against waterfall with the same development team on the same project. The team had recently delivered the 1.1 version of a global web application. The customer then took over the project by replacing the project manager and business analysts with people who had no agile experience.</p>
<p>Up until after the 1.1 release our highly productive team absolutely loved coming to work in the morning. We were eating up storing points with an insatiable appetite and pressure to perform came from inside the team. Frequently our roles would cross. Developers would help out Testers and BAs as needed and the Testers and BAs worked very closely together to document proper story acceptances.</p>
<p>When agile was dropped for a more traditional process, things deteriorated very quickly (teamicide). I noticed major negative consequences in user stories, project planning, management, and software development.</p>
<p><strong>Stories</strong></p>
<p>The agile team that was together from inception through release 1.1 benefited from testable stories with high value features. Developers worked with Business Analysts to identify tasks within a story that would require significant development time so that the Product Owner could make informed decisions on whether or not a particular feature provided enough business value to warrant the cost. The BAs also enjoyed lower cost alternatives provided by developers. Only minor changes to a story were allowed after a pair of developers started on it. Significant changes required a new story.</p>
<p>After release 1.1, pseudo-stories were created with many nice to have, but not critical requirements with no developer input. Story requirements changed throughout the iteration including after the story delivery.</p>
<p><strong>Planning</strong></p>
<p>The agile team assigned points to stories during the inception. The amount of points completed during an iteration determined the team's velocity. The average velocity over the last two iterations was used to predict release dates.</p>
<p>The new project manager on the post-1.1 team planned out the next four releases in Microsoft Project with no input from the developers. The releases had unrealistic delivery dates for features that were not yet defined. This is the classic "phony deadline" technique used by managers to (de)motivate developers.</p>
<p><strong>Project Management</strong></p>
<p>The agile project manager was deliberately inattentive to enable the team to self-organize. This resulted in very high morale because developers felt free to contribute ideas and felt a sense of project ownership. The agile project manager's primary role was to remove obstacles that would otherwise distract the team.</p>
<p>The new project manager micromanaged all aspects of the project. We continued to have a stand-up every morning, but as each person gave a status, the PM would ask further questions like "how much longer until the story is completed?".</p>
<p><strong>Development</strong></p>
<p>Pre-teamicide, pairing time was protected, the velocity was high, the code quality was good. Pressure to perform came from other developers. All of this was achieved a sustainable pace with little or no overtime.</p>
<p>Post-teamicide, development time was highly fragmented through frequent meetings, phone calls, and IMs. The velocity was very low and pressure to perform came from the project manager who had set unreasonable deadlines. Large amounts of overtime were required, which led to many more bugs in design and code.</p>
<p><strong>Conclusion</strong></p>
<p>This project thoroughly convinced me of the effectiveness of the agile methodology. It was a great learning experience, but I hope it is not repeated!</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/teamicide/">Teamicide</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/12/velocity/' rel='bookmark' title='Permanent Link: You Shall Know Our Velocity!'>You Shall Know Our Velocity!</a></li><li><a href='http://www.pathf.com/blogs/2009/07/what-should-a-good-iteration-contain/' rel='bookmark' title='Permanent Link: What should a good iteration contain'>What should a good iteration contain</a></li><li><a href='http://www.pathf.com/blogs/2009/09/does-your-project-have-code-ownership-culture/' rel='bookmark' title='Permanent Link: Does your project have Code Ownership Culture?'>Does your project have Code Ownership Culture?</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/teamicide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who values your product and do you value them?</title>
		<link>http://www.pathf.com/blogs/2010/03/values-product/</link>
		<comments>http://www.pathf.com/blogs/2010/03/values-product/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 17:26:26 +0000</pubDate>
		<dc:creator>Michael Walkden</dc:creator>
				<category><![CDATA[Custom Application Development]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Development Best Practices]]></category>
		<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[Web Application Development]]></category>
		<category><![CDATA[uxd]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Product Design]]></category>
		<category><![CDATA[product management]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4923</guid>
		<description><![CDATA[
 photo credit: victoriapeckham
We have reached the most critical point on a project I'm working on.  After a few months we think we know enough about the domain and application to build a product road map that will take us to the first public release.  The proof of concept is complete.  The [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/values-product/">Who values your product and do you value them?</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/12/sdlc-product-decide/' rel='bookmark' title='Permanent Link: Your SDLC or Your Product – You Decide'>Your SDLC or Your Product – You Decide</a></li><li><a href='http://www.pathf.com/blogs/2010/01/user-driven-product-development/' rel='bookmark' title='Permanent Link: User Driven Product Development'>User Driven Product Development</a></li><li><a href='http://www.pathf.com/blogs/2008/09/build-half-a-product-not-a-half-assed-product-tips-on-clarity-and-focus-from-jason-fried-of-37signals/' rel='bookmark' title='Permanent Link: &#8220;Build half a product, not a half-assed product&#8221; &#8211; tips on clarity and focus from Jason Fried of 37Signals'>&#8220;Build half a product, not a half-assed product&#8221; &#8211; tips on clarity and focus from Jason Fried of 37Signals</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px"><a title="Anonymous Crowd" href="http://www.flickr.com/photos/victoriapeckham/164175205/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/03/164175205_9951e05eb6_m.jpg" border="0" alt="Anonymous Crowd" /></a><br />
<small><a title="Attribution License" href="http://creativecommons.org/licenses/by/2.0/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="victoriapeckham" href="http://www.flickr.com/photos/victoriapeckham/164175205/" target="_blank">victoriapeckham</a></small></div>
<p>We have reached the most critical point on a project I'm working on.  After a few months we think we know enough about the domain and application to build a product road map that will take us to the first public release.  The proof of concept is complete.  The design team has created a remarkable, genera changing product.  Additionally, the system is designed around real users we have been able to talk to and get feedback from.  We have put together an unbelievably good development team and built a backlog of stories with estimates.  We have been here before.  Putting together a design and backlog of stories is something we have done countless times...</p>
<p>The easy part is over.  Now the hard part begins.</p>
<p>Our research and user feedback tells us we have multiple potentialcustomer groups we can build the system for.  On one hand this is great news. We have a number of potential markets to choose from.  On the other, we don't have an infinite amount of time and money to build it for all of these groups.  We have to commit and go all in with one group. Right now, these are just some of the questions we are asking ourselves now:</p>
<ul>
<li>What customer group do we value the most?</li>
<li>What features do <em>they</em> value the most?</li>
<li>How expensive is it to build the ultimate product for each group?</li>
<li>What is the minimum viable product we can build for each group?</li>
<li>Which group is most likely to give feedback and partner with us to help refine our product?</li>
<li>How much feedback is this group likely to give you?</li>
<li>Are we missing some market window by passing on one group v.s. another?</li>
</ul>
<p>This is a critical point in the product's design.  Whichever user group we choose will be our customers.  Or another way of saying it:  They will be our <strong>ONLY</strong> customers.  Other customer groups aren't likely to be interested because we aren't building any features for them yet.</p>
<p>When designing a product do you consider what customer groups you are including and excluding?  Are you going to be happy with that choice for the foreseeable future?</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/values-product/">Who values your product and do you value them?</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/12/sdlc-product-decide/' rel='bookmark' title='Permanent Link: Your SDLC or Your Product – You Decide'>Your SDLC or Your Product – You Decide</a></li><li><a href='http://www.pathf.com/blogs/2010/01/user-driven-product-development/' rel='bookmark' title='Permanent Link: User Driven Product Development'>User Driven Product Development</a></li><li><a href='http://www.pathf.com/blogs/2008/09/build-half-a-product-not-a-half-assed-product-tips-on-clarity-and-focus-from-jason-fried-of-37signals/' rel='bookmark' title='Permanent Link: &#8220;Build half a product, not a half-assed product&#8221; &#8211; tips on clarity and focus from Jason Fried of 37Signals'>&#8220;Build half a product, not a half-assed product&#8221; &#8211; tips on clarity and focus from Jason Fried of 37Signals</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/values-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing has_role? in acl9</title>
		<link>http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9-2/</link>
		<comments>http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9-2/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:11:24 +0000</pubDate>
		<dc:creator>Sharad Jain</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4921</guid>
		<description><![CDATA[
acl9 is a an authorization library for rails applications. It is one of the widely used library if not the most widely used now. Our experience with acl9 shows that it might be heavy weight if your authorization needs are simpler (which most projects are) but could be useful for other projects.
If you've used acegi/spring-security [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9-2/">Optimizing has_role? in acl9</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/11/testing-various-roles-in-ruby-on-rails/' rel='bookmark' title='Permanent Link: Testing various roles in ruby on rails'>Testing various roles in ruby on rails</a></li><li><a href='http://www.pathf.com/blogs/2008/11/designing-for-security/' rel='bookmark' title='Permanent Link: The Truth About Designing For Security'>The Truth About Designing For Security</a></li><li><a href='http://www.pathf.com/blogs/2006/07/openfount_libra/' rel='bookmark' title='Permanent Link: Openfount Library Revisited'>Openfount Library Revisited</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm1.static.flickr.com/84/235453953_b565f23939_m_d.jpg" alt="" style="float: right" height="240" border="1"></p>
<p><a href="http://github.com/be9/acl9">acl9</a> is a an authorization library for rails applications. It is one of the widely used library if not the most widely used <a href="http://www.ruby-toolbox.com/categories/rails_authorization.html">now</a>. Our experience with acl9 shows that it might be heavy weight if your authorization needs are simpler (which most projects are) but could be useful for other projects.</p>
<p>If you've used <a href="http://www.acegisecurity.org/">acegi/spring-security</a> for authorization in your java apps, you know that acl9 is very similar in principle and hence very powerful. In addition to primary roles, it provides object level permissions which are stored in a generic way separately from the objects being controlled, all without the need for handcoding/distributing your authorization columns in each authorization-object tables.</p>
<p>One place where acl9 differs from acegi is how it doesn't differentiate between a role and a permission. Acegi signifies roles as global permission level which allows you to do certain things (some action on any object of a given class). Where as, a "permission" controls whether your can take that action on a certain object of a class or not. Acl9 calls them all "roles" (primary-roles and object-roles). As you can imagine, a given user may have a few roles in system but end up with lot and lots of permissions in system depending on how many objects user owns  etc. This may seem like good idea at first but it presents a unique problem which is not apparent at first. Since roles and permissions are not conceptually separate in acl9 - and that a user can have lots of them (few roles and lots of permissions) - prevents us from loading and caching them in memory. Why do we need to keep them in memory? Because you are querying user's primary roles most often in your rendering of pages.</p>
<p>For example, consider navigation-bar which is common in most applications. Different users are presented with different tabs in navigation-bar and this bar gets rendered on each request/response cycle. Whether to render a particular tab is conditional to whether a user has certain role (primary role in particular) or not. Since acl9 cannot keep all roles (and permissions) in memory, it has to perform database query every time it has to find whether a user has_role?(admin) or not. Given that there can be only a few primary-roles that the user will have in any system, it seems in-efficient to not cache them and go to database each time.</p>
<p>The solution would be to separate these primary-roles from permission-roles and cache them for each request. In acl9 this means overriding User.has_role? and user.has_role!.</p>
<pre>
class User
  def has_role?(role, object = nil)
    if object || !Role.primary?(role)
      super
    else
      primary_roles.collect(&amp;:name).include?(role.to_s)
    end
  end

  def has_role!(role, object = nil)
    super
    @primary_roles = extract_primary_roles if(Role.primary?(role))
  end

  def primary_roles
    @primary_roles ||= extract_primary_roles
  end

  def extract_primary_roles
     self.role_objects.select { |r| r.primary? }
  end
  private :extract_primary_roles
end
</pre>
<p>That does it. You cache the primary-roles and leverage those for has_role? queries.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9-2/">Optimizing has_role? in acl9</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/11/testing-various-roles-in-ruby-on-rails/' rel='bookmark' title='Permanent Link: Testing various roles in ruby on rails'>Testing various roles in ruby on rails</a></li><li><a href='http://www.pathf.com/blogs/2008/11/designing-for-security/' rel='bookmark' title='Permanent Link: The Truth About Designing For Security'>The Truth About Designing For Security</a></li><li><a href='http://www.pathf.com/blogs/2006/07/openfount_libra/' rel='bookmark' title='Permanent Link: Openfount Library Revisited'>Openfount Library Revisited</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pathfinder&#8217;s Mike Laurence wins Hack-a-thon for iPhone app</title>
		<link>http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9/</link>
		<comments>http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 16:49:31 +0000</pubDate>
		<dc:creator>Bernhard Kappe</dc:creator>
				<category><![CDATA[iPhone/Mobile]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[ipad development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone Development]]></category>
		<category><![CDATA[iphone framework]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4883</guid>
		<description><![CDATA[
This year's Day of Mobile had a number of interesting tracks, including the ever popular hack-a-thon.  
In the hack-a-thon, developers worked alone or in teams to build applications that targeted any one of the mobile platforms (iPhone, Blackberry, Android, Palm, Windows Phone) and presented their applications to the attendees to win prizes.
Our own Mike [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9/">Pathfinder&#8217;s Mike Laurence wins Hack-a-thon for iPhone app</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/05/6-gwt-resources/' rel='bookmark' title='Permanent Link: 6 GWT Resources for the iPhone'>6 GWT Resources for the iPhone</a></li><li><a href='http://www.pathf.com/blogs/2008/05/rails-developme/' rel='bookmark' title='Permanent Link: Rails Development for iPhone with rails_iui'>Rails Development for iPhone with rails_iui</a></li><li><a href='http://www.pathf.com/blogs/2008/07/developing-iphone-applications-using-ruby-on-rails-and-eclipse-part-2-displaying-iphone-content-to-the-client-also-up-on-ibm-developerworks/' rel='bookmark' title='Permanent Link: &#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks'>&#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/03/app-lighthouse-body-1.png" alt="app-lighthouse-body-1" title="app-lighthouse-body-1" width="160" class="right" /></p>
<p>This year's <a href="http://www.techinthemiddle.com/DayOfMobile/">Day of Mobile</a> had a number of interesting tracks, including the ever popular hack-a-thon.  </p>
<p>In the hack-a-thon, developers worked alone or in teams to build applications that targeted any one of the mobile platforms (iPhone, Blackberry, Android, Palm, Windows Phone) and presented their applications to the attendees to win prizes.</p>
<p>Our own Mike Laurence, who won the in in the open source category for developing an iPhone application for the <a href="http://lighthouseapp.com/">Lighthouse</a> issue tracking service.   In three hours.  </p>
<p>How?  By using our recently released <a href="http://www.pathf.com/ideas/open-source-projects/core-resource-iPhone-iPad-framework/">Core Resource Framework</a>, a local/remote resource management framework that accelerates the creation of API clients, our soon to be released DynamicCell project, and integrating with the Lighthouse API.  Pretty sweet.</p>
<p>I talked to Mike about it afterwards, and here's what he had to say:</p>
<blockquote><p>"Three hours is a pretty short time to develop an application, but this was a good chance to test out the Core Resource framework. I've been working on the framework itself for the last five months or so; for the hackathon I decided to see if I could actually make a working app in 3 hours. I ended up creating a Lighthouse account (bug tracking website) for the project, and because Lighthouse has a nice API, that's what I used as my source. I did get an app up and running in 3 hours, which was pretty exciting. It even looked decent, due to the other open source project I announced (DynamicCell.")</p></blockquote>
<p>The <a href="http://www.pathf.com/ideas/open-source-projects/core-resource-iPhone-iPad-framework/">Core Resources</a> framework is available now, and look for an announcement on the DynamicCell project in the next week or so.</p>
<p>We're building a fair number of<a href="http://www.pathf.com/services/ipad-and-iphone-application-development/"> iPhone and iPad</a> applications now, and it's great so have someone like Mike on the team and contributing back to the community.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9/">Pathfinder&#8217;s Mike Laurence wins Hack-a-thon for iPhone app</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/05/6-gwt-resources/' rel='bookmark' title='Permanent Link: 6 GWT Resources for the iPhone'>6 GWT Resources for the iPhone</a></li><li><a href='http://www.pathf.com/blogs/2008/05/rails-developme/' rel='bookmark' title='Permanent Link: Rails Development for iPhone with rails_iui'>Rails Development for iPhone with rails_iui</a></li><li><a href='http://www.pathf.com/blogs/2008/07/developing-iphone-applications-using-ruby-on-rails-and-eclipse-part-2-displaying-iphone-content-to-the-client-also-up-on-ibm-developerworks/' rel='bookmark' title='Permanent Link: &#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks'>&#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/optimizing-has_role-in-acl9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pathfinder sponsors the midVentures25</title>
		<link>http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/</link>
		<comments>http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 03:37:08 +0000</pubDate>
		<dc:creator>Bernhard Kappe</dc:creator>
				<category><![CDATA[Pathfinder News]]></category>
		<category><![CDATA[midVentures25]]></category>
		<category><![CDATA[Pathfinder Events]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4875</guid>
		<description><![CDATA[
The midVentures25 event is happening this Thursday, and Pathfinder is proud to be sponsoring the event.  
midVentures25 is the first Chicago-based startup demo day &#038; conference: 25 of the best investor-ready early-stage startups will demo their products in an open-floor expo.
The top 5 startups will have a chance to pitch to an audience of [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/">Pathfinder sponsors the midVentures25</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/' rel='bookmark' title='Permanent Link: Pathfinder sponsoring Day of Mobile in Chicago'>Pathfinder sponsoring Day of Mobile in Chicago</a></li><li><a href='http://www.pathf.com/blogs/2009/06/upcoming-pathfinder-appearances/' rel='bookmark' title='Permanent Link: Upcoming Pathfinder Appearances'>Upcoming Pathfinder Appearances</a></li><li><a href='http://www.pathf.com/blogs/2008/08/why-chicago-is-rails-town-usa/' rel='bookmark' title='Permanent Link: Why Chicago is Rails-town, USA'>Why Chicago is Rails-town, USA</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/03/midventures25_1.png" alt="midVentures25" title="midVentures25" width="325" class="right" /></p>
<p><a href="http://midventures25.com/">The midVentures25</a> event is happening this Thursday, and Pathfinder is proud to be sponsoring the event.  </p>
<p>midVentures25 is the first Chicago-based startup demo day & conference: 25 of the best investor-ready early-stage startups will demo their products in an open-floor expo.</p>
<p>The top 5 startups will have a chance to pitch to an audience of entrepreneurs, VCs, angels, bloggers, media and Chicago's tech community.  A panel of expert advisors will ask the tough questions -- ultimately choosing one company to win over $10,000 in services.</p>
<p>The focus of midVentures25 is to show the national technology and investment community that the Midwest has an abundance of early-stage innovators within the technology, consumer, and sustainability space. You can expect to engage thought leaders in education, art, media, business, science, and technology during the conference.</p>
<p>There are a lot of great innovations that continue to come from the Chicago community, as we know from the early stage clients we've helped towards success.  We're looking forward to an event like this that brings the people that make this happen together.  It should be a great evening.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/">Pathfinder sponsors the midVentures25</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/' rel='bookmark' title='Permanent Link: Pathfinder sponsoring Day of Mobile in Chicago'>Pathfinder sponsoring Day of Mobile in Chicago</a></li><li><a href='http://www.pathf.com/blogs/2009/06/upcoming-pathfinder-appearances/' rel='bookmark' title='Permanent Link: Upcoming Pathfinder Appearances'>Upcoming Pathfinder Appearances</a></li><li><a href='http://www.pathf.com/blogs/2008/08/why-chicago-is-rails-town-usa/' rel='bookmark' title='Permanent Link: Why Chicago is Rails-town, USA'>Why Chicago is Rails-town, USA</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pathfinder sponsoring Day of Mobile in Chicago</title>
		<link>http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/</link>
		<comments>http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 18:15:29 +0000</pubDate>
		<dc:creator>Bernhard Kappe</dc:creator>
				<category><![CDATA[Pathfinder News]]></category>
		<category><![CDATA[iPhone/Mobile]]></category>
		<category><![CDATA[Chicago]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4873</guid>
		<description><![CDATA[Day of Mobile is happening this Saturday, and Pathfinder is proud to be sponsoring the event.  
This should be a very cool event , and we're excited about interacting with other mobile developers in the Chicago area.    We look forward to seeing you there!   
Day of Mobile is an [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/">Pathfinder sponsoring Day of Mobile in Chicago</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/' rel='bookmark' title='Permanent Link: Pathfinder sponsors the midVentures25'>Pathfinder sponsors the midVentures25</a></li><li><a href='http://www.pathf.com/blogs/2008/08/why-chicago-is-rails-town-usa/' rel='bookmark' title='Permanent Link: Why Chicago is Rails-town, USA'>Why Chicago is Rails-town, USA</a></li><li><a href='http://www.pathf.com/blogs/2008/01/qa-with-trace-j/' rel='bookmark' title='Permanent Link: Q&#038;A with Trace Johnson of Chicago-based mobile-payment start-up Mpayy'>Q&#038;A with Trace Johnson of Chicago-based mobile-payment start-up Mpayy</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.techinthemiddle.com/DayOfMobile/">Day of Mobile</a> is happening this Saturday, and Pathfinder is proud to be sponsoring the event.  </p>
<p>This should be a very cool event , and we're excited about interacting with other mobile developers in the Chicago area.    We look forward to seeing you there!   </p>
<p>Day of Mobile is an all day event for mobile developers and enthusiasts that will take place at IIT on March 6, 2010. The overall goal of the event is to better prepare both Chicago's application development community and companies with mobile initiatives for the upcoming mobile revolution. We will cover a myriad of different topics relative to mobile development and strategy such as platform SDKs, cross platform development, multimedia, CMS/SMS, mobile business models and many more. The event will begin with a breakfast at 8AM and conclude after a keynote speech and hackathon awards ceremony at 4PM. Throughout the day, there will be talks running concurrently with one another in two adjoining ballrooms.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/">Pathfinder sponsoring Day of Mobile in Chicago</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/03/pathfinder-sponsors-midventures25/' rel='bookmark' title='Permanent Link: Pathfinder sponsors the midVentures25'>Pathfinder sponsors the midVentures25</a></li><li><a href='http://www.pathf.com/blogs/2008/08/why-chicago-is-rails-town-usa/' rel='bookmark' title='Permanent Link: Why Chicago is Rails-town, USA'>Why Chicago is Rails-town, USA</a></li><li><a href='http://www.pathf.com/blogs/2008/01/qa-with-trace-j/' rel='bookmark' title='Permanent Link: Q&#038;A with Trace Johnson of Chicago-based mobile-payment start-up Mpayy'>Q&#038;A with Trace Johnson of Chicago-based mobile-payment start-up Mpayy</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/pathfinder-sponsoring-day-mobile-chicago/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Refactoring versus Rewriting</title>
		<link>http://www.pathf.com/blogs/2010/03/refactoring-rewriting/</link>
		<comments>http://www.pathf.com/blogs/2010/03/refactoring-rewriting/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 11:09:50 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Development Best Practices]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[Technical Debt]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4867</guid>
		<description><![CDATA[
 photo credit: moonlightbulb
Refactoring versus Rewriting
I started my first real Agile software development project in 1999. I'd been doing more traditional software development before then all the way back to 1980. I won't bore you with the details of those earlier projects, but my feeling was that there had to be a better way of [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/refactoring-rewriting/">Refactoring versus Rewriting</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/11/gwt-static-dynamic-religious-war/' rel='bookmark' title='Permanent Link: GWT and the Static Versus Dynamic Religious War'>GWT and the Static Versus Dynamic Religious War</a></li><li><a href='http://www.pathf.com/blogs/2008/11/has-many-has_many-a-refactoring-story/' rel='bookmark' title='Permanent Link: Has Many has_many: A Refactoring Story'>Has Many has_many: A Refactoring Story</a></li><li><a href='http://www.pathf.com/blogs/2009/12/feature-lists-budgets-deadlines/' rel='bookmark' title='Permanent Link: Requirements Set in Stone and Software Made of Concrete'>Requirements Set in Stone and Software Made of Concrete</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px"><a title="Giant eraser in the sculpture garden" href="http://www.flickr.com/photos/24532534@N02/4144127000/" target="_blank"><img src="http://farm3.static.flickr.com/2595/4144127000_e29b6e8a30_m.jpg" border="0" alt="Giant eraser in the sculpture garden" /></a><br />
<small><a title="Attribution License" href="http://creativecommons.org/licenses/by/2.0/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="moonlightbulb" href="http://www.flickr.com/photos/24532534@N02/4144127000/" target="_blank">moonlightbulb</a></small></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Refactoring versus Rewriting</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I started my first real Agile software development project in 1999. I'd been doing more traditional software development before then all the way back to 1980. I won't bore you with the details of those earlier projects, but my feeling was that there had to be a better way of developing software that didn't involve a senior technologist (me) telling a whole bunch of junior technologists what to do. It turns out I was right. <img src='http://www.pathf.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">But almost from the start I got pushback from other people in the development organizations I worked in that Agile development was horribly wasteful. They pointed to Test Driven Development ("all those tests more than double your effort"), pair programming ("two developers doing the work of one?"), and refactoring ("you're rewriting the software every time at enormous cost"). Of course all of these objections were borne out of a misunderstanding of Agile development, but of how their own software development processes actually worked.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The issue of refactoring was particularly mysterious to my colleagues. If you took the time and designed software properly up front, you don't have to do expensive rewrites. Of course anyone who has ever maintained code knows that this isn't true. All code, regardless of how it is developed, changes over time for bug fixes and to meet the needs of new requirements. If you aren't thoughtful about how you change your software, you can easily end up with a big mess.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">If you are thoughtful about how you change your software and think about the sorts of "code smells" that crop up in your code over time, you end up making more fundamental changes, rather than adding a method here or a instance variable there. You might see that two methods are always called in conjunction and decide they should be folded into one method (a design win), or you may have extended your design and ended up with two parallel hierarchies of classes. You break the Go4 glass and pull out the Bridge Pattern to solve that burgeoning design problem. Through constant refactoring (or rewriting, take your pick) you avoid painting yourself into a corner as your requirements change.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The fact is that good developers are constantly redesigning and rewriting their code. Those same developers will tell you that the longer you leave problems before refactoring, the bigger and more expensive they become, until you might be better off just scrapping the system and rewriting from scratch.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Agile development takes this normal refactoring to it's logical extreme. Rather than doing a big design up front and then doing a series of expensive changes when they are inevitably found to be wrong, Agile teams accept that their design will be imperfect and then build comparatively inexpensive refactoring into every iteration. It may seem counterintuitive, but all that refactoring results in code that is cheaper to develop, easier to maintain (because it's easier to understand, change and debug).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Among professional writers the golden rule is that the key to all good writing is rewriting. The same is certainly true of software.</div>
<p>I started my first real Agile software development project in 1999. I'd been doing more traditional software development before then all the way back to 1980. I won't bore you with the details of those earlier projects, but my feeling was that there had to be a better way of developing software that didn't involve a senior technologist (me) telling a whole bunch of junior technologists what to do. It turns out I was right. <img src='http://www.pathf.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>But almost from the start I got pushback from other people in the development organizations I worked in that Agile development was horribly wasteful. They pointed to Test Driven Development ("all those tests more than double your effort"), pair programming ("two developers doing the work of one?"), and refactoring ("you're rewriting the software every time at enormous cost"). Of course all of these objections were born not just out of a misunderstanding of Agile development, but a fundamental misunderstanding of how their own software development processes actually worked.</p>
<p><span id="more-4867"></span>The issue of refactoring was particularly mysterious to my colleagues. If you took the time and designed software properly up front, they reasoned, you won't have to do expensive rewrites. Of course anyone who has ever maintained code knows that this isn't ever true. All code, regardless of how it is developed, changes over time for bug fixes and to meet the needs of new requirements. If you aren't thoughtful about how you change your software, you can easily end up with a big mess. Further, very little software is design with a perfect understanding of the requirements, leading to imperfect designs and things like the second and third system effects.</p>
<p>If you are thoughtful about how you change your software and think about the sorts of <a href="http://en.wikipedia.org/wiki/Code_smell" target="_blank">"code smells"</a> that crop up in your code over time, you end up making more fundamental changes, rather than adding a method here or a instance variable there. You might see that two methods are always called in conjunction and decide they should be folded into one method (a design win, see State Patterns), or you may have extended your design and ended up with two parallel hierarchies of classes. You break the Go4 glass and pull out the <a href="http://en.wikipedia.org/wiki/Bridge_pattern" target="_blank">Bridge Pattern</a> to solve that burgeoning design problem. Through constant refactoring (or rewriting, take your pick) you avoid painting yourself into a corner as your requirements change.</p>
<p>The fact is that good developers are constantly redesigning and rewriting their code. Those same developers will tell you that the longer you leave problems (<a href="http://en.wikipedia.org/wiki/Technical_debt" target="_blank">technical debt</a>) before refactoring, the bigger and more expensive they become, until you might be better off just scrapping the system and rewriting from scratch.</p>
<p>Agile development takes this normal refactoring to it's logical extreme. Rather than doing a big design up front and then doing a series of expensive changes when they are inevitably found to be wrong, Agile teams accept that their design will be imperfect and then build comparatively inexpensive refactoring into every iteration. It may seem counterintuitive, but all that refactoring results in code that is cheaper to develop, easier to maintain (because it's easier to understand, change and debug).</p>
<p>Among professional writers the golden rule is that the key to all good writing is rewriting. The same is certainly true of software.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/03/refactoring-rewriting/">Refactoring versus Rewriting</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/11/gwt-static-dynamic-religious-war/' rel='bookmark' title='Permanent Link: GWT and the Static Versus Dynamic Religious War'>GWT and the Static Versus Dynamic Religious War</a></li><li><a href='http://www.pathf.com/blogs/2008/11/has-many-has_many-a-refactoring-story/' rel='bookmark' title='Permanent Link: Has Many has_many: A Refactoring Story'>Has Many has_many: A Refactoring Story</a></li><li><a href='http://www.pathf.com/blogs/2009/12/feature-lists-budgets-deadlines/' rel='bookmark' title='Permanent Link: Requirements Set in Stone and Software Made of Concrete'>Requirements Set in Stone and Software Made of Concrete</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/03/refactoring-rewriting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Storytelling in Design</title>
		<link>http://www.pathf.com/blogs/2010/02/storytelling-design-2/</link>
		<comments>http://www.pathf.com/blogs/2010/02/storytelling-design-2/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 00:04:56 +0000</pubDate>
		<dc:creator>Bob Moll</dc:creator>
				<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[uxd]]></category>
		<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[storytelling]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4859</guid>
		<description><![CDATA[
Instead of a "loading" animation that we may bail out on, why not tell a story? I was impressed with this technique used by BMW.  They are running banner ads on NBC's site which hypes the upcoming Olympic events. You see a car in the banner ad, you expect to click and see more car. [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/storytelling-design-2/">Storytelling in Design</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/02/ajax_and_design/' rel='bookmark' title='Permanent Link: Ajax and Design'>Ajax and Design</a></li><li><a href='http://www.pathf.com/blogs/2009/09/art-design-art-design-design-art/' rel='bookmark' title='Permanent Link: Art vs. Design, the Art of Design, or the Design of Art'>Art vs. Design, the Art of Design, or the Design of Art</a></li><li><a href='http://www.pathf.com/blogs/2007/09/design-doesnt-j/' rel='bookmark' title='Permanent Link: Design Doesn&#8217;t Just Mean Color'>Design Doesn&#8217;t Just Mean Color</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-4858" title="bmw" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/bmw.jpg" alt="bmw" width="432" height="247" /></p>
<p>Instead of a "loading" animation that we may bail out on, why not tell a story? I was impressed with this technique used by BMW.  They are running banner ads on NBC's site which hypes the upcoming Olympic events. You see a car in the banner ad, you expect to click and see more car. But you don't. Instead, a blank white screen with just a few short words pops up. But the words tell a quick paced story. phrase by phrase, of what joy is. Joy is Timeless. Joy is Freedom. Joy is Innovation. And below those words is the "loading" indicator. 10%, 20%, 32%, and so on. A nice example of storytelling used in design - if you are going to make someone wait (or have to, because you are loading a high-end car video), consider getting them engaged with a story.</p>
<p>http://www.bmw.com/com/en/insights/technology/joy/bmw_joy.html</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/storytelling-design-2/">Storytelling in Design</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/02/ajax_and_design/' rel='bookmark' title='Permanent Link: Ajax and Design'>Ajax and Design</a></li><li><a href='http://www.pathf.com/blogs/2009/09/art-design-art-design-design-art/' rel='bookmark' title='Permanent Link: Art vs. Design, the Art of Design, or the Design of Art'>Art vs. Design, the Art of Design, or the Design of Art</a></li><li><a href='http://www.pathf.com/blogs/2007/09/design-doesnt-j/' rel='bookmark' title='Permanent Link: Design Doesn&#8217;t Just Mean Color'>Design Doesn&#8217;t Just Mean Color</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/storytelling-design-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remembered: Claude Shannon</title>
		<link>http://www.pathf.com/blogs/2010/02/remembered-claude-shannon/</link>
		<comments>http://www.pathf.com/blogs/2010/02/remembered-claude-shannon/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 18:38:42 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Claude Shannon]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4852</guid>
		<description><![CDATA[

So, it's little Stevie Jobs' birthday today. Certainly he's been influential in the world of digital computing. But when folks wax on and wax off about how great some of these more recent figures in computing have been, I like to remind them of some of the all-time greats. It just so happens that that [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/remembered-claude-shannon/">Remembered: Claude Shannon</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/08/higher-order-ja/' rel='bookmark' title='Permanent Link: Higher Order JavaScript'>Higher Order JavaScript</a></li><li><a href='http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/' rel='bookmark' title='Permanent Link: Why Computers are (aren&#8217;t) Better Than People at Playing Chess'>Why Computers are (aren&#8217;t) Better Than People at Playing Chess</a></li><li><a href='http://www.pathf.com/blogs/2006/04/march_of_the_ga/' rel='bookmark' title='Permanent Link: March of the Games'>March of the Games</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px">
<div class="wp-caption alignnone" style="width: 226px"><img style="float:right;padding:10px" title="Claude Shannon" src="http://upload.wikimedia.org/wikipedia/en/2/2f/Claude_Elwood_Shannon_%281916-2001%29.jpg" alt="Claude Shannon" width="216" height="305" /><p class="wp-caption-text">Claude Shannon</p></div>
</div>
<p>So, it's <a href="http://en.wikipedia.org/wiki/Steve_Jobs" target="_blank">little Stevie Jobs' birthday today</a>. Certainly he's been influential in the world of digital computing. But when folks wax on and wax off about how great some of these more recent figures in computing have been, I like to remind them of some of the all-time greats. It just so happens that that today is also the 9th anniversary of the death of Claude Shannon. Who is Claude Shannon, you ask? How soon they forget, or perhaps they never knew.</p>
<p>Well, in his masters thesis at MIT in 1937, he observed that you could solve Boolean algebra problems using switching and relay circuits. OK, think about what that means. Wait for it...yes, he invented the modern digital computer. In 1937. In a <em>masters</em> thesis.</p>
<p>It was all downhill from there, of course. He only founded the field of Information Theory (central to cryptography, computational linguistics, and pretty much any kind of digital information processing). Yes, the digital revolution started with him.</p>
<p>Oh, and he also laid out the field of computer chess in 1950, describing the different ways a computer chess program could be designed. Sixty years later, his roadmap for the field has been dead on.</p>
<p>So, the next time someone celebrates Stevie's birthday, let them know about <a href="http://en.wikipedia.org/wiki/Claude_Shannon" target="_blank">Claude Elwood Shannon</a>.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/remembered-claude-shannon/">Remembered: Claude Shannon</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/08/higher-order-ja/' rel='bookmark' title='Permanent Link: Higher Order JavaScript'>Higher Order JavaScript</a></li><li><a href='http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/' rel='bookmark' title='Permanent Link: Why Computers are (aren&#8217;t) Better Than People at Playing Chess'>Why Computers are (aren&#8217;t) Better Than People at Playing Chess</a></li><li><a href='http://www.pathf.com/blogs/2006/04/march_of_the_ga/' rel='bookmark' title='Permanent Link: March of the Games'>March of the Games</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/remembered-claude-shannon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mort_calc gem: Rails Mortgage Calculation Gem</title>
		<link>http://www.pathf.com/blogs/2010/02/mortcalc-gem/</link>
		<comments>http://www.pathf.com/blogs/2010/02/mortcalc-gem/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:26:39 +0000</pubDate>
		<dc:creator>Perry Hertler</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[mortgage calculation]]></category>
		<category><![CDATA[rails gem]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4829</guid>
		<description><![CDATA[Ruby gem for calculating APR<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/mortcalc-gem/">mort_calc gem: Rails Mortgage Calculation Gem</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/07/launched-rapid-reporting-employment-chek/' rel='bookmark' title='Permanent Link: Launched:  Rapid Reporting Employment Chek'>Launched:  Rapid Reporting Employment Chek</a></li><li><a href='http://www.pathf.com/blogs/2008/11/installing-edge-ferretacts_as_ferret/' rel='bookmark' title='Permanent Link: Installing Edge Ferret/acts_as_ferret'>Installing Edge Ferret/acts_as_ferret</a></li><li><a href='http://www.pathf.com/blogs/2008/09/tips-tricks-from-windy-city-rails/' rel='bookmark' title='Permanent Link: Rails Performance, Code Metrics, and Locking Down your Application: Tips &#038; Tricks from Windy City Rails 2008'>Rails Performance, Code Metrics, and Locking Down your Application: Tips &#038; Tricks from Windy City Rails 2008</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I recently published the <a href="http://gemcutter.org/gems/mortgage_calc">mort_calc gem</a> at <a href="http://gemcutter.org">gemcutter.org</a>. The code can be found at <a href="http://github.com/perry3819/mort_calc/">http://github.com/perry3819/mort_calc/</a>.</p>
<p>The gem calculates the <a href="http://en.wikipedia.org/wiki/Annual_percentage_rate">APR</a> and monthly payment for a mortgage in the United States.</p>
<p>Calculating the monthly payment is straight forward.</p>
<p><img class="alignnone size-full wp-image-4831" title="monthly_payment" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/monthly_payment.png" alt="monthly_payment" width="161" height="66" /></p>
<p>C = Loan amount</p>
<p>E = Extra costs</p>
<p>r = monthly interest rate = interest rate / 1200</p>
<p>N = amortization term in months</p>
<p>An iterative approach is needed to find the APR. The equation for the APR follows.<br />
<span id="more-4829"></span></p>
<p><img class="alignnone size-full wp-image-4830" title="apr" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/apr.png" alt="apr" width="163" height="75" /></p>
<p>a = APR/1200</p>
<p>N = amortization term in months</p>
<p>P = Monthly payment (including all fees paid by borrower)</p>
<p>C = Loan amount</p>
<p>The following graph shows the APR calculation plotted for N = 360, P = 2500, and C = 400,000. The APR is where the line crosses the <strong>A</strong> axis.</p>
<p><img class="alignnone size-full wp-image-4835" title="apr_plot" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/apr_plot.png" alt="apr_plot" width="499" height="325" /></p>
<p>I chose the<a href="http://en.wikipedia.org/wiki/Newton's_method"> Newton-Raphson method</a> to quickly find a precise solution.</p>
<p><img class="alignnone size-full wp-image-4834" title="Screen shot 2010-02-16 at 1.51.57 PM" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/Screen-shot-2010-02-16-at-1.51.57-PM.png" alt="Screen shot 2010-02-16 at 1.51.57 PM" width="140" height="46" /></p>
<p>The <a href="http://github.com/perry3819/mort_calc/blob/master/lib/mortgage_calc/mortgage_util.rb">MortgageUtil</a>.calculate_apr method provides a starting value of the interest rate, which makes the Newton-Raphson converge on a accurate solution between 1 and 3 passes.<br />
<script src="http://gist.github.com/305850.js?file=gistfile1.txt"></script></p>
<p><strong>Installation</strong></p>
<p>% sudo gem install gemcutter</p>
<p>% gem tumble</p>
<p>% sudo gem install mortgage_calc</p>
<p><strong>Example</strong><br />
<script src="http://gist.github.com/305874.js?file=gistfile1.txt"></script></p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/mortcalc-gem/">mort_calc gem: Rails Mortgage Calculation Gem</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/07/launched-rapid-reporting-employment-chek/' rel='bookmark' title='Permanent Link: Launched:  Rapid Reporting Employment Chek'>Launched:  Rapid Reporting Employment Chek</a></li><li><a href='http://www.pathf.com/blogs/2008/11/installing-edge-ferretacts_as_ferret/' rel='bookmark' title='Permanent Link: Installing Edge Ferret/acts_as_ferret'>Installing Edge Ferret/acts_as_ferret</a></li><li><a href='http://www.pathf.com/blogs/2008/09/tips-tricks-from-windy-city-rails/' rel='bookmark' title='Permanent Link: Rails Performance, Code Metrics, and Locking Down your Application: Tips &#038; Tricks from Windy City Rails 2008'>Rails Performance, Code Metrics, and Locking Down your Application: Tips &#038; Tricks from Windy City Rails 2008</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/mortcalc-gem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where the iPad will take over: 15 examples</title>
		<link>http://www.pathf.com/blogs/2010/02/ipad-15-examples/</link>
		<comments>http://www.pathf.com/blogs/2010/02/ipad-15-examples/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:05:22 +0000</pubDate>
		<dc:creator>Bernhard Kappe</dc:creator>
				<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[iPhone/Mobile]]></category>
		<category><![CDATA[apple tablet]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[purpose]]></category>
		<category><![CDATA[purpose built devices]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4807</guid>
		<description><![CDATA[There's still a lot of internet chatter about why you'd want a tablet anyway.   I think there's a big space between the laptop and the iphone, and that in  particular, the iPad, iPhone and iPod Touch will take over from a lot of purpose built devices that deliver specific high value functionality. [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/ipad-15-examples/">Where the iPad will take over: 15 examples</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/01/ipad-instant-reaction-apples-tablet-event/' rel='bookmark' title='Permanent Link: iPad: Instant Reaction to Apple&#8217;s Tablet Event'>iPad: Instant Reaction to Apple&#8217;s Tablet Event</a></li><li><a href='http://www.pathf.com/blogs/2010/02/big-space-laptops-iphones/' rel='bookmark' title='Permanent Link: iPad: How big is the space between laptops and iPhones?'>iPad: How big is the space between laptops and iPhones?</a></li><li><a href='http://www.pathf.com/blogs/2010/01/tablet-laptop-pictures-speak/' rel='bookmark' title='Permanent Link: Why would you use a tablet instead of a laptop?  (In Pictures)'>Why would you use a tablet instead of a laptop?  (In Pictures)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>There's still a lot of internet chatter about why you'd want a tablet anyway.   I think there's a <a href="http://www.pathf.com/blogs/2010/02/big-space-laptops-iphones/">big space</a> between the laptop and the iphone, and that in  particular, the iPad, iPhone and iPod Touch will take over from a lot of <a href="http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/">purpose built devices</a> that deliver specific high value functionality.  Here are a few examples:</p>
<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/iPadstanding.png" alt="iPad standing" title="iPad standing" width="212" class="right" /></p>
<p>1.  The daily commute.  It's a simple matter of ergonomics here.  I will use the iPad, sold with a cheap data plan when I'm sitting down on the El, rather than the iphone.  Because it has a bigger screen, and it's already connected.  I won't use my laptop, because it doesn't come with a data plan (or only an expensive one that I won't buy), and it's pretty uncomfortable to use in a cramped row of seats.   I'll use it instead of a laptop because the form factor works much better, and because I will have bought the data plan bundled with the iPad.</p>
<p>2.  The eBook reader.  I'll use it instead of a Kindle because it will be good enough (or better), and I can do a lot more than read with it.  My guess is there will be more people that read on the tablet than who buy a dedicated reader.  (Just as there are more people who do photo sharing on facebook than on flickr.)</p>
<p>3.  In the Kitchen.  If I'm in a situation where a sealed, mess resistant device with a big screen is a big advantage (like a kitchen) then I  will use the tablet.   I will prefer it to the iPhone because it's bigger and I can look at it while I'm doing something else, and I will prefer it to a laptop because the keyboard will not get gunked up.  There are already devices <a href="http://www.mydemy.com/">retailing around $300</a> to store and retrieve your recipes in the kitchen - an iPad with the right recipe app will run rings around that.<br />
<span id="more-4807"></span><br />
4.  Video calls on the go.  If it's always on, like an iphone, and it has video (like my <a href="http://www.pathf.com/blogs/2010/01/trading-technical-complexities-vastly-increased-simplicity-ease/">skype video phone</a>) with a front facing camera, then I will replace my skype video phone with it, and I'll make more video calls.   This isn't in v1, but you can bet that it will be soon, and when it is, it'll be a killer app for the iPad.</p>
<p>5.  In the store.  Walking around, showing people more information, more details.   The form factor is better than a laptop, and the screen is better than an iPhone.  Which would you chose in that situation?  </p>
<p>6.  On a trade show floor. Very similar to the store situation.   </p>
<p>7.  Any other place where you would say "hey, let me show you this!"  It's cumbersome with a laptop.  You have to say - hey, come here, look at this...</p>
<p>8. In the restaurant.  I could see it used in a restaurant, taking orders, or at the reservation desk.</p>
<p>9.  For doctor making rounds. In multiple hospitals (as many do.)  A doctor or nurse making their rounds is a similar situation - they'll use their iphone when nothing else is available, but they'll prefer the tablet when it's available, because of the larger viewing surface.  They'll prefer it to a laptop most of the time because of the true portability.</p>
<p>10.  Online games.  There's a reason games have been a big hit on the iPhone - like the wii, it's a different gaming platform than a gameboy, and unlike a laptop, it's truly portable.   Add a bigger screen and a faster processor, and you've got a killer gaming platform.  </p>
<p>11.  Social games.  A special case of #10:  Playing chess or another game on a table with a friend or friends (or against the computer.)  One of the issues with sharing a laptop for gaming is that you can't really do face to face.  You're both looking at the screen, not at each other.  A tablet can be laid down between you and used as a gaming console.</p>
<p>12.  Online courses and test preparation.  You're doing a lot of reading, and watching a lot of video, and probably answering mostly simple multiple choice questions, rather than writing essays.  You can do it on the go, or sitting down at a table.  A tablet could be a much more enjoyable way of doing this than a desktop or laptop.</p>
<p>13. Watching movies.  You don't watch movies sitting at a desk - you do it lounging, on a couch, in an armchair, or on the bed.  If you're not watching it on a big screen, this is the way to do it.  On the train, in the plane, in the back seat of the car, on the couch, on the family room floor.</p>
<p>14. On the job site.  Contractors and architects do a lot of site inspections/checklists in the field where an ipad would be great – my guess there are a lot of other applications for them as well. Just as in a medical situation, concerns about durability can be addressed through <a href="http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/">functional cases</a>.</p>
<p>15.  Turn by turn navigation in the car.  The bigger screen is a natural for this.  A purpose built case with gps is probably not that far behind.</p>
<p>Got any other situations that the iPad is suited for?  We'd love to hear about them.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/ipad-15-examples/">Where the iPad will take over: 15 examples</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/01/ipad-instant-reaction-apples-tablet-event/' rel='bookmark' title='Permanent Link: iPad: Instant Reaction to Apple&#8217;s Tablet Event'>iPad: Instant Reaction to Apple&#8217;s Tablet Event</a></li><li><a href='http://www.pathf.com/blogs/2010/02/big-space-laptops-iphones/' rel='bookmark' title='Permanent Link: iPad: How big is the space between laptops and iPhones?'>iPad: How big is the space between laptops and iPhones?</a></li><li><a href='http://www.pathf.com/blogs/2010/01/tablet-laptop-pictures-speak/' rel='bookmark' title='Permanent Link: Why would you use a tablet instead of a laptop?  (In Pictures)'>Why would you use a tablet instead of a laptop?  (In Pictures)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/ipad-15-examples/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Post-Agile in the Game Development World?</title>
		<link>http://www.pathf.com/blogs/2010/02/postagile-game-development-world/</link>
		<comments>http://www.pathf.com/blogs/2010/02/postagile-game-development-world/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:52:44 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Agile Coaching]]></category>
		<category><![CDATA[Agile Project Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Development Best Practices]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4804</guid>
		<description><![CDATA[
 photo credit: Rich B-S
Gwarred Mountain over at Climax Studios has posted a very thoughtful blog post about software development methods and the appropriateness of Agile Software Development. I was ready not to like this article, what with the title and things like this:
If I have to sit through another meeting with some little "agile" [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/postagile-game-development-world/">Post-Agile in the Game Development World?</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/09/agile-2009-reminded-team-leadership-2/' rel='bookmark' title='Permanent Link: Agile 2009: A reminder of why each team needs leadership'>Agile 2009: A reminder of why each team needs leadership</a></li><li><a href='http://www.pathf.com/blogs/2009/09/agile-development-play-understanding/' rel='bookmark' title='Permanent Link: Agile Development and Play: Understanding the Value'>Agile Development and Play: Understanding the Value</a></li><li><a href='http://www.pathf.com/blogs/2009/08/building-high-performance-agile-team-assume-hit/' rel='bookmark' title='Permanent Link: Building a High Performance Agile Team:  Assume You Will Be a One Hit Wonder'>Building a High Performance Agile Team:  Assume You Will Be a One Hit Wonder</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px"><a title="V&amp;A Kanban December 7" href="http://www.flickr.com/photos/38584744@N00/4166463121/" target="_blank"><img src="http://farm3.static.flickr.com/2534/4166463121_f08dc88e4a_m.jpg" border="0" alt="V&amp;A Kanban December 7" /></a><br />
<small><a title="Attribution License" href="http://creativecommons.org/licenses/by/2.0/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="Rich B-S" href="http://www.flickr.com/photos/38584744@N00/4166463121/" target="_blank">Rich B-S</a></small></div>
<p>Gwarred Mountain over at Climax Studios has posted a <a href="http://gwaredd.blogspot.com/2010/02/game-development-in-post-agile-world.html" target="_blank">very thoughtful blog post about software development methods</a> and the appropriateness of Agile Software Development. I was ready not to like this article, what with the title and things like this:</p>
<blockquote><p><span>If I have to sit through another meeting with some little "agile" toe-rag defending their train wreck of a project then I may end up forcibly ramming a kanban where the scrum does not shine.</span></p></blockquote>
<p>But then I thought about all of those fresh-faced management consultants we've run into recently -- who have read a book about agile -- trying to teach us how to do it. Well, yes. I've had some uncharitable thoughts myself.<span id="more-4804"></span></p>
<p>Surprisingly, I felt myself agreeing with most of what he wrote. No, Agile is no panacea. Yes, it works best on small to medium sized projects. Yes, you have to have an experienced team to do it well. Yes, there are other methods that are more appropriate in some cases and, yes, you have to recognize when to use something else than an agile approach.</p>
<p>His breakdown of people vs process is one of the many nicely coherent gems in the post:</p>
<blockquote><p>So what is so great about process? Well, it gives us:</p>
<ul>
<li>Repeatable and predictable results</li>
<li>Quality Assurances (through the above)</li>
<li>Cost savings through the ability to optimise work flows</li>
<li>Defined work flow allows us to use cheaper labour</li>
<li>The promotion of best practices and conceptual integrity</li>
<li>The ability to scale to large numbers</li>
<li>A means to effectively track our progress against the objectives</li>
</ul>
<p>McDonalds is a great example of successful process. No matter where you are in the world, you know what you are going to get and you get it quickly and cheaply. This process has successfully scaled to thousands of restaurants. Whether you consider this good or bad it is hard to argue with the results.</p>
<p>Nevertheless, software development is much harder than frying beef burgers. Process is sometimes inappropriate or unconstructive.</p></blockquote>
<p>I'd say the lesson from his post is that you need to be thoughtful about the software development and project management technique you adopt. Know why you are doing things. Any process that has magical rituals rather than purposeful activities has a good chance of devolving into a software development farce.</p>
<p>There is one thing with which I take issue. He states that Test Driven Development (TDD) adds from 15%-35% to development effort. He cites an empirical Microsoft Research study. The paper, authored by Nagappan, et. al., is one that I am well familiar with. The study looks at four case studies, one at IBM and three at Microsoft, where two teams are given the same system to implement. Everything is the same except in one team incorporates TDD into their process. Neither team is told they are part of a study.</p>
<p>It isn't clear from the paper, but in my experience teams that adopt a new technique or tool usually are not as efficient the first time around. Certainly that is born out by our own empirical observations -- developers that are performing TDD for the first time are anywhere from 10%-30% less productive. That starts to move toward 0% after the first project. It becomes second nature. And as the study itself makes clear, the productivity losses in the study would be more than made up for in the maintenance phase of the software life-cycle, where 80% of software product costs land anyway.</p>
<p>Let's see, lower defect rates, no productivity loss after a little bit of developer training and reduced cost in the maintenance phase? Sounds like a no-brainer to me. Of course I don't know Mr. Mountain's industry. It may be that there is no maintenance in the game development space, just code and release. No updates. So rush to release, bugs be damned may be the best way to go (not being facetious here).</p>
<p>The fact that this study comes out of Microsoft already sets some alarm bells ringing for me. Although we're headquartered in Chicago now, we actually were founded in Seattle, physically and intellectually not far from the Microsoft campus. Based on what we saw working at and for Microsoft, we soon began a physical and intellectual journey away from there that has landed us in Chicago as a premier User Driven Software Product Development shop. We use experienced teams, User Experience Design (UXD) and are thoughtful about how and why we practice Agile.</p>
<p>We may not be everyone's cup of tea, but if you have a consumer or business software product or service that you need to get out to the marketplace swiftly, reliably and with high quality, then we may well be a fit for you.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/postagile-game-development-world/">Post-Agile in the Game Development World?</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/09/agile-2009-reminded-team-leadership-2/' rel='bookmark' title='Permanent Link: Agile 2009: A reminder of why each team needs leadership'>Agile 2009: A reminder of why each team needs leadership</a></li><li><a href='http://www.pathf.com/blogs/2009/09/agile-development-play-understanding/' rel='bookmark' title='Permanent Link: Agile Development and Play: Understanding the Value'>Agile Development and Play: Understanding the Value</a></li><li><a href='http://www.pathf.com/blogs/2009/08/building-high-performance-agile-team-assume-hit/' rel='bookmark' title='Permanent Link: Building a High Performance Agile Team:  Assume You Will Be a One Hit Wonder'>Building a High Performance Agile Team:  Assume You Will Be a One Hit Wonder</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/postagile-game-development-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Computers are (aren&#8217;t) Better Than People at Playing Chess</title>
		<link>http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/</link>
		<comments>http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 03:54:42 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[chess]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4800</guid>
		<description><![CDATA[
 photo credit: World Economic Forum
It is very easy to misunderstand software and it's capabilities. Although people and software often perform the same tasks, they often do so in very different ways and achieve very different results. The results software can achieve are sometimes surprising, even amazing. But what computers can do is still quite [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/">Why Computers are (aren&#8217;t) Better Than People at Playing Chess</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/11/chess-game-viewer-in-gwt/' rel='bookmark' title='Permanent Link: Chess Game Viewer in GWT'>Chess Game Viewer in GWT</a></li><li><a href='http://www.pathf.com/blogs/2008/09/porting-java-libraries-jazzed-about-gwt/' rel='bookmark' title='Permanent Link: Porting Java Libraries &#8211; Jazzed About GWT'>Porting Java Libraries &#8211; Jazzed About GWT</a></li><li><a href='http://www.pathf.com/blogs/2009/02/are-we-engineering-software-or-people/' rel='bookmark' title='Permanent Link: Are We Engineering Software or People?'>Are We Engineering Software or People?</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px"><a title="Anatoly Karpov - World Economic Forum Annual Meeting Davos 2007" href="http://www.flickr.com/photos/15237218@N00/374713818/" target="_blank"><img src="http://farm1.static.flickr.com/153/374713818_41c1b95c43_m.jpg" border="0" alt="Anatoly Karpov - World Economic Forum Annual Meeting Davos 2007" /></a><br />
<small><a title="Attribution-ShareAlike License" href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="World Economic Forum" href="http://www.flickr.com/photos/15237218@N00/374713818/" target="_blank">World Economic Forum</a></small></div>
<p>It is very easy to misunderstand software and it's capabilities. Although people and software often perform the same tasks, they often do so in very different ways and achieve very different results. The results software can achieve are sometimes surprising, even amazing. But what computers can do is still quite limited. Making software development decisions based on an incomplete understanding on how software works, or drawing unwarranted equivalence between humans and computers, can lead to comical or even disastrous consequences.</p>
<p>It is with this in mind that I wanted to revisit one of my favorite topics: chess engines -- the computer programs that play a game of chess. Chess and computers were back in the news with a mainstream article by the mother of Kris Littlejohn entitled <a href="http://blogs.techrepublic.com.com/geekend/?p=4211" target="_blank">The Role of Computers in Planning Chess Strategy</a>. Her son, Kris, helps current US Chess Champion Hikaru Nakamura prepare his openings for torunaments and matches and he makes use of various software (chess databases and engines) for this purpose. It's a well written article and well worth a read.</p>
<p>I've been an avid chess player for many decades and have also written a number of chess playing programs over the years. So it really tickles me how when then world champion <a href="http://en.wikipedia.org/wiki/Deep_Blue_%28chess_computer%29" target="_blank">Gary Kasparov lost to Deep Blue</a> in a match back in 1997, many folks predicted that chess as a human past time would die. over a decade later, the situation is even worse for the humans: the best GM's can not hope to defeat the best programs, even at material odds. Yet the game is more popular than before. Part of the reason is online play thanks to the Internet. Another reason is that these strong chess engines make for primitive coaches. So the future of chess is safe for now.</p>
<p><span id="more-4800"></span></p>
<p>But there is a bit of a misunderstanding on how chess engines beat strong human players. Early on, chess computers were considered curiosities, able to play a legal game, but not able to beat any but the most basic of beginners. That's because computers were slow, and the problem solving method they used -- tree search, a sort of "I move, you move, I move, you move,..." tree for all possible moves -- was inefficient. Also, the computers weren't very smart at figuring out whether a particular position they had reached was good for them or not.</p>
<p>Over time computers got faster, the programs first got better at searching less of the tree, then more of the really important parts, and they got smarter and figuring out whether a particular position was good. Eventually they started looking further ahead than most people do and got so that they played a pretty reasonable game of chess.</p>
<p>But when we say that a computer can beat the world champion, that's not quite the same thing as saying the computer is better. By way of illustration, let's imagine we are playing a game with your word processor. We take turns Stringing sentences together. First I write a sentence, then the computer writes a sentence. The sentences make sense, they talk about the same thing, they argue, explain and so on. Our sentences are better, more elegant, than those of the computer, since we have a more sophisticated understanding of language.</p>
<p>Let's suppose that we have one more rule. If either player makes a spelling mistake or a grammatical error, they lose. First of all, the computer will never do that. When's the last time your word processor misspelled a word? We, however, misspell words a great deal of the time. Also, we find our selves constructing sentences that end in a propositions. Crap! We lose!</p>
<p>That's how computers win a great deal of the time: they capitalize on a few human oversights and wins. Since I play against some of the best engines on my own computers from time to time for training purposes, I can verify that this is true. When I play Rybka 3, the currently strongest chess engine on the market, at reasonably slow time controls, I need to take back about 5 errors on average to win against it. I'm not cheating, I just get to correct some of my mistakes.</p>
<p>If you had made the mistake of thinking you could win against any human, any time using a chess engine, you might have entered a correspondence chess tournament (these days played on a web server instead of by mail or email), where people can take days or weeks to ponder over their moves, and placed a large wager on you computer doing well. And you'd be out a lot of money. The best human correspondence players don't make that many mistakes to begin with and also use chess engines to check the "spelling" on their moves. They would eat your poor computer alive.</p>
<p>So, lessons from this post? When evaluating the capabilities of software versus people, see how each arrives at their performance. You may be avoiding a big mistake.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/">Why Computers are (aren&#8217;t) Better Than People at Playing Chess</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/11/chess-game-viewer-in-gwt/' rel='bookmark' title='Permanent Link: Chess Game Viewer in GWT'>Chess Game Viewer in GWT</a></li><li><a href='http://www.pathf.com/blogs/2008/09/porting-java-libraries-jazzed-about-gwt/' rel='bookmark' title='Permanent Link: Porting Java Libraries &#8211; Jazzed About GWT'>Porting Java Libraries &#8211; Jazzed About GWT</a></li><li><a href='http://www.pathf.com/blogs/2009/02/are-we-engineering-software-or-people/' rel='bookmark' title='Permanent Link: Are We Engineering Software or People?'>Are We Engineering Software or People?</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/computers-people-playing-chess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single Purpose Devices vs. Flexible Platforms and Functional Cases</title>
		<link>http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/</link>
		<comments>http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 12:54:17 +0000</pubDate>
		<dc:creator>Bernhard Kappe</dc:creator>
				<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[iPhone/Mobile]]></category>
		<category><![CDATA[ease of use]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Kindle]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[purpose built devices]]></category>
		<category><![CDATA[simplicity]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4738</guid>
		<description><![CDATA[A few weeks ago, I wrote about the Skype Video Phone, part of a trend towards trading needless complexity for simplicity and ease of use.  It's also on the wrong side of another trend:  The trend away from single purpose mobile devices to flexible mobile platforms.  


For a while there was a [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/">Single Purpose Devices vs. Flexible Platforms and Functional Cases</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/02/ipad-15-examples/' rel='bookmark' title='Permanent Link: Where the iPad will take over: 15 examples'>Where the iPad will take over: 15 examples</a></li><li><a href='http://www.pathf.com/blogs/2009/03/which-mobile-platforms-should-you-target-part-2/' rel='bookmark' title='Permanent Link: Which Mobile Platforms Should You Target? (Part 2)'>Which Mobile Platforms Should You Target? (Part 2)</a></li><li><a href='http://www.pathf.com/blogs/2007/01/the_iphone_and_/' rel='bookmark' title='Permanent Link: the iPhone and Touch screen technology'>the iPhone and Touch screen technology</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I wrote about the <a href="http://www.pathf.com/blogs/2010/01/trading-technical-complexities-vastly-increased-simplicity-ease/">Skype Video Phone</a>, part of a trend towards trading needless complexity for simplicity and ease of use.  It's also on the wrong side of another trend:  The trend away from single purpose mobile devices to flexible mobile platforms.  </p>
<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/smdemyrecipe.jpg" alt="smdemyrecipe" title="smdemyrecipe" width="250" class="left" /></p>
<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/panasonic-mca-h1-nursescanning.jpg" alt="panasonic-mca-h1-nursescanning" title="panasonic-mca-h1-nursescanning" width="260"  class="left" /></p>
<p>For a while there was a trend towards more and more purpose built digital products, from ebook readers to portable picture frames and pocket size digital cameras, all the way to to <a href="http://www.mydemy.com/">digital recipe readers</a> ($299) and tablet pcs with tough cases, handles and barcode scanners for the medical industry.  </p>
<p>The iPhone, the iPod Touch and the soon to be launched iPad signal a reverse of that trend.  Apple has designed and built flexible platforms that combine the ease of use and simplicity that single purpose devices with the flexibility of general purpose devices, and that is proving to be a compelling value proposition.  </p>
<p>On the iPad, for example, you can easily get as good or better a recipe reader experience as you would with the demy digital recipe reader, a better digital picture frame or slide show experience than with a digital picture frame, likely as good or better of an ebook reader experience, and likely as good or better of a bar code scanning medical tablet experience.</p>
<p>How is that last possible, when the iPad does not come with a bar code scanner?   The solution will likely be through peripherals built into functional cases.  As an example, take a look at the digital checkout devices like Apple's own <a href="http://www.appleinsider.com/articles/09/11/03/exclusive_look_at_apples_new_ipod_touch_based_easypay_checkout.html">EasyPay touch</a> (used at Apple's retail stores),   <a href="http://gigaom.com/2009/12/08/verifone-punches-square-launches-iphone-based-card-reader/">Verifone</a> and <a href="http://gigaom.com/2009/12/31/ieconomy/">Morphie</a> - that combine a magnetic card reader, a bar code scanner and a battery in a case for an iPod touch.<br />
<span id="more-4738"></span><br />
<img src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/iphone-gets-credit-card-reader.jpg" alt="iphone-gets-credit-card-reader" title="iphone-gets-credit-card-reader" width="250" height="165" class="left" /></p>
<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/paywaremobile-b11.jpg" alt="paywaremobile-b11" title="paywaremobile-b11" width="256"  class="left" /></p>
<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/easypay-091103-10.png" alt="easypay-091103-10" title="easypay-091103-10" width="537" height="454" class="alignright size-full wp-image-4744" /></p>
<p>And of course, when the video enabled iPad finally comes out, it will likely replace the Skype Video Phone that my parents so love.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/">Single Purpose Devices vs. Flexible Platforms and Functional Cases</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2010/02/ipad-15-examples/' rel='bookmark' title='Permanent Link: Where the iPad will take over: 15 examples'>Where the iPad will take over: 15 examples</a></li><li><a href='http://www.pathf.com/blogs/2009/03/which-mobile-platforms-should-you-target-part-2/' rel='bookmark' title='Permanent Link: Which Mobile Platforms Should You Target? (Part 2)'>Which Mobile Platforms Should You Target? (Part 2)</a></li><li><a href='http://www.pathf.com/blogs/2007/01/the_iphone_and_/' rel='bookmark' title='Permanent Link: the iPhone and Touch screen technology'>the iPhone and Touch screen technology</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/single-purpose-devices-flexible-platforms-functional-cases/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tiling a 2-D Polygon using C# GDI+</title>
		<link>http://www.pathf.com/blogs/2010/02/tiling-2d-polygon-gdi/</link>
		<comments>http://www.pathf.com/blogs/2010/02/tiling-2d-polygon-gdi/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:14:33 +0000</pubDate>
		<dc:creator>Karthik Muthupalaniappan</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Custom Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technologies and Platforms]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Drawing]]></category>
		<category><![CDATA[GDI+]]></category>
		<category><![CDATA[Window Forms Development]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4781</guid>
		<description><![CDATA[One of the most challenging problems I came across working on a .NET PDF Annotator and Editor application was to tile a 2-D polygon and also accurately determine the number of tiles that fill the surface of the polygon.  The tiling part was not as much of a challenge as the counting part. The tiled [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/tiling-2d-polygon-gdi/">Tiling a 2-D Polygon using C# GDI+</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2006/07/eyespot_ajax_ap/' rel='bookmark' title='Permanent Link: Eyespot &#8211; AJAX App for Video Editing'>Eyespot &#8211; AJAX App for Video Editing</a></li><li><a href='http://www.pathf.com/blogs/2008/07/linq-to-my-domain/' rel='bookmark' title='Permanent Link: LINQ to My Domain'>LINQ to My Domain</a></li><li><a href='http://www.pathf.com/blogs/2007/01/how_to_really_d/' rel='bookmark' title='Permanent Link: How to REALLY do Page Preview in Java with Embedded HTML Rendering'>How to REALLY do Page Preview in Java with Embedded HTML Rendering</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_4787" class="wp-caption alignnone" style="width: 543px"><img class="size-full wp-image-4787" title="Tiling a Polygon" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/Tiling-Polygon.png" alt="Tiling a Polygon" width="533" height="388" /><p class="wp-caption-text">Tiling a Polygon</p></div>
<p>One of the most challenging problems I came across working on a <a href="http://www.pathf.com/showcase/success-stories/pdf-annotation-software/" target="_blank">.NET PDF Annotator and Editor application</a> was to tile a 2-D polygon and also accurately determine the number of tiles that fill the surface of the polygon.  The tiling part was not as much of a challenge as the counting part. The tiled polygon was to be rendered on a PDF document since the application in question is a PDF Annotating and Editing tool. We looked for anything the third party .NET PDF rendering/manipulation API that was used could provide for the tile rendering but there was nothing unfortunately.<br />
<span id="more-4781"></span><br />
So we set out to use <a href="http://msdn.microsoft.com/en-us/library/ms533798%28VS.85%29.aspx" target="_blank">C#'s native GDI+ library</a> to render the tiles for the polygon.  After trying out different approaches to accomplish the rendering of the tiles, we discovered the one that would work best. The idea was simple. Every 2-D shape on the drawing surface has a bounding rectangle that encloses the shape. Starting from the top left bounding point of the rectangle, iteratively render a rectangle (tile with whatever length and width) across the X axis until the right most edge of the rectangle and this iteration needs to happen over the Y-axis (not sure if I explained clearly enough <img src='http://www.pathf.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .  So now we have rectangular tiles laid out across the bounding rectangle for the polygon. GDI+ gives us a clip method that allows us to clip the rendering surface to a specific graphics path or region. Using the clip method, clip the drawing surface to be the graphics path for just the Polygon so that only tiles within the polygon's graphics path get rendered on the screen. We could apply other transformations to the rendered tiles like offseting, rotation or a gap between each tile.</p>
<p>Coming up with the most efficient way to count the number of tiles (including partial tiles) was a little trickier than rendering the tiles.  It turned out that the ideal approach was to essentially count each tile as it was drawn and checking whether the tile was partially or fully part of the polygon's graphics path/region. So, there is this method <a href="http://msdn.microsoft.com/en-us/library/system.drawing.region.isvisible%28VS.71%29.aspx" target="_blank">Region.IsVisible</a> that lets you test whether a rectangle is partially or fully contained within a graphics region. During the rendering of each rectangular tile, the method was used to check whether the tile was going to be part of the region associated with the polygon and was counted if it was going to be. Even though, this was the most efficient solution for the problem, we did nt see 100% accuracy sometimes when rotation transformation was applied to the tiles. Still havent found an answer to this anomaly.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/tiling-2d-polygon-gdi/">Tiling a 2-D Polygon using C# GDI+</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2006/07/eyespot_ajax_ap/' rel='bookmark' title='Permanent Link: Eyespot &#8211; AJAX App for Video Editing'>Eyespot &#8211; AJAX App for Video Editing</a></li><li><a href='http://www.pathf.com/blogs/2008/07/linq-to-my-domain/' rel='bookmark' title='Permanent Link: LINQ to My Domain'>LINQ to My Domain</a></li><li><a href='http://www.pathf.com/blogs/2007/01/how_to_really_d/' rel='bookmark' title='Permanent Link: How to REALLY do Page Preview in Java with Embedded HTML Rendering'>How to REALLY do Page Preview in Java with Embedded HTML Rendering</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/tiling-2d-polygon-gdi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Architectural Anxiety and the Waterfall Approach</title>
		<link>http://www.pathf.com/blogs/2010/02/architectural-anxiety-waterfall-approach/</link>
		<comments>http://www.pathf.com/blogs/2010/02/architectural-anxiety-waterfall-approach/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:50:58 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Divide and Conquer]]></category>
		<category><![CDATA[Stress]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4778</guid>
		<description><![CDATA[ photo credit: bark
We've discussed the benefits of Agile development before and that the iterative approach to building the architecture -- where you explore architectural issues (very few apps are completely new and unknown) a little bit through each iteration -- is an effective method for arriving at a good application architecture. What is less [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/architectural-anxiety-waterfall-approach/">Architectural Anxiety and the Waterfall Approach</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/06/agile-development-improves-roi-%e2%80%93-but-rfp-processes-are-stuck-in-waterfall/' rel='bookmark' title='Permanent Link: Agile Development Improves ROI – But RFP Processes are Stuck in Waterfall.'>Agile Development Improves ROI – But RFP Processes are Stuck in Waterfall.</a></li><li><a href='http://www.pathf.com/blogs/2009/10/waterfall-cost-bugs-launch/' rel='bookmark' title='Permanent Link: Under the Waterfall: The Cost of Bugs After Launch'>Under the Waterfall: The Cost of Bugs After Launch</a></li><li><a href='http://www.pathf.com/blogs/2007/12/ia-and-agility/' rel='bookmark' title='Permanent Link: IA and agility'>IA and agility</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style='float:right;padding:10px'><a href="http://www.flickr.com/photos/49503168860@N01/4257136773/" title="an unwitting victim...bwahahhahahaa" target="_blank"><img src="http://farm5.static.flickr.com/4044/4257136773_5634a21fa2_m.jpg" alt="an unwitting victim...bwahahhahahaa" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by/2.0/" title="Attribution License" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/49503168860@N01/4257136773/" title="bark" target="_blank">bark</a></small></div>
<p>We've discussed the benefits of Agile development before and that the iterative approach to building the architecture -- where you explore architectural issues (very few apps are completely new and unknown) a little bit through each iteration -- is an effective method for arriving at a good application architecture. What is less obvious is the psychological benefit to working in this way.</p>
<p>It's frankly been a while since I've participated in a large waterfall project directly (one benefit of working for a firm that does agile software product development), but I regularly talk with folks who are still in the corporate trenches doing things the old fashioned way. One thing that hasn't changed is the <strong>BIG ARCHITECTURE</strong> wrestling match up front. Management wants to know the architecture, the guys with "architect" in their job titles want to know the architecture (so they can criticize, natch), the project manager(s) want to know the architecture. How will we scale? How will we ensure security? More useless brainpower is spent on this ultimately fruitless task -- solving problems that end up being no problem at all -- than almost any other activity in the project.</p>
<p><span id="more-4778"></span></p>
<p>What mostly isn't recognized by participants and observers is the psychological burden this puts on the development teach. Making big decisions early, often in the absence of critical information, produces a lot of anxiety. This often leads to poor decision making and procrastination (where necessary decisions are pushed back to a later date).</p>
<p>Agile, in contrast, provides a natural divide and conquer approach to breaking big tasks into smaller tasks and allows the development team to make decisions at the right time with the right information. I'm halfway convinced that all of those "enterprise architects" at big firms are really just stress counselors for tech leads suffering from waterfall anxiety.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/architectural-anxiety-waterfall-approach/">Architectural Anxiety and the Waterfall Approach</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2009/06/agile-development-improves-roi-%e2%80%93-but-rfp-processes-are-stuck-in-waterfall/' rel='bookmark' title='Permanent Link: Agile Development Improves ROI – But RFP Processes are Stuck in Waterfall.'>Agile Development Improves ROI – But RFP Processes are Stuck in Waterfall.</a></li><li><a href='http://www.pathf.com/blogs/2009/10/waterfall-cost-bugs-launch/' rel='bookmark' title='Permanent Link: Under the Waterfall: The Cost of Bugs After Launch'>Under the Waterfall: The Cost of Bugs After Launch</a></li><li><a href='http://www.pathf.com/blogs/2007/12/ia-and-agility/' rel='bookmark' title='Permanent Link: IA and agility'>IA and agility</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/architectural-anxiety-waterfall-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit Testing Sphinx</title>
		<link>http://www.pathf.com/blogs/2010/02/unit-testing-sphinx/</link>
		<comments>http://www.pathf.com/blogs/2010/02/unit-testing-sphinx/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 01:28:17 +0000</pubDate>
		<dc:creator>Sharad Jain</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4776</guid>
		<description><![CDATA[Sphinx (and its rails plugin thinking-sphinx) is my choice of search engine on ruby/rails project. It is powerful yet super easy to setup.
However, testing Sphinx code is not easy at first. Since Sphinx works by leverging database commit hooks, it cannot be tested within the bounds of unit testing framework that rails provides. This is [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/unit-testing-sphinx/">Unit Testing Sphinx</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/11/testing-various-roles-in-ruby-on-rails/' rel='bookmark' title='Permanent Link: Testing various roles in ruby on rails'>Testing various roles in ruby on rails</a></li><li><a href='http://www.pathf.com/blogs/2008/05/agile-development-and-testing-unit-or-montecarlo/' rel='bookmark' title='Permanent Link: Agile Development and Testing: Unit or Montecarlo?'>Agile Development and Testing: Unit or Montecarlo?</a></li><li><a href='http://www.pathf.com/blogs/2009/04/unit-testing-can-you-afford-not-to/' rel='bookmark' title='Permanent Link: Unit Testing: Can You Afford Not To?'>Unit Testing: Can You Afford Not To?</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Sphinx (and its rails plugin thinking-sphinx) is my choice of search engine on ruby/rails project. It is powerful yet super easy to setup.</p>
<p>However, testing Sphinx code is not easy at first. Since Sphinx works by leverging database commit hooks, it cannot be tested within the bounds of unit testing framework that rails provides. This is understandable because, in rails testing, a transaction is started before each test that is bound to rollback after the test is finished. Since the test data is never committed, sphinx doesn't get a chance to index anything and cannot be tested.</p>
<p>The documentation for <a href="http://freelancing-god.github.com/ts/en/testing.html">sphinx testing</a> suggests using cucumber for integration testing. To me, cucumber test are still miles away from the smallest piece of sphinx code (inside Model) to be tested. So, I turned to <a href="http://github.com/rails/rails/blob/master/activerecord/test/cases/transactions_test.rb">how transactional code is tested in rails</a> framework for some cue.</p>
<p>Here is what I ended up with:</p>
<pre class="ruby">&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> TransactionalUserTest &lt; <span style="color:#6666ff; font-weight:bold;">ActiveSupport::TestCase</span>
  // any transactional test needs to have this
  <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">use_transactional_fixtures</span> = <span style="color:#0000FF; font-weight:bold;">false</span>
&nbsp;
  context <span style="color:#996600;">&quot;with no users in database&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    setup <span style="color:#9966CC; font-weight:bold;">do</span>
      // clear the existing data <span style="color:#9966CC; font-weight:bold;">for</span> our test - <span style="color:#9966CC; font-weight:bold;">not</span> sure <span style="color:#9966CC; font-weight:bold;">if</span> this affects other test but we use machinist instead of fixture files, so we should be good here.
      <span style="color:#9900CC;">User</span>.<span style="color:#9900CC;">destroy_all</span>
      UserProfile.<span style="color:#9900CC;">destroy_all</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    context <span style="color:#996600;">&quot;with a few users created&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
      setup <span style="color:#9966CC; font-weight:bold;">do</span>
        <span style="color:#0066ff; font-weight:bold;">@john</span> = <span style="color:#0066ff; font-weight:bold;">@david</span> = <span style="color:#0000FF; font-weight:bold;">nil</span>
        // any data <span style="color:#9966CC; font-weight:bold;">for</span> sphinx test should be wrapped <span style="color:#9966CC; font-weight:bold;">in</span> transaction so sphinx can see these changes
        User.<span style="color:#9900CC;">transaction</span> <span style="color:#9966CC; font-weight:bold;">do</span>
          <span style="color:#0066ff; font-weight:bold;">@john</span> = User.<span style="color:#9900CC;">make</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:first_name</span> =&gt; <span style="color:#996600;">&quot;John&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
          <span style="color:#0066ff; font-weight:bold;">@david</span> = User.<span style="color:#9900CC;">make</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:first_name</span> =&gt; <span style="color:#996600;">&quot;David&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
      should <span style="color:#996600;">&quot;find user with first name john&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
        // start sphinx server
        <span style="color:#6666ff; font-weight:bold;">ThinkingSphinx::Test</span>.<span style="color:#9900CC;">run</span> <span style="color:#9966CC; font-weight:bold;">do</span>
          // give sphinx an opportunity to index newly added data <span style="color:#006600; font-weight:bold;">&#40;</span>required before calling search<span style="color:#006600; font-weight:bold;">&#41;</span>
          <span style="color:#6666ff; font-weight:bold;">ThinkingSphinx::Test</span>.<span style="color:#9900CC;">index</span>
          assert_equal<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>@john<span style="color:#006600; font-weight:bold;">&#93;</span>, User.<span style="color:#9900CC;">search</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;john&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">collect</span><span style="color:#006600; font-weight:bold;">&#41;</span>
          assert_equal<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>@david<span style="color:#006600; font-weight:bold;">&#93;</span>, User.<span style="color:#9900CC;">search</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;david&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">collect</span><span style="color:#006600; font-weight:bold;">&#41;</span>
          assert_equal<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span>,User.<span style="color:#9900CC;">search</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;cheese&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">collect</span><span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;</pre>
<p>Isn't it nicer to be able to test sphinx code in isolation <img src='http://www.pathf.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/unit-testing-sphinx/">Unit Testing Sphinx</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2008/11/testing-various-roles-in-ruby-on-rails/' rel='bookmark' title='Permanent Link: Testing various roles in ruby on rails'>Testing various roles in ruby on rails</a></li><li><a href='http://www.pathf.com/blogs/2008/05/agile-development-and-testing-unit-or-montecarlo/' rel='bookmark' title='Permanent Link: Agile Development and Testing: Unit or Montecarlo?'>Agile Development and Testing: Unit or Montecarlo?</a></li><li><a href='http://www.pathf.com/blogs/2009/04/unit-testing-can-you-afford-not-to/' rel='bookmark' title='Permanent Link: Unit Testing: Can You Afford Not To?'>Unit Testing: Can You Afford Not To?</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/unit-testing-sphinx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flashback: The iPhone and the Early Days of the Web</title>
		<link>http://www.pathf.com/blogs/2010/02/flashback-iphone-early-days-web/</link>
		<comments>http://www.pathf.com/blogs/2010/02/flashback-iphone-early-days-web/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 21:19:07 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Disruption]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technologies and Platforms]]></category>
		<category><![CDATA[iPhone/Mobile]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Trends]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4774</guid>
		<description><![CDATA[
 photo credit: B Rosen
I remember my first real grownup and serious web project outside of the university environment. It was 1994 and SSL was a novelty. People were making insane predictions that one day up to $600 million (think Dr. Evil) worth of consumer goods would be sold on the web worldwide. In 2007, [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/flashback-iphone-early-days-web/">Flashback: The iPhone and the Early Days of the Web</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/12/ajax-and-browse/' rel='bookmark' title='Permanent Link: Ajax and Browsers: Recapitulating the Early Days of Personal Computers'>Ajax and Browsers: Recapitulating the Early Days of Personal Computers</a></li><li><a href='http://www.pathf.com/blogs/2008/10/will-q4-iphone-sales-surpass-expectations/' rel='bookmark' title='Permanent Link: Will Q4 iPhone Sales Surpass Expectations?'>Will Q4 iPhone Sales Surpass Expectations?</a></li><li><a href='http://www.pathf.com/blogs/2010/01/apples-earnings-call-enterprise-iphone-adoption-growth/' rel='bookmark' title='Permanent Link: Apple&#8217;s Earnings Call:  Enterprise iPhone Adoption Growth'>Apple&#8217;s Earnings Call:  Enterprise iPhone Adoption Growth</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px"><a title="269/365 - why even have that deal?" href="http://www.flickr.com/photos/82763263@N00/3681001732/" target="_blank"><img src="http://farm4.static.flickr.com/3590/3681001732_8ccd165965_m.jpg" border="0" alt="269/365 - why even have that deal?" /></a><br />
<small><a title="Attribution-NoDerivs License" href="http://creativecommons.org/licenses/by-nd/2.0/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="B Rosen" href="http://www.flickr.com/photos/82763263@N00/3681001732/" target="_blank">B Rosen</a></small></div>
<p>I remember my first real grownup and serious web project outside of the university environment. It was 1994 and SSL was a novelty. People were making insane predictions that one day up to $600 million (think Dr. Evil) worth of consumer goods would be sold on the web worldwide. In 2007, just <a href="http://www.emarketer.com/Reports/All/Emarketer_2000547.aspx" target="_blank">Canadian B2C sales were US$12.9 Billion</a>.</p>
<p>Some folks, especially startups and smaller companies, saw the web as an opportunity to shake up the established order and establish a new sales channel or an entirely new business model. They invested what they could in building the first of what became known as e-commerce sites. Among established players, and some more conservative smaller players, there was initial hostility toward the new medium. When in 1994 I proposed to Ameritech (now part of SBC/AT&amp;T) that they bring their lucrative print yellowpages online, I was run out of Hoffman Estates on a rail.</p>
<p><span id="more-4774"></span></p>
<p>The con arguments ran as follows:</p>
<ol>
<li>Investing in the web will increase our IT costs and require us to support lots of new and different technologies.</li>
<li>It will spoil our existing business model.</li>
<li>The platform is unproven. We have a proven client/server (desktop, etc., etc.) solution which is far better than some primitive web site.</li>
</ol>
<p>These were all valid points. And if the web was just the idea of some crazed developer, then it could have been safely ignored.</p>
<p>But the web was being rapidly adopted by both consumers and businesses, knocking down barriers to entry wherever it went. The network effect was about to slap the entrenched players upside the head.</p>
<p>Now we're seeing much the same thing in the world of mobile, which right now means mostly iPhone but will at some point include more players such as Android and perhaps Blackberry devices. The same objections are being raised towards the iPhone -- more IT costs, spoils our business, unproven/not capable -- and the answer is still the same: if you ignore iPhone/mobile, then the network effect is going to knock you upside the head.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/flashback-iphone-early-days-web/">Flashback: The iPhone and the Early Days of the Web</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/12/ajax-and-browse/' rel='bookmark' title='Permanent Link: Ajax and Browsers: Recapitulating the Early Days of Personal Computers'>Ajax and Browsers: Recapitulating the Early Days of Personal Computers</a></li><li><a href='http://www.pathf.com/blogs/2008/10/will-q4-iphone-sales-surpass-expectations/' rel='bookmark' title='Permanent Link: Will Q4 iPhone Sales Surpass Expectations?'>Will Q4 iPhone Sales Surpass Expectations?</a></li><li><a href='http://www.pathf.com/blogs/2010/01/apples-earnings-call-enterprise-iphone-adoption-growth/' rel='bookmark' title='Permanent Link: Apple&#8217;s Earnings Call:  Enterprise iPhone Adoption Growth'>Apple&#8217;s Earnings Call:  Enterprise iPhone Adoption Growth</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/flashback-iphone-early-days-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To the Moon: an iPhone with Wheels</title>
		<link>http://www.pathf.com/blogs/2010/02/moon-iphone-wheels/</link>
		<comments>http://www.pathf.com/blogs/2010/02/moon-iphone-wheels/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 20:42:09 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[iPhone/Mobile]]></category>
		<category><![CDATA[Google X Prize]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4771</guid>
		<description><![CDATA[
 photo credit: musiciennedusilence
A friend of mine from college is a physics professor who does a lot of stuff with the space station and the new Google Lunar X Prize, that awards up to $30 million for the first non-governmental organization to land a robot on the moon. He likes to get his students involved [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/moon-iphone-wheels/">To the Moon: an iPhone with Wheels</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/08/jquery-vs-proto/' rel='bookmark' title='Permanent Link: jQuery vs. Prototype: OO JavaScript with or without training wheels'>jQuery vs. Prototype: OO JavaScript with or without training wheels</a></li><li><a href='http://www.pathf.com/blogs/2008/07/developing-iphone-applications-using-ruby-on-rails-and-eclipse-part-2-displaying-iphone-content-to-the-client-also-up-on-ibm-developerworks/' rel='bookmark' title='Permanent Link: &#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks'>&#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks</a></li><li><a href='http://www.pathf.com/blogs/2008/11/iphone-view-testing-td/' rel='bookmark' title='Permanent Link: iPhone SDK: UIViewController Testing &amp; TDD'>iPhone SDK: UIViewController Testing &amp; TDD</a></li></ol>]]></description>
			<content:encoded><![CDATA[<div style="float:right;padding:10px"><a title="moon" href="http://www.flickr.com/photos/9675912@N08/4330665649/" target="_blank"><img src="http://farm5.static.flickr.com/4063/4330665649_96095d11cf_m.jpg" border="0" alt="moon" /></a><br />
<small><a title="Attribution License" href="http://creativecommons.org/licenses/by/2.0/" target="_blank"><img src="http://www.pathf.com/blogs/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="musiciennedusilence" href="http://www.flickr.com/photos/9675912@N08/4330665649/" target="_blank">musiciennedusilence</a></small></div>
<p>A friend of mine from college is a physics professor who does a lot of stuff with the space station and the new <a href="http://www.googlelunarxprize.org/" target="_blank">Google Lunar X Prize</a>, that awards up to $30 million for the first non-governmental organization to land a robot on the moon. He likes to get his students involved and has a gift for expressing things in terms they can immediately grasp. "The robot," he tells them, "can be small. Think of an iPhone with wheels."</p>
<p>When something has penetrated the collective consciousness the way the iPhone has, it changes the way we look at what is possible.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/moon-iphone-wheels/">To the Moon: an iPhone with Wheels</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2007/08/jquery-vs-proto/' rel='bookmark' title='Permanent Link: jQuery vs. Prototype: OO JavaScript with or without training wheels'>jQuery vs. Prototype: OO JavaScript with or without training wheels</a></li><li><a href='http://www.pathf.com/blogs/2008/07/developing-iphone-applications-using-ruby-on-rails-and-eclipse-part-2-displaying-iphone-content-to-the-client-also-up-on-ibm-developerworks/' rel='bookmark' title='Permanent Link: &#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks'>&#8220;Developing iPhone applications using Ruby on Rails and Eclipse, Part 2: Displaying iPhone content to the client&#8221; Also up on IBM Developerworks</a></li><li><a href='http://www.pathf.com/blogs/2008/11/iphone-view-testing-td/' rel='bookmark' title='Permanent Link: iPhone SDK: UIViewController Testing &amp; TDD'>iPhone SDK: UIViewController Testing &amp; TDD</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/moon-iphone-wheels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Would Steve Jobs Pitch YOUR Product?</title>
		<link>http://www.pathf.com/blogs/2010/02/steve-jobs-pitch-product/</link>
		<comments>http://www.pathf.com/blogs/2010/02/steve-jobs-pitch-product/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:23:48 +0000</pubDate>
		<dc:creator>Bob Moll</dc:creator>
				<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[User Experience Design]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[keynote]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[product manager]]></category>
		<category><![CDATA[Steve Jobs]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=4764</guid>
		<description><![CDATA[
It's no accident that Steve Jobs is arguably the ultimate technology pitch-man. He's worked with some of the best designers, ad agencies and creative people on the planet even since the early days of Apple. But how would he pitch your idea? It's a fun question to ask and I found a book that just [...]<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/steve-jobs-pitch-product/">How Would Steve Jobs Pitch YOUR Product?</a></p>



Related posts:<ol><li><a href='http://www.pathf.com/blogs/2006/09/salaries_go_up_/' rel='bookmark' title='Permanent Link: Salaries Go Up for Ajax Jobs'>Salaries Go Up for Ajax Jobs</a></li><li><a href='http://www.pathf.com/blogs/2006/04/scenarios_in_pr/' rel='bookmark' title='Permanent Link: Scenarios in Product and Project Management'>Scenarios in Product and Project Management</a></li><li><a href='http://www.pathf.com/blogs/2006/09/reconciling_the/' rel='bookmark' title='Permanent Link: Reconciling the Powers of Less and More in Product Design'>Reconciling the Powers of Less and More in Product Design</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-4765" title="presentation" src="http://www.pathf.com/blogs/wp-content/uploads/2010/02/presentation.jpg" alt="presentation" width="500" height="388" /></p>
<p>It's no accident that Steve Jobs is arguably the ultimate technology pitch-man. He's worked with some of the best designers, ad agencies and creative people on the planet even since the early days of Apple. But how would he pitch your idea? It's a fun question to ask and I found a book that just might have the answer. While browsing in a discount brick-and-mortar bookstore I came across "The Presentation Secrets of Steve Jobs" by Carmine Gallo of Businessweek.com.  There was one copy on the shelf and it immediately caught my attention. As I flipped through the pages, I was impressed with the many "how-to" pieces of wisdom. For example, you'll see how answering four simple questions can yield a powerful elevator speech. You'll see how to use high impact words, tight headlines and key numbers to get your point across in a way that seems effortless. While I think the book is a "must have on your desk" for product managers and marketers, I also think it's a great reference for designers to think about what makes a design more marketable and enticing to the customer.</p>
<p><hr>
<a href="http://www.pathf.com/">Pathfinder Development - creating innovative software that builds business value. </a>
<br/><br/><a href="http://www.pathf.com/blogs/2010/02/steve-jobs-pitch-product/">How Would Steve Jobs Pitch YOUR Product?</a></p>


<p>Related posts:<ol><li><a href='http://www.pathf.com/blogs/2006/09/salaries_go_up_/' rel='bookmark' title='Permanent Link: Salaries Go Up for Ajax Jobs'>Salaries Go Up for Ajax Jobs</a></li><li><a href='http://www.pathf.com/blogs/2006/04/scenarios_in_pr/' rel='bookmark' title='Permanent Link: Scenarios in Product and Project Management'>Scenarios in Product and Project Management</a></li><li><a href='http://www.pathf.com/blogs/2006/09/reconciling_the/' rel='bookmark' title='Permanent Link: Reconciling the Powers of Less and More in Product Design'>Reconciling the Powers of Less and More in Product Design</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2010/02/steve-jobs-pitch-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.110 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-19 21:40:29 -->
