<?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: Software Engineers should keep lab notebooks</title>
	<atom:link href="http://blog.nelhage.com/2010/05/software-and-lab-notebooks/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nelhage.com/2010/05/software-and-lab-notebooks/</link>
	<description>It's software. It's made of bugs.</description>
	<lastBuildDate>Fri, 03 Feb 2012 17:48:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Marc</title>
		<link>http://blog.nelhage.com/2010/05/software-and-lab-notebooks/comment-page-1/#comment-1039</link>
		<dc:creator>Marc</dc:creator>
		<pubDate>Tue, 04 May 2010 05:15:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nelhage.com/?p=217#comment-1039</guid>
		<description>&lt;p&gt;Nice. Two practical lessonsin this department:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you call the lab notebook a wiki, it may help at least some people swallow the pill more easily. The right wiki will also provide history and encourage editing which is a plus.  This has proven especially valuable for tasks which are not just conventional coding tasks. Adding to your list: setting up a dev environment (I wish on most platforms this was dominated by aptitude install ... but it can get much more complicated), release engineering, operational procedures, etc.  Of course, automation can help, but sometimes the cost/benefit favors documenting a manual process.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At my robotics startup, we have adopted the code inspection process from &quot;Code Complete&quot;. It is not without flaws, but in general I believe it has improved quality. Apropos to this post one part of the review process is for a scribe who is not the author to write down all observed defects. This keeps a reasonable record of changes after the initial dev effort (but of course you&#039;ll need some other mechanism to help with that).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
		<content:encoded><![CDATA[<p>Nice. Two practical lessonsin this department:</p>

<ol>
<li><p>If you call the lab notebook a wiki, it may help at least some people swallow the pill more easily. The right wiki will also provide history and encourage editing which is a plus.  This has proven especially valuable for tasks which are not just conventional coding tasks. Adding to your list: setting up a dev environment (I wish on most platforms this was dominated by aptitude install &#8230; but it can get much more complicated), release engineering, operational procedures, etc.  Of course, automation can help, but sometimes the cost/benefit favors documenting a manual process.  </p></li>
<li><p>At my robotics startup, we have adopted the code inspection process from &#8220;Code Complete&#8221;. It is not without flaws, but in general I believe it has improved quality. Apropos to this post one part of the review process is for a scribe who is not the author to write down all observed defects. This keeps a reasonable record of changes after the initial dev effort (but of course you&#8217;ll need some other mechanism to help with that).</p></li>
</ol>]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Riggle</title>
		<link>http://blog.nelhage.com/2010/05/software-and-lab-notebooks/comment-page-1/#comment-1037</link>
		<dc:creator>Kevin Riggle</dc:creator>
		<pubDate>Tue, 04 May 2010 00:15:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nelhage.com/?p=217#comment-1037</guid>
		<description>&lt;p&gt;I think this is a place where open-source projects conducted largely online have a big advantage -- when all discussion takes place over e-mail and IM, and they&#039;re publicly logged, the project gets a pretty clear record of the decisions the group made without the group having to take much extra effort to do so.  Obviously it&#039;s not 100%, but I think it&#039;s better there than in most of the proprietary software I&#039;ve worked on, where things are more often conveyed verbally and thus more likely to get lost or misremembered.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think this is a place where open-source projects conducted largely online have a big advantage &#8212; when all discussion takes place over e-mail and IM, and they&#8217;re publicly logged, the project gets a pretty clear record of the decisions the group made without the group having to take much extra effort to do so.  Obviously it&#8217;s not 100%, but I think it&#8217;s better there than in most of the proprietary software I&#8217;ve worked on, where things are more often conveyed verbally and thus more likely to get lost or misremembered.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey Bosboom</title>
		<link>http://blog.nelhage.com/2010/05/software-and-lab-notebooks/comment-page-1/#comment-1036</link>
		<dc:creator>Jeffrey Bosboom</dc:creator>
		<pubDate>Mon, 03 May 2010 20:25:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nelhage.com/?p=217#comment-1036</guid>
		<description>&lt;p&gt;From the &lt;a href=&quot;http://www.boost.org/development/requirements.html#Rationale_rationale&quot; rel=&quot;nofollow&quot;&gt;Boost library requirements and guidelines &quot;rationale rationale&quot;&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&quot;Beman Dawes comments: Failure to supply contemporaneous rationale for design decisions is a major defect in many software projects. Lack of accurate rationale causes issues to be revisited endlessly, causes maintenance bugs when a maintainer changes something without realizing it was done a certain way for some purpose, and shortens the useful lifetime of software.&lt;/p&gt;

&lt;p&gt;Rationale is fairly easy to provide at the time decisions are made, but very hard to accurately recover even a short time later.&quot;&lt;/p&gt;

&lt;p&gt;(As a side note, when reading this post in Thunderbird, clicking anywhere in the comments area caused Firefox to open a tab at the submit comments php page, with no content.  Not sure if that&#039;s Thunderbird&#039;s fault, or WordPress&#039;s.)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>From the <a href="http://www.boost.org/development/requirements.html#Rationale_rationale" rel="nofollow">Boost library requirements and guidelines &#8220;rationale rationale&#8221;</a>:</p>

<p>&#8220;Beman Dawes comments: Failure to supply contemporaneous rationale for design decisions is a major defect in many software projects. Lack of accurate rationale causes issues to be revisited endlessly, causes maintenance bugs when a maintainer changes something without realizing it was done a certain way for some purpose, and shortens the useful lifetime of software.</p>

<p>Rationale is fairly easy to provide at the time decisions are made, but very hard to accurately recover even a short time later.&#8221;</p>

<p>(As a side note, when reading this post in Thunderbird, clicking anywhere in the comments area caused Firefox to open a tab at the submit comments php page, with no content.  Not sure if that&#8217;s Thunderbird&#8217;s fault, or WordPress&#8217;s.)</p>]]></content:encoded>
	</item>
</channel>
</rss>

