<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: Prototype Driven Development</title>
	<atom:link href="http://www.socialstartups.com/2008/09/25/prototype-driven-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/</link>
	<description>All that's new in the social computing space.</description>
	<pubDate>Tue, 06 Jan 2009 01:08:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Damian Watson</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-992</link>
		<dc:creator>Damian Watson</dc:creator>
		<pubDate>Fri, 26 Sep 2008 15:37:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-992</guid>
		<description>Some great ideas here and I can see it working very nicely in an internal development team, however, I fear that as a supplier to an external client, the needs of delivering to their requirement need a more managed approach unless they have come to you because they intrinsically trust your design.

Here's an interesting related article: http://www.theregister.co.uk/2008/09/26/dev_workshop_week1_roundup/</description>
		<content:encoded><![CDATA[<p>Some great ideas here and I can see it working very nicely in an internal development team, however, I fear that as a supplier to an external client, the needs of delivering to their requirement need a more managed approach unless they have come to you because they intrinsically trust your design.</p>
<p>Here&#8217;s an interesting related article: <a href="http://www.theregister.co.uk/2008/09/26/dev_workshop_week1_roundup/" rel="nofollow">http://www.theregister.co.uk/2008/09/26/dev_workshop_week1_roundup/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Clay Shafer</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-991</link>
		<dc:creator>Andrew Clay Shafer</dc:creator>
		<pubDate>Thu, 25 Sep 2008 22:43:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-991</guid>
		<description>IMHO, this is very close to what XP advocates with the following principles:
Make frequent small releases.
No functionality is added early.
The customer is always available.

I don't think you really understand Test Driven Development, but that's ok most people don't.  Your ideas are not incongruous with TDD, it's just that developers write the tests to drive the process.  The end result is usually well tested code that is easier to maintain. (developing this way is a skill and a culture, and it can take some getting used to)

I like your thought process, but there are definitely times when the development tasks are going to require some deeper diving and the prototype might not reflect those changes for the next day.  I think you also need to consider how to apply this to an existing product/code base.  Prototypes can be rapidly created in the greenfield phase, but an established product that needs new features can take much longer to change.

Thoughts?</description>
		<content:encoded><![CDATA[<p>IMHO, this is very close to what XP advocates with the following principles:<br />
Make frequent small releases.<br />
No functionality is added early.<br />
The customer is always available.</p>
<p>I don&#8217;t think you really understand Test Driven Development, but that&#8217;s ok most people don&#8217;t.  Your ideas are not incongruous with TDD, it&#8217;s just that developers write the tests to drive the process.  The end result is usually well tested code that is easier to maintain. (developing this way is a skill and a culture, and it can take some getting used to)</p>
<p>I like your thought process, but there are definitely times when the development tasks are going to require some deeper diving and the prototype might not reflect those changes for the next day.  I think you also need to consider how to apply this to an existing product/code base.  Prototypes can be rapidly created in the greenfield phase, but an established product that needs new features can take much longer to change.</p>
<p>Thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dondo</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-990</link>
		<dc:creator>dondo</dc:creator>
		<pubDate>Thu, 25 Sep 2008 19:20:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-990</guid>
		<description>This is the beginnings of a great idea -- although I suspect SCRUM advocates would suggest that it's "exactly" what SCRUM tries to accomplish (you do sweep a pretty important component under the carpet by ignoring prioritization: "if you don't know where you're going, you're lost."  Also, and equally, "Plans are easy.  Execution is hard.")

OTOH, if you want to see what this idea would look like if it was pretty fully fleshed out, take a look at:
From: http://gettingreal.37signals.com/

&lt;blockquote&gt;
Done. Start to think of it as a magical word. When you get to done it means something's been accomplished. A decision has been made and you can move on. Done means you're building momentum.

But wait, what if you screw up and make the wrong call? It's ok. This isn't brain surgery, it's a web app. As we keep saying, you'll likely have to revisit features and ideas multiple times during the process anyway. No matter how much you plan you're likely to get half wrong anyway. So don't do the "paralyis through analysis" thing. That only slows progress and saps morale.

Instead, value the importance of moving on and moving forward. Get in the rhythm of making decisions. Make a quick, simple call and then go back and change that decision if it doesn't work out.

Accept that decisions are temporary. Accept that mistakes will happen and realize it's no big deal as long as you can correct them quickly. Execute, build momentum, and move on. 
&lt;/blockquote&gt;</description>
		<content:encoded><![CDATA[<p>This is the beginnings of a great idea &#8212; although I suspect SCRUM advocates would suggest that it&#8217;s &#8220;exactly&#8221; what SCRUM tries to accomplish (you do sweep a pretty important component under the carpet by ignoring prioritization: &#8220;if you don&#8217;t know where you&#8217;re going, you&#8217;re lost.&#8221;  Also, and equally, &#8220;Plans are easy.  Execution is hard.&#8221;)</p>
<p>OTOH, if you want to see what this idea would look like if it was pretty fully fleshed out, take a look at:<br />
From: <a href="http://gettingreal.37signals.com/" rel="nofollow">http://gettingreal.37signals.com/</a></p>
<blockquote><p>
Done. Start to think of it as a magical word. When you get to done it means something&#8217;s been accomplished. A decision has been made and you can move on. Done means you&#8217;re building momentum.</p>
<p>But wait, what if you screw up and make the wrong call? It&#8217;s ok. This isn&#8217;t brain surgery, it&#8217;s a web app. As we keep saying, you&#8217;ll likely have to revisit features and ideas multiple times during the process anyway. No matter how much you plan you&#8217;re likely to get half wrong anyway. So don&#8217;t do the &#8220;paralyis through analysis&#8221; thing. That only slows progress and saps morale.</p>
<p>Instead, value the importance of moving on and moving forward. Get in the rhythm of making decisions. Make a quick, simple call and then go back and change that decision if it doesn&#8217;t work out.</p>
<p>Accept that decisions are temporary. Accept that mistakes will happen and realize it&#8217;s no big deal as long as you can correct them quickly. Execute, build momentum, and move on.
</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lenny</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-989</link>
		<dc:creator>Lenny</dc:creator>
		<pubDate>Thu, 25 Sep 2008 16:58:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-989</guid>
		<description>This is definitely an interesting idea.  What I am really curious about is the process that is needed for the "drive to launch".  From my experience in writing code, a daily prototype use doesn't leave time to fully develop out feature sets.  This will likely leave you with stubbed code throughout this iterative process leaving the amount of productionalization at the end to be very substantial.

I have experienced what you mention here (html and css) in a very iterative environment with a designer.  The results were fantastic for the polish of the experience, but it still left a lot of things that needed to be worked out in code and some that just were not scalable or time to glass was impacted.

An as for increased quality, it just means that you have correct fallback for failure cases which will occur.

Another criticism I have is that you are flaunting the no silos.  This is great but there still needs to be a single owner.  If dev 2 recommends a visual trick, and the UI designer nixes it.  That is it.  It should be that way as you still need signoff for launch and features.

All the criticism aside, I think there is a place for this type of process and it is a good stab at formalizing what I think many small teams already execute.</description>
		<content:encoded><![CDATA[<p>This is definitely an interesting idea.  What I am really curious about is the process that is needed for the &#8220;drive to launch&#8221;.  From my experience in writing code, a daily prototype use doesn&#8217;t leave time to fully develop out feature sets.  This will likely leave you with stubbed code throughout this iterative process leaving the amount of productionalization at the end to be very substantial.</p>
<p>I have experienced what you mention here (html and css) in a very iterative environment with a designer.  The results were fantastic for the polish of the experience, but it still left a lot of things that needed to be worked out in code and some that just were not scalable or time to glass was impacted.</p>
<p>An as for increased quality, it just means that you have correct fallback for failure cases which will occur.</p>
<p>Another criticism I have is that you are flaunting the no silos.  This is great but there still needs to be a single owner.  If dev 2 recommends a visual trick, and the UI designer nixes it.  That is it.  It should be that way as you still need signoff for launch and features.</p>
<p>All the criticism aside, I think there is a place for this type of process and it is a good stab at formalizing what I think many small teams already execute.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kristi Colvin</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-988</link>
		<dc:creator>Kristi Colvin</dc:creator>
		<pubDate>Thu, 25 Sep 2008 16:16:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-988</guid>
		<description>I do need to add, a "standards" guide is essential, in my opinion, for developing from prototypes. The prototypes themselves (one would think) communicate details, but the reality is there are so many small design details for charts, reports, screen layouts, interaction functions, etc. that you need a separate standards guide always present for developers so they know to implement things correctly and consistently. So in that regard, I do have additional documentation that goes with the prototypes.</description>
		<content:encoded><![CDATA[<p>I do need to add, a &#8220;standards&#8221; guide is essential, in my opinion, for developing from prototypes. The prototypes themselves (one would think) communicate details, but the reality is there are so many small design details for charts, reports, screen layouts, interaction functions, etc. that you need a separate standards guide always present for developers so they know to implement things correctly and consistently. So in that regard, I do have additional documentation that goes with the prototypes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kristi Colvin</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-987</link>
		<dc:creator>Kristi Colvin</dc:creator>
		<pubDate>Thu, 25 Sep 2008 16:04:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-987</guid>
		<description>This approach definitely works. I have done this for years - not that in a larger company we didn't also have all the typical software dev specs you would expect, but my design prototypes have driven virtually all the software I've worked on since about 2000. At my own startup, we always start with prototypes as a way to "think out loud" about what we're doing, and tools like Balsamiq's Mockups make doing quick prototyping easier. I've worked with design prototypes in every format imaginable, including Excel spreadsheets! (Not my favorite.) It is true that you have to reiterate the prototypes often, because of issues discovered during development. But this is my preferred way of doing software design &#38; development... it makes it so much easier for teams of people to brainstorm and reach agreement when they can SEE what they are creating.</description>
		<content:encoded><![CDATA[<p>This approach definitely works. I have done this for years - not that in a larger company we didn&#8217;t also have all the typical software dev specs you would expect, but my design prototypes have driven virtually all the software I&#8217;ve worked on since about 2000. At my own startup, we always start with prototypes as a way to &#8220;think out loud&#8221; about what we&#8217;re doing, and tools like Balsamiq&#8217;s Mockups make doing quick prototyping easier. I&#8217;ve worked with design prototypes in every format imaginable, including Excel spreadsheets! (Not my favorite.) It is true that you have to reiterate the prototypes often, because of issues discovered during development. But this is my preferred way of doing software design &amp; development&#8230; it makes it so much easier for teams of people to brainstorm and reach agreement when they can SEE what they are creating.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brett Witt</title>
		<link>http://www.socialstartups.com/2008/09/25/prototype-driven-development/comment-page-1/#comment-986</link>
		<dc:creator>Brett Witt</dc:creator>
		<pubDate>Thu, 25 Sep 2008 15:39:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.socialstartups.com/?p=57#comment-986</guid>
		<description>Definitely not a bad idea.  It's extremely similar to eXtreme programming (at least most flavors of it) in that you attempt to present an application to the user/customer/whatever as soon as possible and then iterate on it on a regular schedule.

http://en.wikipedia.org/wiki/Extreme_Programming

Personally for me I always follow something similar to this as I'm not skilled enough to write a ton of code, execute/compile it, and expect anything usable to come out!  Nice post.  ^_^</description>
		<content:encoded><![CDATA[<p>Definitely not a bad idea.  It&#8217;s extremely similar to eXtreme programming (at least most flavors of it) in that you attempt to present an application to the user/customer/whatever as soon as possible and then iterate on it on a regular schedule.</p>
<p><a href="http://en.wikipedia.org/wiki/Extreme_Programming" rel="nofollow">http://en.wikipedia.org/wiki/Extreme_Programming</a></p>
<p>Personally for me I always follow something similar to this as I&#8217;m not skilled enough to write a ton of code, execute/compile it, and expect anything usable to come out!  Nice post.  ^_^</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.778 seconds -->
