<?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: The Source Code is the Design</title>
	<atom:link href="http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design</link>
	<description></description>
	<lastBuildDate>Fri, 12 Mar 2010 03:55:20 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Basil Vandegriend</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-69990</link>
		<dc:creator>Basil Vandegriend</dc:creator>
		<pubDate>Thu, 11 Dec 2008 04:01:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-69990</guid>
		<description>@Jack - Thanks for the kind words! It means a lot to me to receive your positive feedback as the original author. I&#039;m glad that I accurately reflected your ideas.</description>
		<content:encoded><![CDATA[<p>@Jack &#8211; Thanks for the kind words! It means a lot to me to receive your positive feedback as the original author. I&#8217;m glad that I accurately reflected your ideas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jack Reeves</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-69980</link>
		<dc:creator>Jack Reeves</dc:creator>
		<pubDate>Thu, 11 Dec 2008 00:11:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-69980</guid>
		<description>Good summary Basil. Have we broken &#039;100&#039; yet of those who &quot;get it&quot;. Sometimes I&#039;m afraid it doesn&#039;t seem like it to me, but it is always nice to see someone else who does a better job of explaining it than I did.</description>
		<content:encoded><![CDATA[<p>Good summary Basil. Have we broken &#8216;100&#8242; yet of those who &#8220;get it&#8221;. Sometimes I&#8217;m afraid it doesn&#8217;t seem like it to me, but it is always nice to see someone else who does a better job of explaining it than I did.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kmilo</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-59447</link>
		<dc:creator>kmilo</dc:creator>
		<pubDate>Fri, 15 Aug 2008 22:39:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-59447</guid>
		<description>You&#039;re post is pretty easy to misunderstand I guess that happens because the controversial subject, the tittle &quot;The Source Code is the Design&quot; but that misunderstand should be reduced by &quot;One may get the impression that Jack is just a cowboy coder who disdains the traditional notion of design. The following quote, however, shows that Jack values all types of design&quot; and finally killed reading the 2 Jack Reeves articles, but as you can see in every post of slashdot is more the people commenting than the ones reading all the referenced documents, so you have to be prepare to receive comments from people who read different amounts of the subject.

The more important things for me in What Is Software Design?:
1) The high level structural design is not a complete software design; it is just a structural framework for the detailed design. We have very limited capabilities for rigorously validating a high level design so coding, Testing and debugging are design validation

2) Because high level structural design is just an small definition of software design it is probably better to let the original designers write the original code (refine their design), rather than have someone else coding with only the high level structural design as guide

By the way you miss the last l in the link
http://www.developerdotstar.com/mag/articles/reeves_design.html</description>
		<content:encoded><![CDATA[<p>You&#8217;re post is pretty easy to misunderstand I guess that happens because the controversial subject, the tittle &#8220;The Source Code is the Design&#8221; but that misunderstand should be reduced by &#8220;One may get the impression that Jack is just a cowboy coder who disdains the traditional notion of design. The following quote, however, shows that Jack values all types of design&#8221; and finally killed reading the 2 Jack Reeves articles, but as you can see in every post of slashdot is more the people commenting than the ones reading all the referenced documents, so you have to be prepare to receive comments from people who read different amounts of the subject.</p>
<p>The more important things for me in What Is Software Design?:<br />
1) The high level structural design is not a complete software design; it is just a structural framework for the detailed design. We have very limited capabilities for rigorously validating a high level design so coding, Testing and debugging are design validation</p>
<p>2) Because high level structural design is just an small definition of software design it is probably better to let the original designers write the original code (refine their design), rather than have someone else coding with only the high level structural design as guide</p>
<p>By the way you miss the last l in the link<br />
<a href="http://www.developerdotstar.com/mag/articles/reeves_design.html" rel="nofollow">http://www.developerdotstar.com/mag/articles/reeves_design.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Basil Vandegriend</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58293</link>
		<dc:creator>Basil Vandegriend</dc:creator>
		<pubDate>Sun, 03 Aug 2008 18:34:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58293</guid>
		<description>@Venkman - that is a neat idea, but it depends on how you define code. I would define code as something that is machine-interpretable, so I wouldn&#039;t agree that a high level design or requirements are code.

@Jeremy - I&#039;ll tackle your points in reverse order. Regarding tests, Jack is saying that the action of testing is part of the design process. He is not saying that the tests themselves are part of the design. (I have heard some argue that automated unit tests can help with understanding the code, so it that sense they might function as part of the design documentation.) 

Your other points all seem to assume that the code is an implementation or instantiation of a separate design. I agree the customer may need to see a high-level design document. But what Jack and I are saying that the code _is_ the detailed design specification. You could perhaps say that the code (as detailed design) implements the high-level design, and both levels of design need to fulfill the customer&#039;s requirements. But I don&#039;t agree that saying this implies there can&#039;t be defects.

@Quick Comment - I&#039;d agree if you said code is too low level to convey high-level design or architecture instead of just design. I didn&#039;t mention it in my article, but in the appendix of the book Jack provided some additional follow-up remarks, one of which discussed the importance of architecture documentation. You are not the only one who seems to assume that Jack or myself is saying that separate design documentation is not needed. I&#039;m not sure why people are coming to this conclusion, but this is not the point we are trying to make.</description>
		<content:encoded><![CDATA[<p>@Venkman &#8211; that is a neat idea, but it depends on how you define code. I would define code as something that is machine-interpretable, so I wouldn&#8217;t agree that a high level design or requirements are code.</p>
<p>@Jeremy &#8211; I&#8217;ll tackle your points in reverse order. Regarding tests, Jack is saying that the action of testing is part of the design process. He is not saying that the tests themselves are part of the design. (I have heard some argue that automated unit tests can help with understanding the code, so it that sense they might function as part of the design documentation.) </p>
<p>Your other points all seem to assume that the code is an implementation or instantiation of a separate design. I agree the customer may need to see a high-level design document. But what Jack and I are saying that the code _is_ the detailed design specification. You could perhaps say that the code (as detailed design) implements the high-level design, and both levels of design need to fulfill the customer&#8217;s requirements. But I don&#8217;t agree that saying this implies there can&#8217;t be defects.</p>
<p>@Quick Comment &#8211; I&#8217;d agree if you said code is too low level to convey high-level design or architecture instead of just design. I didn&#8217;t mention it in my article, but in the appendix of the book Jack provided some additional follow-up remarks, one of which discussed the importance of architecture documentation. You are not the only one who seems to assume that Jack or myself is saying that separate design documentation is not needed. I&#8217;m not sure why people are coming to this conclusion, but this is not the point we are trying to make.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Quick Comment</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58242</link>
		<dc:creator>Quick Comment</dc:creator>
		<pubDate>Sun, 03 Aug 2008 09:18:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58242</guid>
		<description>Code is too low level to convey design. Compare the size of a UML diagram to the code that implements it.

Huge difference, especially if it was a conceptual diagram.</description>
		<content:encoded><![CDATA[<p>Code is too low level to convey design. Compare the size of a UML diagram to the code that implements it.</p>
<p>Huge difference, especially if it was a conceptual diagram.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Venkman</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58238</link>
		<dc:creator>Venkman</dc:creator>
		<pubDate>Sun, 03 Aug 2008 07:54:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58238</guid>
		<description>Let&#039;s take this the other way around...

What if we could take the design just as another coding phase? In fact, if we take the whole process of software develoment this must be so. Requirements, design, coding... are just translations of the ideas into successive forms of &quot;code&quot;.

Requirement gathering is a form of coding, with a syntax quite strict a lot of times. You codify the needs of the client into tables, bullet points or whatever.

Design translates that into another code, one which organizes those tables, bulletpoints or whatever into stories, use cases, etc. The language used can also be somewhat strict and it&#039;s certainly not natural language. The design document is coded into &quot;developer language&quot;, a form of code &quot;compiled&quot; to &quot;run&quot; in the developer head. S/He then translates it into another code, the so called source code.


So The Design is Source Code too.</description>
		<content:encoded><![CDATA[<p>Let&#8217;s take this the other way around&#8230;</p>
<p>What if we could take the design just as another coding phase? In fact, if we take the whole process of software develoment this must be so. Requirements, design, coding&#8230; are just translations of the ideas into successive forms of &#8220;code&#8221;.</p>
<p>Requirement gathering is a form of coding, with a syntax quite strict a lot of times. You codify the needs of the client into tables, bullet points or whatever.</p>
<p>Design translates that into another code, one which organizes those tables, bulletpoints or whatever into stories, use cases, etc. The language used can also be somewhat strict and it&#8217;s certainly not natural language. The design document is coded into &#8220;developer language&#8221;, a form of code &#8220;compiled&#8221; to &#8220;run&#8221; in the developer head. S/He then translates it into another code, the so called source code.</p>
<p>So The Design is Source Code too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Singer</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58203</link>
		<dc:creator>Jeremy Singer</dc:creator>
		<pubDate>Sun, 03 Aug 2008 01:48:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58203</guid>
		<description>I disagree.
Code is a way of implementing a design that fulfills the requirements of the customer.
If code = design, then there are never any bugs because of this tautology.
When delivering to the customer, the customer may never see the code - but should be able to interact and examine the design.
Without a design that is separate from the code, changes over the lifetime of the code are difficult to agree on and implement.
From the point of view of the developer, without a design all I can tell is that the code builds or does not build.
Tests are good, but they are products of the design, not the design itself.</description>
		<content:encoded><![CDATA[<p>I disagree.<br />
Code is a way of implementing a design that fulfills the requirements of the customer.<br />
If code = design, then there are never any bugs because of this tautology.<br />
When delivering to the customer, the customer may never see the code &#8211; but should be able to interact and examine the design.<br />
Without a design that is separate from the code, changes over the lifetime of the code are difficult to agree on and implement.<br />
From the point of view of the developer, without a design all I can tell is that the code builds or does not build.<br />
Tests are good, but they are products of the design, not the design itself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Basil Vandegriend</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58176</link>
		<dc:creator>Basil Vandegriend</dc:creator>
		<pubDate>Sat, 02 Aug 2008 21:30:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58176</guid>
		<description>@Lugnut - The book came out in 2003, but the article was originally written and published in 1992. I see that my wording in that paragraph was unclear, so I have revised it to make it clear that I am referring to the article and not the book.

Upon reflection, perhaps the title of the book&#039;s appendix and my article is not the most accurate portrayal of Jack&#039;s article, but I think it is fairly close. Note that I quote Jack as saying that up-front design is still important (&quot;we desperately need good design at all levels.&quot;)</description>
		<content:encoded><![CDATA[<p>@Lugnut &#8211; The book came out in 2003, but the article was originally written and published in 1992. I see that my wording in that paragraph was unclear, so I have revised it to make it clear that I am referring to the article and not the book.</p>
<p>Upon reflection, perhaps the title of the book&#8217;s appendix and my article is not the most accurate portrayal of Jack&#8217;s article, but I think it is fairly close. Note that I quote Jack as saying that up-front design is still important (&#8221;we desperately need good design at all levels.&#8221;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lugnut</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58174</link>
		<dc:creator>Lugnut</dc:creator>
		<pubDate>Sat, 02 Aug 2008 20:41:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58174</guid>
		<description>Pretty sure that book came out in 2002, not 1992, and has both Java and C++ examples. 

&quot;The Source Code Is the Design&quot; is an XP concept. Jim Coplien, among others, has argued that more up-front design than just the code itself is appropriate in an agile approach.</description>
		<content:encoded><![CDATA[<p>Pretty sure that book came out in 2002, not 1992, and has both Java and C++ examples. </p>
<p>&#8220;The Source Code Is the Design&#8221; is an XP concept. Jim Coplien, among others, has argued that more up-front design than just the code itself is appropriate in an agile approach.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Basil Vandegriend</title>
		<link>http://www.basilv.com/psd/blog/2008/the-source-code-is-the-design/comment-page-1#comment-58170</link>
		<dc:creator>Basil Vandegriend</dc:creator>
		<pubDate>Sat, 02 Aug 2008 20:01:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/?p=122#comment-58170</guid>
		<description>Jack and I are not arguing that you never need design documentation separate from the code. The main point isn&#039;t about the documentation, it is about the nature of coding - that it is really a design activity. A corollary is that code is the final design specification, and thus that separate architecture and design documents are merely supporting the creation of the code rather than being more important than the code, as many traditionally-run projects seem to imply.</description>
		<content:encoded><![CDATA[<p>Jack and I are not arguing that you never need design documentation separate from the code. The main point isn&#8217;t about the documentation, it is about the nature of coding &#8211; that it is really a design activity. A corollary is that code is the final design specification, and thus that separate architecture and design documents are merely supporting the creation of the code rather than being more important than the code, as many traditionally-run projects seem to imply.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
