<?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; risk management</title>
	<atom:link href="http://lesspostmoreget.com/tag/risk-management/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; risk management</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>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>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>
		<item>
		<title>Passwords gone wild</title>
		<link>http://lesspostmoreget.com/2008/03/22/passwords-gone-wild/</link>
		<comments>http://lesspostmoreget.com/2008/03/22/passwords-gone-wild/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 22:26:00 +0000</pubDate>
		<dc:creator>wiscoDude</dc:creator>
				<category><![CDATA[software security]]></category>
		<category><![CDATA[risk management]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://lesspostmoreget.wordpress.com/2008/03/22/passwords-gone-wild/</guid>
		<description><![CDATA[Programmers are knuckleheads. Password requirements have gotten completely out of hand. And the effect is LESS security rather than more. For instance, I use Rackspace hosting. For their admin site, they require my password to contain at least one capital letter, one number, one symbol, and to be at least 8 characters long. I called [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=4&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Programmers are knuckleheads.</p>
<p><span id="more-4"></span>Password requirements have gotten completely out of hand. And the effect is LESS security rather than more. For instance, I use Rackspace hosting. For their admin site, they require my password to contain at least one capital letter, one number, one symbol, and to be at least 8 characters long. I called to complain about the ridiculous nature of these requirements and the customer service rep told me I could &#8220;just save that password with my browser&#8221; so I wouldn&#8217;t have to remember it.</p>
<p>Um.</p>
<p>HWAT?!?</p>
<p>They want their system to be secure, so they crank up the difficulty of their password scheme and then they outsource that security to the security of my laptop, which doesn&#8217;t have a password. That can&#8217;t possibly make sense to anyone. The system would no longer be secure.</p>
<p>It&#8217;s like, no matter how many studies come out that strong passwords are not the problem, the &#8220;security experts&#8221; (used incredibly loosely) continue to argue for &#8220;stronger&#8221; passwords.</p>
<p>At what point do we start learning squirrel?</p>
<p><a href="http://upload.wikimedia.org/wikipedia/en/f/f3/Dilbert-20050910.png"><img src="http://upload.wikimedia.org/wikipedia/en/f/f3/Dilbert-20050910.png" alt="" border="0" /></a></p>
<p>Every once in a while, I come across a smart business with smart password requirements. For example, <a href="http://www.litmusapp.com/">litmusapp</a> requires 4 characters. That&#8217;s it. 4. Lousy. Characters. Are they crazy? How can that possibly be secure?</p>
<p>Probably, because they&#8217;re smart. Most likely they have systems in place that guard against brute force hacks. I&#8217;ll probably write more about that at some point, but I&#8217;m too lazy right now.</p>
<p>In the meantime, don&#8217;t be dumb and don&#8217;t be Dilbert&#8217;s boss. Be cool, like the Litmus people.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lesspostmoreget.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lesspostmoreget.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lesspostmoreget.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lesspostmoreget.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lesspostmoreget.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lesspostmoreget.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lesspostmoreget.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lesspostmoreget.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lesspostmoreget.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lesspostmoreget.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lesspostmoreget.com&amp;blog=8898282&amp;post=4&amp;subd=lesspostmoreget&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lesspostmoreget.com/2008/03/22/passwords-gone-wild/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://upload.wikimedia.org/wikipedia/en/f/f3/Dilbert-20050910.png" medium="image" />
	</item>
	</channel>
</rss>
