<?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: Think a little, code a little</title>
	<atom:link href="http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/</link>
	<description>Thoughts on Software Development</description>
	<lastBuildDate>Sat, 11 Feb 2012 23:17:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Mark Needham</title>
		<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/comment-page-1/#comment-21369</link>
		<dc:creator>Mark Needham</dc:creator>
		<pubDate>Fri, 14 Aug 2009 00:25:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1512#comment-21369</guid>
		<description>@David the coding frenzy you describe sounds quite similar to what Uncle Bob would refer to as &#039;creating a mess&#039;! Which I suppose is exactly what it is. 

I&#039;m not even sure if people consciously do it or just get dragged into that practice when they feel the pressure. 

@Niilo I like the idea of delaying finalizing decisions so that you can change them later on. It&#039;d be interesting to know what techniques are useful for allowing us to do that successfully. 

I like your last paragraph, hadn&#039;t thought of it like that before but that&#039;s quite insightful.</description>
		<content:encoded><![CDATA[<p>@David the coding frenzy you describe sounds quite similar to what Uncle Bob would refer to as &#8216;creating a mess&#8217;! Which I suppose is exactly what it is. </p>
<p>I&#8217;m not even sure if people consciously do it or just get dragged into that practice when they feel the pressure. </p>
<p>@Niilo I like the idea of delaying finalizing decisions so that you can change them later on. It&#8217;d be interesting to know what techniques are useful for allowing us to do that successfully. </p>
<p>I like your last paragraph, hadn&#8217;t thought of it like that before but that&#8217;s quite insightful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: [ mkhairul.com ] &#187; Think a little, code a little..</title>
		<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/comment-page-1/#comment-21259</link>
		<dc:creator>[ mkhairul.com ] &#187; Think a little, code a little..</dc:creator>
		<pubDate>Tue, 11 Aug 2009 17:18:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1512#comment-21259</guid>
		<description>[...] to the comment on the post by Mark Needham, Think a little, code a little. Lazy coding often also takes the form of a &#8220;coding frenzy&#8221; where the euphoria of [...]</description>
		<content:encoded><![CDATA[<p>[...] to the comment on the post by Mark Needham, Think a little, code a little. Lazy coding often also takes the form of a &#8220;coding frenzy&#8221; where the euphoria of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Niilo Tippler</title>
		<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/comment-page-1/#comment-21174</link>
		<dc:creator>Niilo Tippler</dc:creator>
		<pubDate>Sun, 09 Aug 2009 18:53:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1512#comment-21174</guid>
		<description>I&#039;ve always been in favor of what I term &quot;Evolutionary Engineering&quot;, where the project evolves and changes during the development cycle as problems are encountered and resolved and new ideas come about from the growth of the code. I usually like to take a fair amount of time at the beginning thinking about my coding solutions, how I&#039;m going to structure things, and the overall architecture, then I start coding with an eye towards knowing that things will very likely change as I move forward. I build prototypes which provide me with rapid turnaround examples of specific functionality, which can then be modularized for easy implementation later, then I build the framework which allows me to test the basic framework. I always assume that a client is going to want something added that&#039;s out of scope of the original spec, so this keeps me from finalizing too much early on. Building in discrete steps allows the project to evolve. I like to consider all projects to be fluid - the spec is a guideline, but never set in stone. New ideas can come along at any time, and what looks good on paper doesn&#039;t always (in fact rarely) translate into a usable end product. I often provide suggestions to my clients during the development process of improvements to UI or functionality that have arisen from the results of prototyping and testing particular operations and overwhelmingly these changes become a part of the evolutionary process resulting in a much improved end product.

The ability to think-code-think-code and allow the project spec to be fluid and malleable is essential, in my opinion, to being able to deliver not only what the client asked for in the first place, but also all those extras that turn a good project into a great one and help to generate return business.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve always been in favor of what I term &#8220;Evolutionary Engineering&#8221;, where the project evolves and changes during the development cycle as problems are encountered and resolved and new ideas come about from the growth of the code. I usually like to take a fair amount of time at the beginning thinking about my coding solutions, how I&#8217;m going to structure things, and the overall architecture, then I start coding with an eye towards knowing that things will very likely change as I move forward. I build prototypes which provide me with rapid turnaround examples of specific functionality, which can then be modularized for easy implementation later, then I build the framework which allows me to test the basic framework. I always assume that a client is going to want something added that&#8217;s out of scope of the original spec, so this keeps me from finalizing too much early on. Building in discrete steps allows the project to evolve. I like to consider all projects to be fluid &#8211; the spec is a guideline, but never set in stone. New ideas can come along at any time, and what looks good on paper doesn&#8217;t always (in fact rarely) translate into a usable end product. I often provide suggestions to my clients during the development process of improvements to UI or functionality that have arisen from the results of prototyping and testing particular operations and overwhelmingly these changes become a part of the evolutionary process resulting in a much improved end product.</p>
<p>The ability to think-code-think-code and allow the project spec to be fluid and malleable is essential, in my opinion, to being able to deliver not only what the client asked for in the first place, but also all those extras that turn a good project into a great one and help to generate return business.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twitted by pramatrdev</title>
		<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/comment-page-1/#comment-21168</link>
		<dc:creator>Twitted by pramatrdev</dc:creator>
		<pubDate>Sun, 09 Aug 2009 15:19:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1512#comment-21168</guid>
		<description>[...] This post was Twitted by pramatrdev [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was Twitted by pramatrdev [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose Noheda</title>
		<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/comment-page-1/#comment-21151</link>
		<dc:creator>Jose Noheda</dc:creator>
		<pubDate>Sun, 09 Aug 2009 08:05:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1512#comment-21151</guid>
		<description>You&#039;ve just named my coding strategy. I seem unable to design upfront. On the other hand coding some general idea gives me an in-depth of the failures really quick. Of course, I understand that other people may feel different and prefer formal design steps.</description>
		<content:encoded><![CDATA[<p>You&#8217;ve just named my coding strategy. I seem unable to design upfront. On the other hand coding some general idea gives me an in-depth of the failures really quick. Of course, I understand that other people may feel different and prefer formal design steps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Morton</title>
		<link>http://www.markhneedham.com/blog/2009/08/05/think-a-little-code-a-little/comment-page-1/#comment-20959</link>
		<dc:creator>David Morton</dc:creator>
		<pubDate>Tue, 04 Aug 2009 16:06:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1512#comment-20959</guid>
		<description>I agree completely.  Lazy coding often also takes the form of a &quot;coding frenzy&quot; where the euphoria of programming combined with the anticipation of the client&#039;s happiness when a project is delivered early can cause a situation where the programmer hurries in order to create the single deliverable at the expense of the clean code base.  Unfortunately, this often has the opposite of the desired effect later on in the application lifecycle when the technical debt starts to catch up with you, and suddenly your maintenance time is increased and time between releases is decreased.  There&#039;s most certainly a balance.  One extreme assumes the future, while the other ignores it.  We certainly have a limited view of what&#039;s ahead.  Assume neither nothing nor everything, but assume something in between.  This is what &quot;think a little, code a little&quot; sounds like to me.</description>
		<content:encoded><![CDATA[<p>I agree completely.  Lazy coding often also takes the form of a &#8220;coding frenzy&#8221; where the euphoria of programming combined with the anticipation of the client&#8217;s happiness when a project is delivered early can cause a situation where the programmer hurries in order to create the single deliverable at the expense of the clean code base.  Unfortunately, this often has the opposite of the desired effect later on in the application lifecycle when the technical debt starts to catch up with you, and suddenly your maintenance time is increased and time between releases is decreased.  There&#8217;s most certainly a balance.  One extreme assumes the future, while the other ignores it.  We certainly have a limited view of what&#8217;s ahead.  Assume neither nothing nor everything, but assume something in between.  This is what &#8220;think a little, code a little&#8221; sounds like to me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

