<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Less Post More GET</title>
	<atom:link href="http://lesspostmoreget.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lesspostmoreget.com</link>
	<description>Thoughts on software and project management</description>
	<lastBuildDate>Tue, 22 Jun 2010 21:04:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lesspostmoreget.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/e74268594cb8ff54e003127d4a5c7ff6?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Less Post More GET</title>
		<link>http://lesspostmoreget.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lesspostmoreget.com/osd.xml" title="Less Post More GET" />
	<atom:link rel='hub' href='http://lesspostmoreget.com/?pushpress=hub'/>
		<item>
		<title>Google needs to add this Gmail feature.</title>
		<link>http://lesspostmoreget.com/2010/05/13/google-needs-to-add-this-gmail-feature/</link>
		<comments>http://lesspostmoreget.com/2010/05/13/google-needs-to-add-this-gmail-feature/#comments</comments>
		<pubDate>Thu, 13 May 2010 15:15:14 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[email]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=102</guid>
		<description><![CDATA[Have you ever received an email, sent to a list, where the sender put everyone in the to: or cc: field of the email? This has happened to me several times over the past few weeks.  As someone who has spent several years in the email marketing business, I&#8217;m always a bit curious (and irritated) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=102&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Have you ever received an email, sent to a list, where the sender put everyone in the to: or cc: field of the email?</p>
<p>This has happened to me several times over the past few weeks.  As someone who has spent several years in the <a href="http://www.inboxfox.com/">email marketing business</a>, I&#8217;m always a bit curious (and irritated) and I often peek under the covers to view the list of subscribers.</p>
<p>Last year I received a broadcast email from CCAP, the state agency that sells the data (a SOAP interface) we use for <a href="http://ForeclosureAlarm.com">ForeclosureAlarm.com</a>. The email included all their other customers in the &#8220;to:&#8221; field.  It was <strong>very interesting</strong> to see a list of other companies that purchase that data.  Very interesting.</p>
<p>Don&#8217;t get me wrong, I don&#8217;t take this lightly.  I get a little upset when this happens.  Not this upset,<span style="text-align:center; display: block;"><a href="http://lesspostmoreget.com/2010/05/13/google-needs-to-add-this-gmail-feature/"><img src="http://img.youtube.com/vi/c0ndsXVaPwc/2.jpg" alt="" /></a></span></p>
<p>but I&#8217;m not a happy camper that my email address has been shared with hundreds of people I don&#8217;t know. Sometimes I&#8217;ll even reply back to the sender letting them know about this magical thing called a bcc.</p>
<p>This gets me to the google and their gmail service.  You see, gmail already does some fancy things with their service.  For example, if you say something in the email about an attachment, but you don&#8217;t actually attach a file, <a href="http://gmailblog.blogspot.com/2008/09/new-in-labs-handy-intern-tweaks.html">they tell you</a>.  Pretty slick and a very nice feature to keep people from embarrassment.</p>
<p>Gmail <strong>should</strong> be checking emails that include a bunch (dozens or more?) addresses in the <strong>cc:</strong> or <strong>to:</strong> fields and then provide a friendly note to the sender, with maybe a link to a knowledge base article, that maybe the sender wants to actually put all those addresses in the <strong>bcc:</strong> field <strong>and why</strong>. It would help protect their customers from abusing their friends email address and it would make gmail better.  A win win.</p>
<p>There you go Google, keep track of improper use of the &#8220;to:&#8221; field by your users and it&#8217;ll help keep me from feeling like <a href="http://www.youtube.com/watch?v=LJBo92iItp4&amp;feature=related">this</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=102&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2010/05/13/google-needs-to-add-this-gmail-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/c0ndsXVaPwc/2.jpg" medium="image" />
	</item>
		<item>
		<title>Thoughts on Pair Programming</title>
		<link>http://lesspostmoreget.com/2010/04/07/thoughts-on-pair-programming/</link>
		<comments>http://lesspostmoreget.com/2010/04/07/thoughts-on-pair-programming/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 02:50:48 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=86</guid>
		<description><![CDATA[Many articles have been written on the benefits of pair programming.  Often, (including the wikipedia article) the focus is on the typing aspect of programming &#8211; the speed at which code is created as well as the real time review of what is typed.  I believe this is one of the least important aspects of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=86&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Many articles have been written on the benefits of <a href="http://en.wikipedia.org/wiki/Pair_programming">pair programming</a>.  Often, (including the wikipedia article) the focus is on the typing aspect of programming &#8211; the speed at which code is created as well as the real time review of what is typed.  I believe this is one of the least important aspects of pair programming.</p>
<h2>Programming is more about Design than Typing</h2>
<p>Over the years I&#8217;ve noticed a difference between great programmers and average ones.</p>
<blockquote><p>Average programmers are often seen typing.</p>
<p>Great programmers are often seen staring at code.</p></blockquote>
<p>The reason, it seems, is because <strong>great programmers are thinking bigger</strong>.  They&#8217;re thinking about dryness, code consolidation, reuse, simplicity, using the existing framework, and a lot of other things than the specific <a href="http://www.pivotaltracker.com/">tracker</a> task they&#8217;ve been assigned.  Average programmers focus more on simply creating the code and tests for that task.  As a percentage of their work, average programmers type more.</p>
<p>Thus, focusing on the typing aspect of programming is biased toward the mediocre. It is the &#8220;small lever&#8221; within software development.  The big lever, the one that effects the long term cost of software development and maintenance is design.  And design comes from thinking.</p>
<h2>Design (and thinking) is improved by dialogue</h2>
<p>The real power of pair programming comes about due to the <strong>dialogue between the developers</strong>.  In order to present a design idea, the developer needs to put his/her idea into <strong>words</strong> and that process alone is often very valuable.  It is very easy to have an idea about how to solve something, yet gloss over some of the details or complex issues.  By taking a vague design thought and putting it into words, the person with the idea is actually learning about his/her idea. Obviously,  this process of verbalizing a design is usually missing when working solo and often a developer will simply head out in a &#8220;direction&#8221; confident they will figure out the details as they proceed.  With pair programming, a pair usually doesn&#8217;t allow this.</p>
<blockquote><p>This verbalizing is inherently a good thought process.  The gaps in your thinking are exposed.</p></blockquote>
<p>Along with discussing the solution design, the developer also likely will state their assumptions about why they think something should be done.  The assumptions could be about risks, costs, testability, etc.  And again, that dialogue between developers leads to further knowledge transfer and understanding.</p>
<p>Here&#8217;s a quote from <a href="http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF">The Costs and Benefits of Pair Programming</a></p>
<blockquote><p>We often came up with different ideas about how the design should go and the result of arguing over which one was better often led to a truly superior hybrid design.</p></blockquote>
<p>One last note about design.  I have found that pair programming tends to keep developers near the minimum of the cost curve (written about in <a href="http://lesspostmoreget.com/2010/01/21/line-count-and-maintenance-cost/">Line Count and Maintenance Cost</a>) instead of the arcane and wordy areas of the graph.</p>
<p>To sum it up, forget about all the nitpicky stuff in pair programming, that is not the long lever. It&#8217;s about quality and maintainability of software, but that will only happen if the developers are truly pair programming and not simply sitting together at the same keyboard.  But that&#8217;s a different post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=86&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2010/04/07/thoughts-on-pair-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>
	</item>
		<item>
		<title>Lean != Agile</title>
		<link>http://lesspostmoreget.com/2010/02/26/lean-agile/</link>
		<comments>http://lesspostmoreget.com/2010/02/26/lean-agile/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 16:00:19 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=99</guid>
		<description><![CDATA[Lately I&#8217;ve been reading a lot of software development articles which use the words Lean and Agile as if they&#8217;re synonyms. They aren&#8217;t. I&#8217;ve been implementing both lean and agile processes since the early 90&#8242;s.  The concepts aren&#8217;t new, but they are relatively new to the software development world.  I&#8217;ve read about and taught TPS, SMED, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=99&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been reading a lot of software development articles which use the words Lean and Agile as if they&#8217;re synonyms.</p>
<p>They aren&#8217;t.</p>
<p>I&#8217;ve been implementing both lean and agile processes since the early 90&#8242;s.  The concepts aren&#8217;t new, but they are relatively new to the software development world.  I&#8217;ve read about and taught <a href="http://en.wikipedia.org/wiki/Toyota_Production_System">TPS</a>, <a href="http://en.wikipedia.org/wiki/SMED">SMED</a>, and many other parts of lean production as well as many of the concepts used in <a href="http://en.wikipedia.org/wiki/Agile_manufacturing">agile manufacturing</a>.  Their application to software is incredibly similar.</p>
<h2>Lean is an inward focus.</h2>
<p>Lean is a measure of the entity separate from its customers and historically is a <strong>measurement of waste</strong>.  Reduce waste and you are more lean.  The Toyota Production System (one of the oldest lean manufacturing system) has a constant focus on the elimination of waste.</p>
<p>Lean is loved by many executives because it conforms to the &#8220;<strong>world as machine&#8221;</strong> view. <a href="http://en.wikipedia.org/wiki/Taylorism">Taylorism</a>, and it&#8217;s descendants such as business process re-engineering, have viewed the business entity and its processes (and the larger scale systems the organization exists within) from a mindset of planning and control &#8211; again, a world view most managers seem to prefer.</p>
<h2>Agile is an outward focus.</h2>
<p>Agile is dirty, organic, unknowable, unplannable, which makes managers and executives uncomfortable.</p>
<p>To be Agile, you do need to be somewhat lean, but the leanness is FOR agility, not the goal.  The difference is important.</p>
<p>Agile is measured not with internal measurements, but as a measure of <strong>how well the entity responds to changes in the external environment</strong>.  Waste and leanness are not the goal and as <a href="http://en.wikipedia.org/wiki/Theory_of_Constraints">Eli Goldrat has shown time and time again</a>, being more lean in the wrong places can make you much, much less agile.</p>
<p>It&#8217;s important to understand why agility has become so important over the last several decades.  It&#8217;s due to the continual shortening of product life cycles, customer order cycles, and the increase of product competition due to information exchange.  No longer can you release a product once every few years.  Even the <strong>idea of software versions is becoming somewhat obsolete</strong> (what &#8220;version&#8221; is the google search engine?).</p>
<h2>Which to focus on?</h2>
<p>I spend most of my time in the web world where agility, the ability to adapt to a changing competitive landscape, is the number one competitive advantage for a software firm.</p>
<blockquote><p>Agility is customer focused and these days the customer is king.</p></blockquote>
<p>So I choose agility over leanness every day.  It isn&#8217;t even close.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=99&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2010/02/26/lean-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>
	</item>
		<item>
		<title>Line count and maintenance cost</title>
		<link>http://lesspostmoreget.com/2010/01/21/line-count-and-maintenance-cost/</link>
		<comments>http://lesspostmoreget.com/2010/01/21/line-count-and-maintenance-cost/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 00:50:42 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=79</guid>
		<description><![CDATA[We all know that the less lines of code (SLOC), the lower the maintenance cost, right?  Not quite.  As with most things in this world, there exist marginal returns in the pursuit of brevity. Over the past few years I&#8217;ve been working a lot more with Ruby and the Rails framework.  I&#8217;m not sure why, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=79&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>We all know that the less lines of code (SLOC), the lower the maintenance cost, right?  Not quite.  As with most things in this world, there exist marginal returns in the pursuit of brevity.</p>
<p>Over the past few years I&#8217;ve been working a lot more with Ruby and the Rails framework.  I&#8217;m not sure why, but there seems to be a social norm in the community of impressing others by consolidating code to as <strong>few lines as possible</strong> (often just one) with the (mistaken) belief that the code is better.  And that sometimes makes me <a href="http://www.youtube.com/watch?v=c0ndsXVaPwc">feel like this</a>.</p>
<p>Those programmers that create some of this amazing, yet arcane code are usually some of the <a href="http://hashrocket.com">best programmers</a> I&#8217;ve ever worked with.</p>
<p>The problem is that they&#8217;re often misguided in this pursuit of brevity.</p>
<p>The relationship is probably not linear and there is likely not only diminishing marginal returns (which are almost always inescapable), but there is likely a negative relationship at some point.  The reason is that although the advanced programmer can handle the complexity of the &#8220;arcane&#8221; lines of code, those that maintain code are often not the ones writing it &#8211; specifically and also in skill level.  The more arcane the code is, the more time it will take those maintaining the code to understand it.</p>
<p>The relationship is probably like this graph.</p>
<p><a href="http://lesspostmoreget.files.wordpress.com/2010/06/picture-3.png"><img class="alignnone size-full wp-image-113" title="Maintenance cost and lines of code" src="http://lesspostmoreget.files.wordpress.com/2010/06/picture-3.png?w=500&#038;h=291" alt="" width="500" height="291" /></a></p>
<p>It&#8217;s been my experience that good programmers do not need to be reminded of writing DRY and concise code.  Quite the opposite.  As a project manager, I believe it is necessary to inform and remind those great programmers of the potential for increasing costs due to an <strong>overemphasis</strong> on the reduction of lines of code.  Strange but true.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=79&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2010/01/21/line-count-and-maintenance-cost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>

		<media:content url="http://lesspostmoreget.files.wordpress.com/2010/06/picture-3.png" medium="image">
			<media:title type="html">Maintenance cost and lines of code</media:title>
		</media:content>
	</item>
		<item>
		<title>25 Thoughts on Agile Development</title>
		<link>http://lesspostmoreget.com/2009/09/02/thoughts-on-agile-development/</link>
		<comments>http://lesspostmoreget.com/2009/09/02/thoughts-on-agile-development/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 05:11:53 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[software development methodology]]></category>
		<category><![CDATA[risk management]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.wordpress.com/?p=8</guid>
		<description><![CDATA[When I worked for the State of Wisconsin (as a contractor), I had many great conversations with Mark and Jon about agile software development. One day I wrote down a list of 25 thoughts on risk management and testing.  Eventually I&#8217;ll weave these ideas into articles, but for now, just a &#60;ul&#62; * Everyone contributes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=8&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>When I worked for the State of Wisconsin (as a contractor), I had many great conversations with <a href="http://blog.markmceahern.com/">Mark</a> and <a href="http://blog.l4rk.com/">Jon</a> about agile software development.</p>
<p>One day I wrote down a list of 25 thoughts on risk management and testing.  Eventually I&#8217;ll weave these ideas into articles, but for now, just a &lt;ul&gt;</p>
<p>* Everyone contributes risks</p>
<p>* No risk exists without probability and impact</p>
<p>* No impact is infinite</p>
<p>* All impacts are measurable</p>
<p>* Risks drive level of design</p>
<p><span id="more-8"></span></p>
<p>* Risks drive test plans</p>
<p>* Testing directly affects design</p>
<p>* TDD is not 100%.  The decision heuristic is risk.</p>
<p>* Exploratory testing approach is publicly known so customers and decision makers can know what has been tested.</p>
<p>* <a href="http://lesspostmoreget.com/2009/08/26/nothing-is-required/">The word &#8220;requirements&#8221; promotes simplistic thinking</a>.  We develop <strong>features</strong> up until the point at which a person or team decides to deploy.  Some features are never implemented.  Listing as requirements makes people think in binary mode instead of order of importance to the organization.</p>
<p>* Measure progress based on running features tested.  Compare sum of the weights completed with the total targeted feature set weight.</p>
<p>* Features all have a &#8220;weight&#8221; relative to other features within the same project.</p>
<p>* A feature without a running test is analogous to &#8220;works on my computer.&#8221;</p>
<p>* In all projects there is a point at which the set of claims tests are a more accurate statement of what the software does than the list of features (or requirements for you old schoolers.)</p>
<p>* Some features like &#8220;easy to learn&#8221; are not testable claims.  Are they?</p>
<p>* A goal of gathering and writing features is to have them written as claims.</p>
<p>* The best types of claims have inputs and outputs because there is less interpretation in the process from documenting the feature to writing the code and tests.</p>
<p>* Tests are either named or described in a way that relates them to a feature.</p>
<p>* The build process generates a list of all test results for a project.  The tests for a project can exist in multiple places (web app, shared component, project specific component)</p>
<p>* Risks have the greatest focus of the project team.  Not the &#8220;requirements&#8221; document.  It is a fallacy that software development is about creating a 100% complete list of requirements and then coding to that list.</p>
<p>* Risks are the most managed &#8220;thing.&#8221; Later in the development process, issues become the primary management tool.</p>
<p>* A project has a list of tests and you are able to click a link to view the actual source code of the test.</p>
<p>* Each test has a history of pass/fail.</p>
<p>* When a developer completes an issue, they add a comment in the issue message that can be run by the reactor and will send a result to the nosy list.</p>
<p>* A daily email is sent of verification results.  Project name -&gt; className.testName of failures with link.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=8&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2009/09/02/thoughts-on-agile-development/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>
	</item>
		<item>
		<title>Nothing is required, it&#8217;s all about features</title>
		<link>http://lesspostmoreget.com/2009/08/26/nothing-is-required/</link>
		<comments>http://lesspostmoreget.com/2009/08/26/nothing-is-required/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:46:11 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[software development methodology]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[requirements]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.wordpress.com/?p=9</guid>
		<description><![CDATA[Please banish the use of the word &#8220;Requirements&#8221; from your software development lexicon.  Immediately. For many software teams the requirements document is the king of documents. You know the routine. The software team works with the customer (or customer proxy) to put together a &#8220;complete&#8221; list of &#8220;requirements&#8221;. Once that is done, the team writes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=9&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Please banish the use of the word &#8220;Requirements&#8221; from your software development lexicon.  Immediately.</p>
<p>For many software teams the requirements document is the king of documents.</p>
<p>You know the routine.  The software team works with the customer (or customer proxy) to put together a &#8220;complete&#8221; list of &#8220;requirements&#8221;.  Once that is done, the team writes the software implementing the requirements and voila! the project is done.</p>
<p>Or maybe not.</p>
<p><span id="more-9"></span></p>
<p><strong>Every</strong> software project I&#8217;ve ever been on has involved scope management.  This is a process of determining if a requirement is truly a requirement for right now and whether it could be delayed until part of a future version or release. This is performed not only when &#8220;requirements&#8221; are being first developed, but also during development/testing/deployment in an effort to meet a project timeline constraint.</p>
<h2>Words Matter</h2>
<p>In the Agile development world, &#8220;requirements&#8221; is sometimes replaced with &#8220;features&#8221;.  This is a very important change, mostly related to the meaning of words and <a href="http://en.wikipedia.org/wiki/Cognitive_dissonance">cognitive dissonance</a>.</p>
<p>Think about it.  &#8220;<a href="http://www.merriam-webster.com/dictionary/requirement">Requirement</a>&#8221; is based on the word &#8220;require&#8221; &#8211; something compulsory or necessary by rule. For someone to agree to postpone a &#8220;requirement&#8221;, you are basically asking them to admit it wasn&#8217;t actually required in the first place &#8211; thus, it wasn&#8217;t a &#8220;real&#8221; requirement.  And therein lies the problem&#8230;</p>
<blockquote><p>Asking someone to postpone a &#8220;requirement&#8221; is asking them to admit a mistake.</p></blockquote>
<p>This points to the beauty of using the word &#8220;feature&#8221; when describing the software desired.  Features connote desires.  And it is OK for customers to desire pretty much everything.  &#8220;You want features, load me up!&#8221;  Throw features on the deck, list them like crazy.  Pile them on, as project managers, we&#8217;re not afraid of hundreds or thousands of features.  Knock yourself out &#8211; as long as they are prioritized.</p>
<p>Once we start developing, we can then start having conversations such as:</p>
<ul>
<li> Do we have enough features to deploy?</li>
<li>Would you like to change the priorities of the features you&#8217;ve listed?</li>
<li>Any new features?&#8221;</li>
</ul>
<p>Those are much, much easier conversations to have and project decisions will be made much quicker without the debates about whether a &#8220;requirement&#8221; is <strong>actually</strong> a <em>requirement</em>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=9&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2009/08/26/nothing-is-required/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>
	</item>
		<item>
		<title>Login forms are broken in ruby on rails</title>
		<link>http://lesspostmoreget.com/2009/08/14/login-forms-are-broken/</link>
		<comments>http://lesspostmoreget.com/2009/08/14/login-forms-are-broken/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:46:08 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[software security]]></category>
		<category><![CDATA[software usability]]></category>
		<category><![CDATA[don't do this]]></category>
		<category><![CDATA[risk management]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=36</guid>
		<description><![CDATA[Risk mitigation of user name guessing is not done by obtuse error messages displayed back to the user.  If you want to mitigate this risk, you need to use data.  <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=36&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>It isn&#8217;t <strong>just</strong> Ruby on Rails login forms that are broken. The <strong>majority of login forms</strong> on the internet are fundamentally broken.</p>
<p>In what appears to be some form of risk management strategy, these login forms introduce a different risk to the websites that use the default behaviors &#8211; in RoR sites, this is often either AuthLogic or RestfulAuthentication.</p>
<p>Both are broken in a big way.</p>
<p><span id="more-36"></span>First, the bug.  And you might not even recognize it is a bug because the behaviour is so wide spread, so ingrained, and so &#8220;sensible&#8221;.</p>
<p>On almost every login form, if I submit <strong>either</strong> the wrong username <strong>OR</strong> the wrong password.  I get the same error message.  Usually it&#8217;ll be something brief like the following.<br />
<img class="alignnone size-full wp-image-37" title="bad form" src="http://lesspostmoreget.files.wordpress.com/2009/08/picture-3.png?w=500&#038;h=244" alt="bad form" width="500" height="244" /></p>
<p>Notice the very important word in this message.  <strong>OR</strong>.  Because the error message is the same if I enter the wrong user name OR the wrong password, I don&#8217;t know which piece of data I entered incorrectly.</p>
<p>I&#8217;m guessing virtually everyone reading this is now thinking &#8220;well yeah, if you tell them which piece is wrong, someone can keep guessing until they get it right.&#8221;</p>
<p>Before we get into that, what are the risks being mitigated in this process?  You don&#8217;t want someone to hack into one of your user&#8217;s accounts, right?</p>
<p>Right.</p>
<p>But what else?  How about the risk that someone, a new user, comes back to your site and has forgotten which password they are using?  Maybe <a href="http://lesspostmoreget.com/2008/03/22/passwords-gone-wild/">you forced them to use some complex password</a>.  Maybe not.  In any case, maybe they want to use your site, but it isn&#8217;t really <strong>that</strong> important.  As web app builders, we&#8217;re constantly thinking about lowering the barriers to join and begin using a web application, right? Why would we add a barrier here.  It is possible that a user with difficulties signing in might just leave.  Never to come back.  Never to <strong>pay you</strong> for your service.</p>
<p>All because you were not kind in telling him/her why the credentials they gave on login didn&#8217;t work.</p>
<p>So, that&#8217;s a risk.  And for a startup, this is a significant risk.  You need every new user you can get.  Especially those people that have taken the time to actually create an account.</p>
<p>But let&#8217;s get back to the &#8220;common sense&#8221; reason for not telling the user more about why their credentials didn&#8217;t work.</p>
<p>You may notice on the signin form above, that link to &#8220;<strong>Forgot</strong>&#8220;.  If you click that link and enter a user name (email address in this case), the <strong>system will almost always tell you if that user name exists</strong>.  Using the above site, it&#8217;ll look like this.</p>
<p><img class="alignnone size-full wp-image-40" title="forgot password" src="http://lesspostmoreget.files.wordpress.com/2009/08/picture-41.png?w=500&#038;h=200" alt="forgot password" width="500" height="200" /></p>
<p>So, lemme just repeat the problem.</p>
<blockquote><p>Login forms <strong>almost never</strong> tell you if your user name is wrong</p></blockquote>
<p>Compared with</p>
<blockquote><p>Forgot password forms <strong>almost always</strong> tell you if your user name is wrong</p></blockquote>
<p>So let&#8217;s get back to that risk that is supposedly being mitigated by not telling the form submitter what piece of data is wrong.  We&#8217;re trying to keep people from guessing user names, right?  And yet <strong>we provide a form for doing exactly that</strong>!</p>
<p>The risk is not mitigated in the slightest by the error message.  Not one bit.</p>
<p>Now, I&#8217;m not going to go into how this process should be done.  For two reasons.  One, I&#8217;m out of time for writing this morning.  And Two, because <strong>I want people to disagree with me</strong> so I can understand their thought process.  It is possible I&#8217;m missing something here.  Unlikely, but possible.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=36&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2009/08/14/login-forms-are-broken/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>

		<media:content url="http://lesspostmoreget.files.wordpress.com/2009/08/picture-3.png" medium="image">
			<media:title type="html">bad form</media:title>
		</media:content>

		<media:content url="http://lesspostmoreget.files.wordpress.com/2009/08/picture-41.png" medium="image">
			<media:title type="html">forgot password</media:title>
		</media:content>
	</item>
		<item>
		<title>No-Reply Emails? Why would you ignore your customer?</title>
		<link>http://lesspostmoreget.com/2009/06/10/no-reply-emails/</link>
		<comments>http://lesspostmoreget.com/2009/06/10/no-reply-emails/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 19:39:00 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[email]]></category>
		<category><![CDATA[customer service]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.wordpress.com/2009/06/10/no-reply-emails-why-would-you-ignore-your-customer/</guid>
		<description><![CDATA[The other day I subscribed to a daily newsletter from a new &#8220;social media&#8221; website. This is a NEW website &#8211; they have just become beta. They&#8217;re not big, they&#8217;re a small startup. I tried to reply to one of the emails they send each day. And I quickly discovered they send these using a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=12&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>The other day I subscribed to a daily newsletter from a new &#8220;social media&#8221; website. This is a <strong>NEW</strong> website &#8211; they have just become beta. They&#8217;re not big, they&#8217;re a small startup.</p>
<p>I tried to reply to one of the emails they send each day.  And I quickly discovered they send these using a no-reply address.  Meaning I COULDN&#8217;T reply.</p>
<p>And that broke my brain. This is a company which is all about web 2.0 and the new communication mechanisms available.  Yet they have broken the single most used communication process of the internet!!!  Why would they do this?  People have been sending and <span style="font-weight:bold;">replying to</span> emails for decades now.  Decades.  And it works.</p>
<p><span id="more-12"></span></p>
<h2>Email replies are free feedback</h2>
<p>Letting your customers reply to the emails you sent is like getting <span style="font-weight:bold;">free feedback</span>.  I don&#8217;t know about you, but I LOVE talking with my <a href="http://www.inboxfox.com/">email marketing</a> customers.  I get specific feedback on what they&#8217;re looking for, the problems they&#8217;re trying to solve, and their business situation.  All of that is incredibly useful for me in creating new features and marketing my service.</p>
<p>I would never, ever think of breaking the reply-to of my email newsletter or the welcome emails my system sends when people sign up.  NEVER.  In fact, I explicitly state that they can simply reply to the confirmation email if they have any questions.  Sometimes they do.</p>
<p>And here&#8217;s a really important metric.  The people that reply to that confirmation email (when they sign up) almost ALWAYS become customers.  Why?  Because they ask some questions and I reply directly to each of their questions.   And then BOOM, they purchase my service.</p>
<p>For me, having people purchase my product is pretty important.  And if answering a few emails is all it takes to make a sale, then hell, email away.  So why do some small businesses disable the reply-to?</p>
<h2>You&#8217;re Not That Big</h2>
<p>I think small companies look to big companies for how they should do things.  They see Amazaon.com or some other big web based business breaking the reply-to and they think &#8220;well, this is what the big guys do, so maye I should as well.&#8221;  At least that is what I&#8217;m guessing.</p>
<p>But you&#8217;re not that big.  Even if you are HUGE, with millions of customers, you should still not break the reply-to, which I&#8217;ll explain later.</p>
<p>So, you&#8217;re a small web based business.  Please, do NOT do what the big lazy businesses do.  <span style="font-weight:bold;">You should be extremely happy anytime anyone sends you an email</span>.</p>
<blockquote><p>Dialogue is the best way to get business and email is the easiest way to start a dialogue with a customer.</p></blockquote>
<p>You should be encouraging replies, not breaking them with a no-reply email.</p>
<h2>Even if you ARE big, don&#8217;t be Lazy</h2>
<p>Any business that sends emails from a no-reply address is either <span style="font-weight:bold;">stupid or lazy </span>(or both.)</p>
<p>Before you start ranting about the volume of emails that they send and the cost of processing all those inbound emails, lemme just point out that I&#8217;m not stupid (although I am lazy) and I&#8217;m also a bit of a programmer.</p>
<p>So, <span style="font-weight:bold;">how do you handle all these inbound emails</span> if you can&#8217;t have a person or people replying to each of them?</p>
<p>Simple.  First, you have <span style="font-weight:bold;">software parse the incoming email</span> looking for questions.  You run those questions through software which attempts to find items in a knowledge base which address your question.  <span style="font-weight:bold;">Trouble ticket software does this already</span>.  So, if you have a trouble ticket system, you could route these incoming replies into that system.  Most of them have email gateways.</p>
<p>Also, <span style="font-weight:bold;">smart software</span> would differentiate between emails that have short questions and emails that have <span style="font-weight:bold;">multiple paragraphs</span>.  Short questions can have an auto response back with links to the knowledge base based on the software&#8217;s analysis of the question &#8211; exactly like the fancy trouble ticket systems in use today.  Long replies (whatever you define as long) are probably worth reading by a person.  So you can route those to a real person.</p>
<p>OR, if you&#8217;re really cool, you could use the <span style="font-weight:bold;">Mechanical Turk</span> to tag those emails and then have software route those emails based on the human tagging of the Turk.</p>
<h2>See what I&#8217;m getting at?</h2>
<p>Don&#8217;t be lazy.  And don&#8217;t be stupid. <span style="font-weight:bold;"> Be Smart</span>.  Email replies are golden.  They come from current or potential customers. Let me say that again.</p>
<blockquote><p><span style="font-weight:bold;">Email replies come from current or potential customers</span>.</p></blockquote>
<p>And if customers are important to you, then treat these emails according to the value they could provide.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=12&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2009/06/10/no-reply-emails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>
	</item>
		<item>
		<title>Be Careful When You Remove Features</title>
		<link>http://lesspostmoreget.com/2009/05/17/remove-features-carefully/</link>
		<comments>http://lesspostmoreget.com/2009/05/17/remove-features-carefully/#comments</comments>
		<pubDate>Sun, 17 May 2009 12:43:00 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[software development methodology]]></category>
		<category><![CDATA[don't do this]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.wordpress.com/2009/05/17/be-careful-you-dont-want-your-own-replies-kerfuffle/</guid>
		<description><![CDATA[Almost on queue, Twitter has recently done (twice!) what I&#8217;ve been thinking about lately.  They have removed features. Removing features is very tricky and fraught with problems, even if those features are used by very few people. New Follower Emails The first example is when Twitter improved their new follower emails. Many articles where written [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=11&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Almost on queue, Twitter has recently done (twice!) what I&#8217;ve been thinking about lately.  They have <em><strong>removed</strong></em> features.</p>
<p>Removing features is very tricky and fraught with problems, even if those features are used by very few people.</p>
<p><span id="more-11"></span></p>
<h2>New Follower Emails</h2>
<p>The first example is when Twitter improved their new follower emails.  Many articles where written about how it was a great improvement (and now in HTML!! heh).  And the new follower emails <strong>are</strong> an improvement.  However, as I wrote previously about the <a href="http://www.lesspostmoreget.com/2009/05/new-twitter-notification-emails-are.html">new follower notification emails</a>, they actually <span style="font-weight:bold;">removed a feature</span>.  Before the improvement, the emails included my Twitter id.  Now they don&#8217;t, and that was important to me.</p>
<p>I&#8217;m probably not a typical Twitter user.  Most people I know have only one Twitter account.  Maybe I shouldn&#8217;t worry so much about staying &#8220;on topic&#8221; &#8211; that is the email marketer in me.</p>
<h2>@replies</h2>
<p>Recently, Twitter <span style="font-weight:bold;">removed a feature</span> used by a very small population of their user base.  However, it caused quite a stir. (<a href="http://www.wired.com/epicenter/2009/05/twitter-screw-up/">Twitter @replies Saga</a>)  It is interesting to note that this feature was removed because of the large processing load it placed on the Twitter database.</p>
<h2>What is the lesson?</h2>
<p>In both of these cases, if Twitter had not initially provided the feature, it probably would not have been a big deal.</p>
<p>And that leads to the lesson.  If you are designing new software, keep this in mind.  Adding features is easy.  Too easy.  Software features are really, really easy to add.  Once users start using them, they are very difficult to take away.</p>
<p>So, do what the 37Signals guys have been saying &#8211; <a href="http://gettingreal.37signals.com/ch03_Less_Mass.php">implement less features</a>.  You can always add them if your users request them.</p>
<p>Taking features away?  Well, that&#8217;s a lot more difficult (and painful).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=11&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2009/05/17/remove-features-carefully/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>
	</item>
		<item>
		<title>New Twitter Notification Emails are Broken</title>
		<link>http://lesspostmoreget.com/2009/05/11/new-twitter-notification-emails-are-broken/</link>
		<comments>http://lesspostmoreget.com/2009/05/11/new-twitter-notification-emails-are-broken/#comments</comments>
		<pubDate>Mon, 11 May 2009 13:41:00 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[software usability]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.wordpress.com/2009/05/11/new-twitter-notification-emails-are-broken/</guid>
		<description><![CDATA[So the twitter changed their notification emails for when someone follows you. And they are definitely an improvement over the old notifications. But they are broken. I&#8217;ve read several articles talking about the &#8220;richer, HTML version&#8221; of the email. Richer? What year is it?  Formatting doesn&#8217;t make something &#8220;rich&#8221;, data does. Data is rich, markup [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=10&subd=lesspostmoreget&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>So the twitter changed their notification emails for when someone follows you.  And they are definitely an improvement over the old notifications.</p>
<p><span style="font-weight:bold;">But they are broken.</span></p>
<p>I&#8217;ve read several articles talking about the &#8220;richer, HTML version&#8221; of the email.  Richer? What year is it?  Formatting doesn&#8217;t make something &#8220;rich&#8221;, data does.</p>
<blockquote><p>Data is rich, markup is lame.</p></blockquote>
<p><span id="more-10"></span></p>
<p>The twitter got it right by <strong>adding more data</strong> about followers and updates, but HTML?  Who cares.</p>
<p>The email still fails to include the person&#8217;s bio and their location.  And what about maybe the last few tweets at the bottom of the email?  They should give me <span style="font-weight:bold;">more data</span>, not less.  There simply is no reason to not include the basic profile information about the new follower.  It isn&#8217;t an overwhelming amount of data &#8211; <span style="font-weight:bold;">include it twitter, please</span>.</p>
<p>But this isn&#8217;t why the new twitter notification emails are broken.</p>
<p>The new emails are sent to my profile name.  That&#8217;s it.</p>
<blockquote><p>The new notification email is broken because it doesn&#8217;t include my twitter account name.</p></blockquote>
<p>So now, the notifications say &#8220;Hi Philip Crawford&#8221;,  when they used to say &#8220;Hi Philip Crawford (wiscoDude)&#8221;  &#8211; or InboxFox or one of my other accounts.</p>
<p>Old style new follower email with almost no information<br />
<a href="http://3.bp.blogspot.com/_LpZCu2EiMds/ShAKQ5aZXnI/AAAAAAAAAH8/30Apj9QPFvE/s1600/newFollowerOld.jpg"><img src="http://3.bp.blogspot.com/_LpZCu2EiMds/ShAKQ5aZXnI/AAAAAAAAAH8/30Apj9QPFvE/s400/newFollowerOld.jpg" border="0" alt="" /></a><br />
The improved new follower email with more information<br />
<a href="http://2.bp.blogspot.com/_LpZCu2EiMds/ShAKfO43GaI/AAAAAAAAAIE/LSYMwkI682U/s1600/newFollowerImproved.jpg"><img src="http://2.bp.blogspot.com/_LpZCu2EiMds/ShAKfO43GaI/AAAAAAAAAIE/LSYMwkI682U/s400/newFollowerImproved.jpg" border="0" alt="" /></a></p>
<p>I&#8217;m guessing most people have only one twitter account.  I don&#8217;t.  I have multiple twitter accounts because <span style="font-weight:bold;">I have multiple &#8220;personalities&#8221;</span> (I&#8217;m sure someone will snicker about that).</p>
<p>I have a twitter account for my email marketing company (<a href="http://twitter.com/inboxfox">@inboxfox</a>), my programming persona (<a href="http://twitter.com/philip_crawford">@philip_crawford</a>) and my personal account (<a href="http://twitter.com/wiscoDude">@wiscoDude</a>).  I keep them separate because I tweet about completely different things for all three.  I don&#8217;t think my email marketing people want to hear about my drinking escapades or my morel hunting.  And I know for a fact my personal friends don&#8217;t want to hear about the latest in email marketing reports.  I&#8217;ve actually unfollowed some people in a subject domain because they tweeted too many times about their personal life &#8211; that isn&#8217;t why I follow them.</p>
<p>And this points out a current problem with the twitter.  Multiple &#8220;personas&#8221; are not possible to implement with one account.  I don&#8217;t think that is a huge problem and if I were Biz, I certainly wouldn&#8217;t be worried about it, but the email notifications don&#8217;t take this into account.</p>
<p>So there you have it.  Twitter simply needs to <span style="font-weight:bold;">include my twitter id in the email</span>.</p>
<p>And follower bio, location, latest tweets&#8230;.why are they skimping on text in this email?</p>
<p>As my friend Preston (@<a href="http://twitter.com/gl33p">gl33p</a>) pointed out, maybe this is simply opportunity for someone else to provide a service that Twitter has chosen not to provide.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&blog=8898282&post=10&subd=lesspostmoreget&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2009/05/11/new-twitter-notification-emails-are-broken/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c2364a84209fd7f40a9d77e5b11d5d2f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">wiscoDude</media:title>
		</media:content>

		<media:content url="http://3.bp.blogspot.com/_LpZCu2EiMds/ShAKQ5aZXnI/AAAAAAAAAH8/30Apj9QPFvE/s400/newFollowerOld.jpg" medium="image" />

		<media:content url="http://2.bp.blogspot.com/_LpZCu2EiMds/ShAKfO43GaI/AAAAAAAAAIE/LSYMwkI682U/s400/newFollowerImproved.jpg" medium="image" />
	</item>
	</channel>
</rss>