<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Design doc template</title>
	<link>http://tech.puredanger.com/2007/10/25/design-doc-template/</link>
	<description>Alex Miller's technical blog</description>
	<pubDate>Thu, 28 Aug 2008 03:17:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.2</generator>

	<item>
		<title>by: LudoA</title>
		<link>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-12330</link>
		<pubDate>Tue, 30 Oct 2007 00:22:12 +0000</pubDate>
		<guid>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-12330</guid>
					<description>Could be helpful, although a template to help customers explain their needs/what they expect of a feature/... would be even more useful, IMHO. But I guess that's too project-specific...</description>
		<content:encoded><![CDATA[<p>Could be helpful, although a template to help customers explain their needs/what they expect of a feature/&#8230; would be even more useful, IMHO. But I guess that&#8217;s too project-specific&#8230;
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Alex</title>
		<link>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-12086</link>
		<pubDate>Sun, 28 Oct 2007 03:17:45 +0000</pubDate>
		<guid>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-12086</guid>
					<description>@Stan: This doc is more of a set of possible topics.  Generally for a particular feature only some of these make sense.  The intent is definitely to hit the high points for several audiences (tech, prod mgmt, qa) just enough that everyone can agree that what we're building is what we need.  

For certain projects, this is not enough.  For bigger, more critical, or less understood projects, you need to break these pieces out into requirements, design,  test plans, etc.  My personal opinion is that I'd rather undershoot and review than overshoot and waste time.  I've found similar templates like this to be a great compromise point.

The code is always the ultimate description of what the system does, by definition.  But I find it is often not the best medium for a descriptive rendering of what the intent of a large chunk of code is doing, particularly on a per-feature basis.  An ideal would be to have architectural docs that describe the overall system structure and per-feature docs that take a slice out of the system to explain a particular feature.  In both cases, pictures are gold.  Neither of these are easy to bleed into code.  In practice, I find it unlikely that either of these are kept up to date.  In lieu of that, having a statement of the original intent (and rejected alternatives) can be a gold mine at a later date.  

Sure, it'd be great if reqs and customer usage existed in other docs but in my (limited) experience they don't, or at least not in enough detail.  Admittedly, my experience tends toward the lightweight software startup world.  

P1 = must have, P2 = nice to have, P3 = stretch but unlikely.

I do not expect a full test plan in the testing section.  I expect a description of how (at a high level) testing will be accomplished, maybe a list of test ideas from a brainstorming question, existing system tests that can be leveraged, etc.  

I've used similar forms of this template in two previous jobs successfully.  I'm happy to work in a company small enough that the idea of a PMO elicits a hearty laugh.</description>
		<content:encoded><![CDATA[<p>@Stan: This doc is more of a set of possible topics.  Generally for a particular feature only some of these make sense.  The intent is definitely to hit the high points for several audiences (tech, prod mgmt, qa) just enough that everyone can agree that what we&#8217;re building is what we need.  </p>
<p>For certain projects, this is not enough.  For bigger, more critical, or less understood projects, you need to break these pieces out into requirements, design,  test plans, etc.  My personal opinion is that I&#8217;d rather undershoot and review than overshoot and waste time.  I&#8217;ve found similar templates like this to be a great compromise point.</p>
<p>The code is always the ultimate description of what the system does, by definition.  But I find it is often not the best medium for a descriptive rendering of what the intent of a large chunk of code is doing, particularly on a per-feature basis.  An ideal would be to have architectural docs that describe the overall system structure and per-feature docs that take a slice out of the system to explain a particular feature.  In both cases, pictures are gold.  Neither of these are easy to bleed into code.  In practice, I find it unlikely that either of these are kept up to date.  In lieu of that, having a statement of the original intent (and rejected alternatives) can be a gold mine at a later date.  </p>
<p>Sure, it&#8217;d be great if reqs and customer usage existed in other docs but in my (limited) experience they don&#8217;t, or at least not in enough detail.  Admittedly, my experience tends toward the lightweight software startup world.  </p>
<p>P1 = must have, P2 = nice to have, P3 = stretch but unlikely.</p>
<p>I do not expect a full test plan in the testing section.  I expect a description of how (at a high level) testing will be accomplished, maybe a list of test ideas from a brainstorming question, existing system tests that can be leveraged, etc.  </p>
<p>I&#8217;ve used similar forms of this template in two previous jobs successfully.  I&#8217;m happy to work in a company small enough that the idea of a PMO elicits a hearty laugh.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Stan</title>
		<link>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-12026</link>
		<pubDate>Sat, 27 Oct 2007 19:59:32 +0000</pubDate>
		<guid>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-12026</guid>
					<description>I like your &quot;what do they need to know&quot; question. I've always wanted to put this first in the overview:

_____ reads _____ to learn _____ so they can _____

If you can't fill it out, don't go on. ;-) This seems to have a little too much of everything for everybody, which rarely makes good reading for anybody.

&quot;describe this feature/task to a greater level of detail than can be done in code&quot; that's very scary. This information will be LOST in the finished system if it can't be said in code.

Requirements and Customer Usage sections seem to duplicate things I'd usually have in another document, in terms the business folks can write, read, validate, etc.

Priority 1 &amp;#38; 2 mean nothing to me. Hope they do to your reader. :-)

Test cases restate requirements. Don't Repeat Yourself. Maybe move them together into a two-column affair - requirement and how to prove you met it. Or - a really radical idea - write requirements as tests in the first place.

I have to admit I haven't had much success creating templates anybody actually uses. They look good for the Project Management Office, though.</description>
		<content:encoded><![CDATA[<p>I like your &#8220;what do they need to know&#8221; question. I&#8217;ve always wanted to put this first in the overview:</p>
<p>_____ reads _____ to learn _____ so they can _____</p>
<p>If you can&#8217;t fill it out, don&#8217;t go on. ;-) This seems to have a little too much of everything for everybody, which rarely makes good reading for anybody.</p>
<p>&#8220;describe this feature/task to a greater level of detail than can be done in code&#8221; that&#8217;s very scary. This information will be LOST in the finished system if it can&#8217;t be said in code.</p>
<p>Requirements and Customer Usage sections seem to duplicate things I&#8217;d usually have in another document, in terms the business folks can write, read, validate, etc.</p>
<p>Priority 1 &amp; 2 mean nothing to me. Hope they do to your reader. :-)</p>
<p>Test cases restate requirements. Don&#8217;t Repeat Yourself. Maybe move them together into a two-column affair - requirement and how to prove you met it. Or - a really radical idea - write requirements as tests in the first place.</p>
<p>I have to admit I haven&#8217;t had much success creating templates anybody actually uses. They look good for the Project Management Office, though.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Alex</title>
		<link>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-11853</link>
		<pubDate>Fri, 26 Oct 2007 13:19:09 +0000</pubDate>
		<guid>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-11853</guid>
					<description>Oops!  Fixed.  The dangers of copy/paste late at night....</description>
		<content:encoded><![CDATA[<p>Oops!  Fixed.  The dangers of copy/paste late at night&#8230;.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Nordine</title>
		<link>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-11835</link>
		<pubDate>Fri, 26 Oct 2007 08:51:00 +0000</pubDate>
		<guid>http://tech.puredanger.com/2007/10/25/design-doc-template/#comment-11835</guid>
					<description>The Word template: http://puredanger.com/techfiles/DesignNoteTemplate.doc</description>
		<content:encoded><![CDATA[<p>The Word template: <a href='http://puredanger.com/techfiles/DesignNoteTemplate.doc' rel='nofollow'>http://puredanger.com/techfiles/DesignNoteTemplate.doc</a>
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
