<?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 &#187; wiscoDude</title>
	<atom:link href="http://lesspostmoreget.com/author/wiscodude/feed/" rel="self" type="application/rss+xml" />
	<link>http://lesspostmoreget.com</link>
	<description>Thoughts on software development and the web</description>
	<lastBuildDate>Wed, 09 Nov 2011 20:02:17 +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://s2.wp.com/i/buttonw-com.png</url>
		<title>Less Post More GET &#187; wiscoDude</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>The Social Graph is Both</title>
		<link>http://lesspostmoreget.com/2011/11/09/it-is-a-graph-and-it-is-social/</link>
		<comments>http://lesspostmoreget.com/2011/11/09/it-is-a-graph-and-it-is-social/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 07:18:52 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[social graph]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=195</guid>
		<description><![CDATA[This is a response to Maciej Cegłowski&#8217;s post The Social Graph is Neither Maciej seems like a super smart and cool dude.  Someone I&#8217;d like to hang out with. But I was confused by his post. It is a graph Let&#8217;s start with his first assertion. &#8220;I. It&#8217;s not a graph&#8220; Ok, then uh, what is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=195&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a response to Maciej Cegłowski&#8217;s post <a href="http://blog.pinboard.in/2011/11/the_social_graph_is_neither/">The Social Graph is Neither</a></p>
<p>Maciej seems like a <a href="http://idlewords.com/resume.htm">super smart</a> and cool dude.  Someone I&#8217;d like to hang out with. But I was confused by his post.</p>
<h3><strong>It is a graph</strong></h3>
<p>Let&#8217;s start with his first assertion.</p>
<blockquote><p>&#8220;<strong>I. It&#8217;s not a graph</strong>&#8220;</p></blockquote>
<p>Ok, then uh, what is a <a href="http://en.wikipedia.org/wiki/Graph_theory">graph</a>?</p>
<blockquote><p>A &#8220;graph&#8221; in this context refers to a collection of <a title="Vertex (graph theory)" href="http://en.wikipedia.org/wiki/Vertex_%28graph_theory%29">vertices</a> or &#8216;nodes&#8217;and a collection of <em>edges</em> that connect pairs of vertices. A graph may be <em>undirected</em>, meaning that there is no distinction between the two vertices associated with each edge, or its edges may be <em>directed</em> from one vertex to another</p></blockquote>
<p>More on graphs <a href="http://en.wikipedia.org/wiki/Graph_%28mathematics%29#Graph">here</a>.</p>
<p><strong>D</strong><strong>irected graphs</strong> would include twitter and <strong>undirected graphs</strong> are Facebook and LinkedIn.  Each of these graphs have nodes (people) and edges (the connections between the people).  By definition, they are graphs.</p>
<p>But Maciej doesn&#8217;t actually state, or reason that it isn&#8217;t actually a graph &#8211; besides what the title of the section claims. What he dives into are all the complexities of defining the edges and thus using the graph. After a bunch of questions and complex cases, he states &#8220;<em>You can call this nitpicking, but this stuff matters</em>! &#8220;.  And I agree, it does matter.  But so what, <strong>just because something isn&#8217;t perfect doesn&#8217;t make it not useful</strong>.  Heck, Twitter is quite imperfect, but millions of people seem to think it&#8217;s useful.</p>
<p>Let&#8217;s see, what else does he say in this section?</p>
<blockquote><p>But it only takes five minutes of reading the existing standards to see that they&#8217;re completely inadequate</p></blockquote>
<p>Inadequate for what? Oh wait, right before that he states</p>
<blockquote><p>This is supposed to be a canonical representation of human relationships.</p></blockquote>
<p>Ah, now we&#8217;re getting somewhere.  The Canonical Representation of Human Relationships. Uh huh.  Good luck with that. This definition of what these social graphs or any social graph is attempting to do is bizarre.  When I myself can&#8217;t even put into words my relationship with other people, how are we supposed to have a real-time canonical representation of human relationships?  We&#8217;re not.  That goal is not a serious goal.  It is not possible.</p>
<p>It&#8217;s like he doesn&#8217;t understand making a useful model and making an &#8220;accurate&#8221; model.  All models are wrong, right?  Who cares about &#8220;canonical&#8221; as long as a model is useful.</p>
<p>And here&#8217;s another jewel</p>
<blockquote><p>My <tt>friend</tt> from ten years ago has the same relationship to me as the friend I dined with yesterday. You&#8217;re left with forcing people (or their software) to maintain lists like &#8216;Recent Contacts&#8217;because there is no place in the model to fit this information.</p></blockquote>
<p>Yeah, we couldn&#8217;t <strong>possibly</strong> figure out a way to decay a relationship based on activity.  What?!  Just because current implementations are <del>dumb as rocks</del> fairly basic, doesn&#8217;t mean future graphs won&#8217;t be improved (and obviously he knows this).  Facebook, Twitter, and LinkedIn all have data to continually define the edge(s) between nodes.  Without the person &#8220;maintaining a list&#8221;, as Maciej claims.</p>
<p>I&#8217;m glad he brings up the concept of the <a href="http://en.wikipedia.org/wiki/Uncanny_valley">Uncanny Valley</a>. It&#8217;s a useful concept for software developers and UX folks.  In this context, it appears what he&#8217;s implying is if these <del>graph</del> systems attempt to &#8220;guess&#8221; more personal data about us, the &#8220;creepier it becomes.&#8221;  Sure, this has been the case with marketing forever.  Nothing has changed substantively with social <del>graphs</del> web things.</p>
<p>He ends this section with</p>
<blockquote><p>I think finding an adequate data model for the totality of interpersonal connections is an AI-hard problem</p></blockquote>
<p>Total agreement on this.  But again, these social graphs are graphs.  They are useful graphs with deficiencies.</p>
<h3><strong>It is Social</strong></h3>
<blockquote><p>II. It&#8217;s Not Social</p></blockquote>
<p>Note: I have no idea what the word &#8220;unsocial&#8221; means. Since social means living in a community, with others, and anti-social appears to mean averse to organized society.  I&#8217;ll assume &#8220;not social&#8221; means anti-social.</p>
<p>Maciej starts by discussing a particular implementation (FOAF) and its deficiencies.  No problems there.  Anyone who has looked into FOAF quickly realizes the implementation is problematic.</p>
<p>Before diving into some examples</p>
<blockquote><p>Your best friend from high school surfaces and sends a friend request. Do you just click accept, or do you send a little message? Or do you ignore him because you don&#8217;t want to deal with the awkward situation?</p></blockquote>
<p>Um, that sounds social to me.  If the friend were to call on the phone, would that not be social?  Why would a phone call be different than a freind request? What makes the friend request not social?  Because it is on Facebook?  Or, what is Maciej&#8217;s point?  I&#8217;m assuming, based on the section title, that he was going to point out the ways the <del>graph</del> web thing isn&#8217;t social.</p>
<p>Continuing on</p>
<blockquote><p>Leaving aside the technical issues of how to implemented, how does cutting ties actually work socially? Is there any way to be discreet, for example, or have connections naturally degrade over time? In real life, all relationships fade naturally if you don&#8217;t maintain them, but right now social networks preserve ties in amber until we explicitly break them.</p></blockquote>
<p>Let&#8217;s break this down.  He states &#8220;<em>In real life, all relationships fade naturally if you don&#8217;t maintain them</em>&#8220;.  Agreed.  And then &#8220;<em>but <strong>right now</strong> social networks preserve ties in amber</em>&#8221; (emphasis mine).  This is not true.  The feed I see in Facebook is defined by how I interact with my connections.  The edges of the <del>graph</del> web thing are continually adjusted. They are not &#8220;preserved in amber&#8221;.</p>
<p>If one were to focus on the binary bit of whether someone is still technically my &#8220;friend&#8221; on Facebook, while at the same time ignoring that I never ever see that persons&#8217;s posts, sure, they will <strong>incorrectly</strong> claim the relationship is preserved in amber.  (Yes, there can be more than one edge between nodes.)</p>
<p>Twitter made the excellent choice of directional relationships out of the gate, so this is less important.  It&#8217;s still important and I suspect they&#8217;re working on degredation right now.  Heck, it might even be implemented for all I know.</p>
<p>Continuing&#8230;</p>
<blockquote><p>The social graph wants to turn us back into third graders</p></blockquote>
<p>Well, I suppose that&#8217;s possible, but I personally don&#8217;t see it.  Oh wait, here&#8217;s why he thinks that</p>
<blockquote><p>&#8230;.laboriously spelling out just who is our fifth-best-friend</p></blockquote>
<p><strong>No</strong>.  On twitter, we interact with others, just like in real life.  We&#8217;re not &#8220;laboriously&#8221; listing or codifying or other &#8220;third grade&#8221; activities.  We&#8217;re <strong>being social</strong> and that act of being social is stored, used to improve the <del>graph</del> model, and thus used to improve our ability to interact with others.  The cycle repeats.  It seems Maciej is overly focused on the following/followers and needs to focus a bit more on retweets and mentions.  Which are <strong>social</strong> acts.</p>
<p>He then veers into the woods with ramblings such as</p>
<blockquote><p>apps whose first act is to suction down our contact list and spam our various accounts</p></blockquote>
<p>Yeah, google has an api and apps can get me to spam my contacts.  So what?  Yes, there are bad people out in the world and a sucker born every day.  Not sure how this is germane.</p>
<p>Continuing</p>
<blockquote><p>In other domains, a big graph would be good for recommendations, but friendship is not transitive. There&#8217;s just no way to tell if you&#8217;ll get along with someone in my social circle, no matter how many friends we have in common.</p></blockquote>
<p>There&#8217;s no way for who to tell?  I mean, <strong>people recommend friends and contacts all the time</strong> in the &#8220;real world&#8221;, right?  And that can&#8217;t possibly be done by software?  Recommending friends in the real world seems social to me.  Call me crazy.</p>
<p>About here in the article, I&#8217;m still trying to figure out his perspective, when finally we get this bit</p>
<blockquote><p>Social networks exist to sell you crap</p></blockquote>
<p>Some people would say businesses exist to sell you crap.  Who, the fuck, cares.  Seriously, this sounds like one of my rants. Yes, Apple is continually trying to sell me crap. They spend millions on ads, they use beautiful packaging, and they make amazing products.  Those sons of bitches.</p>
<p>Oh wait, they&#8217;ve also made parts of my work life amazingly better.  I&#8217;m old enough to remember lugging around a compaq portable with a plasma screen.  Too bad these companies are continually trying to sell me crap.</p>
<p>So yeah, companies use marketing to influence our decisions.   <strong>AND</strong>, they <strong>collect data</strong> to make better decisions.  That&#8217;s crazy!!</p>
<p>But guess what, they provide us with value.  Like, for example, the tweet (retweeted by others) that led me to write this blog post.</p>
<p>Continuing</p>
<blockquote><p>We&#8217;re used to talking about how disturbing this in the context of privacy, but it&#8217;s worth pointing out how weirdly <em>unsocial</em> it is, too. How are you supposed to feel at home when you know a place is full of one-way mirrors?</p></blockquote>
<p>Granted, privacy is a huge issue. But guess what, <strong>life itself is not private</strong>. What you say and do is often in front of other people.  Even when it isn&#8217;t, it is sometimes shared with others after the fact.  Who hasn&#8217;t had this happen?  That sounds like real life to me, that sounds social to me. Not always great, but certainly social.</p>
<p>Ok, we&#8217;re getting close, and I&#8217;m growing tired</p>
<blockquote><p>We have a name for the kind of person who collects a detailed, permanent dossier on everyone they interact with, with the intent of using it to manipulate others for personal advantage &#8211; we call that person a sociopath</p></blockquote>
<p>Or, a recruiter.  Heh.</p>
<p>It&#8217;s interesting to me that he doesn&#8217;t mention the Twitter.  I guess they&#8217;re not mining data on what we tweet or retweet? My other guess is that he just doesn&#8217;t like Facebook.</p>
<p>But really, this is all about <strong>privacy</strong>.  It isn&#8217;t about whether these sites are or are not social.</p>
<h3><strong>Part III</strong></h3>
<p>Maciej finally gets to the part of what needs to be done to make &#8220;<strong>awesome</strong>&#8221; online communities</p>
<blockquote><p>Give people something cool to do and a way to talk to each other, moderate a little bit, and your job is done.</p></blockquote>
<p>hmmm, that sounds a bit like <a href="http://Facebook.com">Facebook</a>.  In fact, a lot like Facebook.  With hundreds of millions of users, I would guess many people think of it as <a href="http://www.huffingtonpost.com/2011/02/11/egypt-facebook-revolution-wael-ghonim_n_822078.html"><strong>somewhat awesome</strong></a>. Or at least a bit useful.</p>
<p>But then he states</p>
<blockquote><p>Now tell me one bit of original culture that&#8217;s ever come out of Facebook.</p></blockquote>
<p>Lost me.  What the fuck is &#8220;original culture&#8221; and why is this used as a challenge for Facebook?  <del>Perhaps</del> Maciej does not like Facebook. (Wael Ghonim thinks otherwise.)</p>
<p>He ends with</p>
<blockquote><p>and that our kids will think we were complete rubes for ever having thrown a sheep or clicked a +1 button. It&#8217;s just a matter of waiting things out, and leaving ourselves enough freedom to find some interesting, organic, and human ways to bring our social lives online.</p></blockquote>
<p>Agreed.  I&#8217;m totally against sheep throwing.  And plus-oneing. And I can&#8217;t wait for the Google+ and Facebook replacements.  I contributed to the <a href="https://joindiaspora.com/">Diaspora</a> project and hope an open source social thing wins out soon.</p>
<p>But let&#8217;s get real.  Just because we have a significant distaste for the actions of these large companies, does not make what they provide &#8220;unsocial&#8221; nor are they not graphs, nor are they not useful.  The world is likely (net) better off than it was before Twitter, Facebook, and Google+.</p>
<p>Notes:</p>
<p>* Facebook is not a pure undirected graph.</p>
<p>* Me thinks Maciej titled his article for maximum social graph sharing, not to make the 2 listed points. It worked, it was shared. Well played sir!</p>
<p>* Maciej seems like a pretty cool dude.  This is not intended as a personal attack, just needed to add some balance.</p>
<p>* At <a href="http://madison.imby.me">imby</a>, we plan to have a unidirectional edge with multiple edges between nodes (based on tags) that decay.</p>
<p>* There is a lot to be said about the horrible practices of some businesses as it relates to privacy and control of personal data, but that was not the subject here.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lesspostmoreget.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=195&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2011/11/09/it-is-a-graph-and-it-is-social/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>Madison Rubyists and VoteSimple</title>
		<link>http://lesspostmoreget.com/2011/09/03/madison-rubyists-and-votesimple/</link>
		<comments>http://lesspostmoreget.com/2011/09/03/madison-rubyists-and-votesimple/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 15:11:14 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=171</guid>
		<description><![CDATA[I work at Murfie.com, right on the capitol square in Madison.  Politics in Madison, Wisconsin this spring, especially on the square, was energized to say the least.  People across the political spectrum were active and the energy influenced me to get involved in the electoral process.  At first, I wasn&#8217;t sure how, but then I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=171&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I work at <a href="http://www.Murfie.com">Murfie.com</a>, right on the capitol square in Madison.  Politics in Madison, Wisconsin this spring, especially on the square, was <em><strong>energized</strong></em> to say the least.  People across the political spectrum were active and the energy influenced me to get involved in the electoral process.  At first, I wasn&#8217;t sure how, but then I had an idea.</p>
<p>I’m a member of several software related meetups in Madison.  There is the very active Ruby group <a href="http://www.meetup.com/Mad-Railers/">Mad-Railers</a>, which meets most every month and <a href="http://groups.google.com/group/twiliomadness">Twilio-Madness</a>, a slightly less active Twilio related group.  My idea was based on mobile phone communication, so I sent this email to the Twilio-Madness group.</p>
<blockquote><p>Hey Twilio people!</p>
<p>Considering all the energy in WI lately and the fact we have a statewide election April 5, I thought it would be cool to build a Twilio powered app that helps people participate in the most important democratic process.</p>
<p>The app I&#8217;d like to build will use data from the GAB to provide information and instructions to people interested in voting.  An example of searching that data is here:<br />
<a href="http://www.google.com/url?sa=D&amp;q=https://vpa.wi.gov/VoterSearchScreen.aspx%3FLanguage%3Den-us&amp;usg=AFQjCNH8kLsSnhSDUrt1TqN5OezaMghUMw" rel="nofollow" target="_blank">https://vpa.wi.gov/VoterSearchScreen.aspx?Language=en-us</a></p>
<p>The goal of the app would be to make WI a beacon in the country in regards to voter participation, especially young people who are most capable of using SMS, touchtone, web.</p>
<p>I&#8217;m starting this app tomorrow night at Horizon Coworking (Inside the Murfie offices) and would like any help from anyone who wishes to join either then, or over the next week.</p>
<p>- Philip</p></blockquote>
<p>Several people responded they were interested in helping out and the group of people had a <a href="http://votesimple.org/about">diverse skillset</a> &#8211; community organizing types, a design capable entrepreneur, and a few programmers.  It was go time.</p>
<p>In a few days of intense working, we banged out the app, came up with a name, connected with partner organizations,  printed marketing posters, designed a logo, and launched <a href="http://votesimple.org/">VoteSimple</a> in time for the spring election.</p>
<p>It was a cool process and I was proud of what the group accomplished in such a short time.  We have long term plans to improve the app with an SMS based question answering system (think Stack Overflow) for people confused by the recent voter ID laws.  We also are part way into developing a Facebook component to help active voters influence and educate their peers in Wisconsin &#8211; all with the goal to increase turnout.  (We&#8217;re a non-partisan group and turnout is our goal.)</p>
<p>I&#8217;d like to thank the following people for helping in this effort.</p>
<ul>
<li><a href="http://madison.imby.info/p/Philip.Crawford">Philip Crawford</a></li>
<li><a href="http://madison.imby.info/p/Mark.Mceahern">Mark McEahern</a></li>
<li><a href="https://github.com/winescout">Matt Clark</a></li>
<li><a href="http://madison.imby.info/p/prestonhaustin">Preston Austin</a></li>
<li><a href="http://madison.imby.info/users/193">Steve Faulkner</a></li>
<li><a href="http://madison.imby.info/p/Lucas.Dailey">Lucas Dailey</a></li>
<li><a href="http://madison.imby.info/p/Matthew.Wheeler">Matt Wheeler</a></li>
<li><a href="http://blog.unit1127.com/">Erik Paulson</a></li>
<li><a href="http://madison.imby.info/p/Greg.Tracy">Greg Tracy</a></li>
<li><a href="http://madison.imby.info/p/Maurice.Cheeks">Maurice Cheeks</a></li>
</ul>
<p>If you are a rubyist or an expert using Twilio and would like to help, let me know as we&#8217;re all quite busy and any extra help will help.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lesspostmoreget.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=171&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2011/09/03/madison-rubyists-and-votesimple/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>Designers Have Different Goals</title>
		<link>http://lesspostmoreget.com/2010/07/21/designers-have-different-goals/</link>
		<comments>http://lesspostmoreget.com/2010/07/21/designers-have-different-goals/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 21:24:43 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.com/?p=92</guid>
		<description><![CDATA[Having purchased design services dozens of times over the past 10 years, there are some patterns I&#8217;d like to discuss briefly.  These patterns come up when purchasing from outside professional service firms as well as utilizing designers within the organization. Think about a normal situation for a business wanting to update their web site.  The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=92&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Having purchased design services dozens of times over the past 10 years, there are some patterns I&#8217;d like to discuss briefly.  These patterns come up when purchasing from outside professional service firms as well as utilizing designers within the organization.</p>
<p>Think about a normal situation for a business wanting to update their web site.  The goal is not to have a new website, that is simply the means to an end.  The goal is to improve their business, which for most businesses is measured in terms of more customers, more leads, more sales, more users, or similar measures.</p>
<p>The goals are related to making more money.</p>
<p>So the business owner (or manager) hires a web design firm to &#8220;fix&#8221; the web site.</p>
<blockquote><p>Are the goals of the firm aligned with the person who hires them?</p>
<p><strong>No. </strong></p></blockquote>
<p>And this is one of the trickiest parts of purchasing design services.</p>
<h2>Goals of Designers</h2>
<p>Designers have different goals than your business. The reason is <strong>designers are managing their own business</strong>.  Even if the designer works for the firm, they have a career and their future is based on the <strong>visual portfolio</strong> they can show to future potential customers and employers. On it&#8217;s own, this is not highly problematic.</p>
<p>Good design for you <strong>should</strong> translate into a better portfolio for the designer.  However, most purchasers of programming and design services are unsophisticated and designers have learned this.  Designers have learned to produce designs that make statements, rather than designs that enable great user experience.  Also, due to the short lifetime of designs on the web, designers also know they won&#8217;t be able to simply point a future employer or customer at the site in order to experience the great design and user experience &#8211; as the site might no longer be online.</p>
<p>Designers are often judged based on their creativity &#8211; rightly so &#8211; however this systemically pushes design away from doing the <a href="http://www.useit.com/alertbox/familiar-design.html">same old boring things that work</a>, toward the unique and noteworthy.  As many user experience and usability professionals have pointed out over the past decade, your users spend <strong>most of their time on other sites</strong> and very little time on your site, so making them learn a new way of doing things just so your site can be &#8220;unique&#8221; is very problematic.</p>
<p>In total, these issues create motivations for designers to create work that is overly designed and too unique for the majority of design purchasers.</p>
<h2>What You Can Do</h2>
<p>In my experience, there are three (related) techniques you can use when working with designers.</p>
<ol>
<li>Ask them to explicitly list the design and <a href="http://www.smashingmagazine.com/2009/04/06/design-to-sell-12-tips-to-help-your-website-convert/">UX patterns</a> they are utilizing in the design as well as the corresponding research that supports those patterns.  These should be testable ideas, not just opinions about what looks good.  Remember, this isn&#8217;t art we&#8217;re creating, it is design the helps your users/customers do what you want them to do &#8211; sign up, place an order, read more, etc.</li>
<li>Have them help you setup <a href="http://www.uxbooth.com/blog/how-to-increase-site-performance-through-ab-split-testing/">A/B testing</a> of several home page designs. (Or designs of whichever part of your site is being redesigned.)  This is one of the processes utilized to determine the best practice design patterns utilized in the above point.</li>
<li>Explicitly state your fear of having a design that is more focused on their portfolio rather than your business objectives.  I&#8217;m serious here, they need to hear this.</li>
</ol>
<p>Collectively, these techniques can help you ensure better alignment of your goals and the goals of the designer.  It&#8217;s not easy, as can be seen in many of the tragic, over designs on the web.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lesspostmoreget.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=92&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2010/07/21/designers-have-different-goals/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>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[email]]></category>
		<category><![CDATA[Uncategorized]]></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&amp;blog=8898282&amp;post=102&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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 get a pretty 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/gofacebook/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=102&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2010/05/13/google-needs-to-add-this-gmail-feature/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>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&amp;blog=8898282&amp;post=86&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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/gofacebook/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=86&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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&amp;blog=8898282&amp;post=99&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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/gofacebook/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=99&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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&amp;blog=8898282&amp;post=79&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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=490" alt=""   /></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/gofacebook/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=79&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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[agile]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[risk management]]></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&amp;blog=8898282&amp;post=8&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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/gofacebook/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=8&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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&amp;blog=8898282&amp;post=9&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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/gofacebook/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=9&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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[ruby on rails]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[usability]]></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&amp;blog=8898282&amp;post=36&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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=490" alt="bad form"   /></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=490" alt="forgot password"   /></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/gofacebook/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/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&amp;blog=8898282&amp;post=36&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="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>
	</channel>
</rss>
