<?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: “Productization”</title>
	<atom:link href="http://lostechies.com/chadmyers/2009/10/30/productization/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/chadmyers/2009/10/30/productization/</link>
	<description>Software development, testing, and techie life</description>
	<lastBuildDate>Thu, 08 Mar 2012 22:19:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Caladin</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1110</link>
		<dc:creator>Caladin</dc:creator>
		<pubDate>Wed, 04 Nov 2009 00:22:52 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1110</guid>
		<description>If you don&#039;t have it, set up elmah to mail all errors to a 
email account that the lead gets forwarded to him.

Also set it up to store the errors locally on the servers as XML so you can browse tehm later (though with email you almost never use this)

Make sure your logging on it&#039;s most verbose level logs the entry and exit of every function, especially in your libraries.
this way you&#039;ll almost always be one page of code from your error immediatlye after browsing the call stack &amp; the logs in the exception. Once things are stable, you can turn this down to get more performance. (though you will pretty quickly become addicted and want to keep it on all the time)


</description>
		<content:encoded><![CDATA[<p>If you don&#8217;t have it, set up elmah to mail all errors to a<br />
email account that the lead gets forwarded to him.</p>
<p>Also set it up to store the errors locally on the servers as XML so you can browse tehm later (though with email you almost never use this)</p>
<p>Make sure your logging on it&#8217;s most verbose level logs the entry and exit of every function, especially in your libraries.<br />
this way you&#8217;ll almost always be one page of code from your error immediatlye after browsing the call stack &#038; the logs in the exception. Once things are stable, you can turn this down to get more performance. (though you will pretty quickly become addicted and want to keep it on all the time)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chadmyers</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1109</link>
		<dc:creator>chadmyers</dc:creator>
		<pubDate>Mon, 02 Nov 2009 16:09:38 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1109</guid>
		<description>Great feedback everyone. Lots of good wisdom here.  Thanks a ton!</description>
		<content:encoded><![CDATA[<p>Great feedback everyone. Lots of good wisdom here.  Thanks a ton!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damian</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1108</link>
		<dc:creator>Damian</dc:creator>
		<pubDate>Mon, 02 Nov 2009 10:52:09 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1108</guid>
		<description>Never do a live data migration / schema change / bulk update after midnight.
Script it, test it, save it for the morning.
</description>
		<content:encoded><![CDATA[<p>Never do a live data migration / schema change / bulk update after midnight.<br />
Script it, test it, save it for the morning.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Venu</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1107</link>
		<dc:creator>Venu</dc:creator>
		<pubDate>Mon, 02 Nov 2009 04:15:26 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1107</guid>
		<description>Read this book

http://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213

</description>
		<content:encoded><![CDATA[<p>Read this book</p>
<p><a href="http://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213" rel="nofollow">http://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: phat shantz</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1106</link>
		<dc:creator>phat shantz</dc:creator>
		<pubDate>Sat, 31 Oct 2009 18:03:26 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1106</guid>
		<description>By the time your program grows up, graduates, and moves off to production, your company and product infrastructure should be as solid, inviolable, and rigorous as any assembly line.

Production can be a very revealing time if pre-production has taken a different tack or has been approached with less rigor or professionalism.  You fight like you train.  You release in production like you release in pre-production.  If that frightens you, then go back, change your pre-production patterns to those that more-resemble full production and try to release another beta.  If it is much harder then you have done well.  If it is the same, either you are too rigid in pre-production or you don&#039;t know what it&#039;s like to run a production pathway.

Your exception-noting loop must contain communications, discrimination (what is worst, what is next), replication and remediation pathways, remediation plans, and full version release processes.

The release process includes feature/bug tracking, feature addition/bug fix, release definitions, change control, versioning, test candidates, test harnesses, final builds, test results, and release candidates with their release installers.

The only thing worse than introducing a bug in software is introducing more while you fix the first.  For this reason, the version release process can never short-circuit any of your testing and durability design validation processes.

Application revisions must be strictly (but that is not to say tightly) controlled.  Any build and release process must follow the same steps regardless of urgency.  A release candidate must be a complete build.  It must be built using the exact same process as previous releases (of the same major version).  It must be tested with the same (or more) unit, data, interactivity, automation, and other testing.  It must only be released if verified 100% by the same person tasked with releasing every build.

Feedback from the customer is vital.  So, too, is personal and compassionate response to customer feedback.  It is essential that every company offering consumer products have a consumer advocate on staff.  In a software company, this person should intimately understand the software, but still be able to take the customer&#039;s side.  &quot;We can&#039;t make it do that,&quot; is not a valid response to a bug report.

Before a release, take a team poll.  Everyone must agree that this release candidate satisfies all requirements and durability for a production release.  If not, then do not release the product.  Go back.  You still have plenty of time until the moment you release.  Then you are now and forever out of time.  

Give it some thought.
</description>
		<content:encoded><![CDATA[<p>By the time your program grows up, graduates, and moves off to production, your company and product infrastructure should be as solid, inviolable, and rigorous as any assembly line.</p>
<p>Production can be a very revealing time if pre-production has taken a different tack or has been approached with less rigor or professionalism.  You fight like you train.  You release in production like you release in pre-production.  If that frightens you, then go back, change your pre-production patterns to those that more-resemble full production and try to release another beta.  If it is much harder then you have done well.  If it is the same, either you are too rigid in pre-production or you don&#8217;t know what it&#8217;s like to run a production pathway.</p>
<p>Your exception-noting loop must contain communications, discrimination (what is worst, what is next), replication and remediation pathways, remediation plans, and full version release processes.</p>
<p>The release process includes feature/bug tracking, feature addition/bug fix, release definitions, change control, versioning, test candidates, test harnesses, final builds, test results, and release candidates with their release installers.</p>
<p>The only thing worse than introducing a bug in software is introducing more while you fix the first.  For this reason, the version release process can never short-circuit any of your testing and durability design validation processes.</p>
<p>Application revisions must be strictly (but that is not to say tightly) controlled.  Any build and release process must follow the same steps regardless of urgency.  A release candidate must be a complete build.  It must be built using the exact same process as previous releases (of the same major version).  It must be tested with the same (or more) unit, data, interactivity, automation, and other testing.  It must only be released if verified 100% by the same person tasked with releasing every build.</p>
<p>Feedback from the customer is vital.  So, too, is personal and compassionate response to customer feedback.  It is essential that every company offering consumer products have a consumer advocate on staff.  In a software company, this person should intimately understand the software, but still be able to take the customer&#8217;s side.  &#8220;We can&#8217;t make it do that,&#8221; is not a valid response to a bug report.</p>
<p>Before a release, take a team poll.  Everyone must agree that this release candidate satisfies all requirements and durability for a production release.  If not, then do not release the product.  Go back.  You still have plenty of time until the moment you release.  Then you are now and forever out of time.  </p>
<p>Give it some thought.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1105</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Sat, 31 Oct 2009 01:13:48 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1105</guid>
		<description>From a totally different point of view, and this all depends on your app and audience, of course:

1.  Support in place to handle a bunch of questions from new users, many of whom will do things you would have never thought of.

2.  Administator(s?) to handle accounts, roles, permissions

3.  Some kind of doc/video showing how to use the application.  

</description>
		<content:encoded><![CDATA[<p>From a totally different point of view, and this all depends on your app and audience, of course:</p>
<p>1.  Support in place to handle a bunch of questions from new users, many of whom will do things you would have never thought of.</p>
<p>2.  Administator(s?) to handle accounts, roles, permissions</p>
<p>3.  Some kind of doc/video showing how to use the application.  </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mendicant</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1104</link>
		<dc:creator>mendicant</dc:creator>
		<pubDate>Sat, 31 Oct 2009 00:55:17 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1104</guid>
		<description>The worst thing that happens to us is when we have an app go bad and none of the Ops guys are around to get us into the server and get logs, etc.

Make sure you have a good way of not only logging the errors, but getting access to them (if possible), or at least an easy way for them to forward the bad ones to you.

In the end, we have started putting elmah onto our prod apps with only the devs having access and it&#039;s helped us provide far better support for our clients.</description>
		<content:encoded><![CDATA[<p>The worst thing that happens to us is when we have an app go bad and none of the Ops guys are around to get us into the server and get logs, etc.</p>
<p>Make sure you have a good way of not only logging the errors, but getting access to them (if possible), or at least an easy way for them to forward the bad ones to you.</p>
<p>In the end, we have started putting elmah onto our prod apps with only the devs having access and it&#8217;s helped us provide far better support for our clients.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Brandsma</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1103</link>
		<dc:creator>Chris Brandsma</dc:creator>
		<pubDate>Fri, 30 Oct 2009 20:18:13 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1103</guid>
		<description>1. Never underestimate the importance of a good installation process.
2. AutoUpdate is gold.
3. Test on EVERY platform you support (seems silly, but is overlooked).  Basically, test on as many machines you can.  Best case, find a teenage girl with a social media addiction and run it on her computer.  If it can run there (with ever virus known to man) you are probably doing good.
4.  The amount of testing required for an external release is double that of an internal release.  Plan accordingly.  Internal releases can be (more easily) backed out and get a second chance.  No such luck for external releases.  You just look stupid.
5. Gold Standard: don&#039;t just log errors, automatically upload them to your server.
</description>
		<content:encoded><![CDATA[<p>1. Never underestimate the importance of a good installation process.<br />
2. AutoUpdate is gold.<br />
3. Test on EVERY platform you support (seems silly, but is overlooked).  Basically, test on as many machines you can.  Best case, find a teenage girl with a social media addiction and run it on her computer.  If it can run there (with ever virus known to man) you are probably doing good.<br />
4.  The amount of testing required for an external release is double that of an internal release.  Plan accordingly.  Internal releases can be (more easily) backed out and get a second chance.  No such luck for external releases.  You just look stupid.<br />
5. Gold Standard: don&#8217;t just log errors, automatically upload them to your server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: KevDog</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1102</link>
		<dc:creator>KevDog</dc:creator>
		<pubDate>Fri, 30 Oct 2009 19:02:01 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1102</guid>
		<description>The most famous mistake is &quot;Never get involved in a land war in Asia, but only slightly less well-known is: don&#039;t go in against a Sicilian, when deployment is on the line&quot;.
</description>
		<content:encoded><![CDATA[<p>The most famous mistake is &#8220;Never get involved in a land war in Asia, but only slightly less well-known is: don&#8217;t go in against a Sicilian, when deployment is on the line&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: KevDog</title>
		<link>http://lostechies.com/chadmyers/2009/10/30/productization/#comment-1101</link>
		<dc:creator>KevDog</dc:creator>
		<pubDate>Fri, 30 Oct 2009 18:56:13 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2009/10/30/productization.aspx#comment-1101</guid>
		<description>What I find to be one of the biggest helps in the early phases of deployment is to add a very quick means of gathering user feedback. We have a silverlight/wpf  control that we add to products in development so that clients/users can give us feedback and impressions. It writes to a dedicated database that lists the function or page they are using, along with what there notes and complaints are. Some products have a &quot;send feedback&quot; link, but we have found that having them go outside the system is a barrier to getting more information.

It&#039;s been invaluable in turning around user feedback into action items. </description>
		<content:encoded><![CDATA[<p>What I find to be one of the biggest helps in the early phases of deployment is to add a very quick means of gathering user feedback. We have a silverlight/wpf  control that we add to products in development so that clients/users can give us feedback and impressions. It writes to a dedicated database that lists the function or page they are using, along with what there notes and complaints are. Some products have a &#8220;send feedback&#8221; link, but we have found that having them go outside the system is a barrier to getting more information.</p>
<p>It&#8217;s been invaluable in turning around user feedback into action items. </p>
]]></content:encoded>
	</item>
</channel>
</rss>
