<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Secure Software Development</title>
	
	<link>http://securesoftwaredev.com</link>
	<description>Musings on the Art and Craft of Creating Secure Software</description>
	<lastBuildDate>Thu, 20 Jun 2013 04:18:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="securesoftwaredev.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image><link>http://creativecommons.org/licenses/by-nc-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://securesoftwaredev.com/osd.xml" title="Secure Software Development" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SecureSoftwareDevelopment" /><feedburner:info uri="securesoftwaredevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://securesoftwaredev.com/?pushpress=hub" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><feedburner:emailServiceId>SecureSoftwareDevelopment</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Adventures in JavaScript: Getting Started</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/W2dH5ey3p_M/</link>
		<comments>http://securesoftwaredev.com/2013/05/13/adventures-in-javascript-getting-started/#comments</comments>
		<pubDate>Mon, 13 May 2013 11:00:20 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Roman numerals]]></category>
		<category><![CDATA[kata]]></category>
		<category><![CDATA[FDE]]></category>
		<category><![CDATA[Cloud9]]></category>
		<category><![CDATA[Orion]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Nodeclipse]]></category>
		<category><![CDATA[jshint-eclipse]]></category>
		<category><![CDATA[Markdown]]></category>
		<category><![CDATA[JsUnit]]></category>
		<category><![CDATA[JsTestDriver]]></category>
		<category><![CDATA[InfiniTest]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4910</guid>
		<description><![CDATA[One of the high potentials for a Frictionless Development Environment (FDE) is Cloud9. It is one of a growing number of web applications that uses JavaScript as the programming language for both front-end and back-end. The latter brought to you by Node.js. So I thought it was time to start playing around with JavaScript and [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4910&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://sinnema313.files.wordpress.com/2013/05/nodejs_logo.png?w=240&#038;h=120" alt="Node.js" width="240" height="120" class="alignright size-medium wp-image-4954" />One of the high potentials for a <a href="http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/" target="_blank">Frictionless Development Environment</a> (FDE) is <a href="https://c9.io/" rel="nofollow" target="_blank">Cloud9</a>.</p>
<p>It is one of a growing number of web applications that uses <a href="http://securesoftwaredev.com/2013/05/06/bridging-the-client-server-divide/" title="Bridging the Client-Server Divide" target="_blank">JavaScript as the programming language for both front-end and back-end</a>. The latter brought to you by <a href="http://nodejs.org/" rel="nofollow" target="_blank">Node.js</a>.</p>
<p>So I thought it was time to start playing around with JavaScript and Node. Here is an account of my very first adventure into this <a href="http://www.amazon.com/gp/product/0060850523/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0060850523&amp;linkCode=as2&amp;tag=secursoftwdev-20" rel="nofollow" target="_blank">Brave New World</a>.</p>
<h3>Preparations: Adding JavaScript Support to Eclipse</h3>
<p>To keep the number of changes low, I wanted to keep my trusted old Eclipse. So the first step was to install <a href="http://www.nodeclipse.org/" rel="nofollow" target="_blank">Nodeclipse</a> and <a href="http://github.eclipsesource.com/jshint-eclipse/updates/" rel="nofollow" target="_blank">jshint-eclipse</a>.</p>
<p>To support documentation in the <a href="http://daringfireball.net/projects/markdown/" rel="nofollow" target="_blank">Markdown</a> format that Node uses, I installed the <a href="http://www.winterwell.com/software/markdown-editor.php" rel="nofollow" target="_blank">Markdown Editor plugin for Eclipse</a>.</p>
<p>This left me with nothing for unit tests. So I installed the <a href="http://www.eclipse.org/webtools/jsdt/" rel="nofollow" target="_blank">JavaScript tools from Eclipse</a>. That gave me some JS support, but nothing for creating unit tests.</p>
<p>Some googling told me there is such a thing as <a href="http://jsunit.berlios.de/" target="_blank">JsUnit</a>, the JS port of my beloved JUnit. Unfortunately it doesn&#8217;t seem to come with Eclipse support, even though <a href="http://www.coderanch.com/t/105466/vc/JSUnit-Eclipse-Plugin" target="_blank">this thread</a> indicates it does (or did).</p>
<p><img src="http://sinnema313.files.wordpress.com/2013/05/jstestdriver.png?w=160&#038;h=115" alt="JsTestDriver" width="160" height="115" class="alignleft size-thumbnail wp-image-5045" />Maybe I&#8217;m just doing it wrong. I&#8217;d appreciate any hints in the comments.</p>
<p>Some more googling informed me that <a href="http://wiki.eclipse.org/Orion/JS_Unit_Test" rel="nofollow" target="_blank">Orion</a> is using <a href="http://code.google.com/p/js-test-driver/wiki/UsingTheEclipsePlugin" rel="nofollow" target="_blank">JsTestDriver</a>.</p>
<p>This <a href="http://transitioning.to/2012/07/magnum-ci-the-jenkins-chronicles-1-intro-to-jstestdriver/" rel="nofollow" target="_blank">introduction to JsTestDriver</a> explains in detail how it works.</p>
<h3>First Exercise: Roman Numerals</h3>
<p>Now that I&#8217;m all set up, it&#8217;s time to do a little exercise to get my feet wet. For this I picked the <a href="http://securesoftwaredev.com/2011/12/05/practicing-tdd-using-the-roman-numerals-kata/" title="Practicing TDD using the Roman Numerals kata" target="_blank">Roman Numerals kata</a>.</p>
<p>I started out by following this <a href="http://code.google.com/p/js-test-driver/wiki/GettingStarted" rel="nofollow" target="_blank">JsTestDriver example</a>. I created a new JavaScript project in Eclipse, added <code>src/main/js</code> and <code>src/test/js</code> folders, and created the JsTestDriver configuration file:</p>
<pre class="brush: plain; title: ; notranslate">
server: http://localhost:9876

load:
  - src/main/js/*.js
  - src/test/js/*.js
</pre>
<p>Next, I opened the JsTestDriver window using <code>Window|Show View|Other|JavaScript|JsTestDriver</code> and started the JsTestDriver server. I then opened the client in FireFox at <code><br />
<a href="http://127.0.0.1:42442/capture" rel="nofollow">http://127.0.0.1:42442/capture</a><br />
</code>.</p>
<p>The next step was to create a new run configuration: <code>Run|Run Configurations|JsTestDriver Test</code>. I selected the project and the JsTestDriver configuration within the project, and checked <code>Run on Every Save</code>.</p>
<p>Now everything is set up to start the <a href="http://sinnema313.wordpress.com/agile-links/test-driven-development/" title="Test-Driven Development" target="_blank">TDD</a> cycle. First a test:</p>
<pre class="brush: jscript; title: ; notranslate">
RomanNumeralsTest = TestCase(&quot;RomanNumeralsTest&quot;);

RomanNumeralsTest.prototype.testArabicToRoman
    = function() {
  var romanNumerals = new TestApp.RomanNumerals();
  
  assertEquals(&quot;i&quot;, romanNumerals.arabicToRoman(1));
};
</pre>
<p>And then the implementation:</p>
<pre class="brush: jscript; title: ; notranslate">
TestApp = { };

TestApp.RomanNumerals = function() { };


TestApp.RomanNumerals.prototype.arabicToRoman
    = function (arabic) {
  return null;
};
</pre>
<p>I completed the rest of the kata as usual.</p>
<h3>Reflections</h3>
<p>The cool thing about JsTestDriver is that it automatically runs all the tests every time you change something. This shortens the feedback cycle and keeps you in the flow. For Java, <a href="http://improvingworks.com/products/infinitest/eclipse/" rel="nofollow" target="_blank">InfiniTest</a> does the same.</p>
<p>The problem with my current tool chain is that support for renaming is extremely limited. I got <code>Operation unavailable on the current selection. Select a JavaScript project, source folder, resource, or a JavaScript file, or a non-readonly type, var, function, parameter, local variable, or type variable.</code></p>
<p>Other refactorings do exist, like <em>Extract Local Variable</em> and <em>Extract Method</em>, but they mess up the formatting. They also give errors, but then work when trying again.</p>
<p>All in all I feel satisfied with the first steps I&#8217;ve taken on this journey. I&#8217;m a little worried about the stability of the tools. I also realize I have a more to learn about JavaScript prototypes.</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/cloud9/'>Cloud9</a>, <a href='http://securesoftwaredev.com/tag/fde/'>FDE</a>, <a href='http://securesoftwaredev.com/tag/infinitest/'>InfiniTest</a>, <a href='http://securesoftwaredev.com/tag/javascript/'>JavaScript</a>, <a href='http://securesoftwaredev.com/tag/jshint-eclipse/'>jshint-eclipse</a>, <a href='http://securesoftwaredev.com/tag/jstestdriver/'>JsTestDriver</a>, <a href='http://securesoftwaredev.com/tag/jsunit/'>JsUnit</a>, <a href='http://securesoftwaredev.com/tag/kata/'>kata</a>, <a href='http://securesoftwaredev.com/tag/markdown/'>Markdown</a>, <a href='http://securesoftwaredev.com/tag/node-js/'>node.js</a>, <a href='http://securesoftwaredev.com/tag/nodeclipse/'>Nodeclipse</a>, <a href='http://securesoftwaredev.com/tag/orion/'>Orion</a>, <a href='http://securesoftwaredev.com/tag/refactoring/'>refactoring</a>, <a href='http://securesoftwaredev.com/tag/roman-numerals/'>Roman numerals</a>, <a href='http://securesoftwaredev.com/tag/tdd/'>TDD</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4910/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4910/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4910/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4910/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4910/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4910/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4910/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4910/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4910&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=W2dH5ey3p_M:r4d1Fvnlptc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=W2dH5ey3p_M:r4d1Fvnlptc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=W2dH5ey3p_M:r4d1Fvnlptc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=W2dH5ey3p_M:r4d1Fvnlptc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/W2dH5ey3p_M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/05/13/adventures-in-javascript-getting-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/nodejs_logo.png?w=240" medium="image">
			<media:title type="html">Node.js</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/jstestdriver.png?w=160" medium="image">
			<media:title type="html">JsTestDriver</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/05/13/adventures-in-javascript-getting-started/</feedburner:origLink></item>
		<item>
		<title>Is XACML Dead?</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/yX08qlkNB4o/</link>
		<comments>http://securesoftwaredev.com/2013/05/08/is-xacml-dead/#comments</comments>
		<pubDate>Wed, 08 May 2013 17:59:46 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Information Security]]></category>
		<category><![CDATA[XACML]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[fine grained access control]]></category>
		<category><![CDATA[Forrester]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[OASIS]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[OpenAz]]></category>
		<category><![CDATA[RAdAC]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SAML]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4964</guid>
		<description><![CDATA[XACML is dead. Or so writes Forrester&#8217;s Andras Cser. Before I take a critical look at the reasons underlying this claim, let me disclose that I&#8217;m a member of the OASIS committee that defines the XACML specification. So I may be a little biased. Lack of broad adoption The first reason for claiming XACML dead [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4964&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://sinnema313.files.wordpress.com/2013/05/rip.jpg?w=194&#038;h=240" alt="rip" width="194" height="240" class="alignright size-medium wp-image-4999" />XACML is dead. Or <a href="http://blogs.forrester.com/andras_cser/13-05-07-xacml_is_dead" rel="nofollow" target="_blank">so writes Forrester&#8217;s Andras Cser</a>.</p>
<p>Before I take a critical look at the reasons underlying this claim, let me disclose that I&#8217;m a <a href="https://www.oasis-open.org/committees/membership.php?wg_abbrev=xacml" rel="nofollow" target="_blank">member of the OASIS committee</a> that defines the XACML specification. So I may be a little biased.</p>
<h3>Lack of broad adoption</h3>
<p>The first reason for claiming XACML dead is the lack of adoption. Being a techie, I don&#8217;t see a lot of customers, so I have to assume Forrester knows better than me.</p>
<p>At last year&#8217;s <a href="http://xacml.eventbrite.nl/" title="XACML practical experiences" rel="nofollow" target="_blank">XACML Seminar</a> in the Netherlands, there were indeed not many people who actually used XACML, but the room was filled with people who were at least interested enough to pay to hear about practical experiences with XACML.</p>
<p>I also know that XACML is in use at large enterprises like Bank of America, Bell Helicopter, and Boeing, to name just some Bs. And the <a href="http://securesoftwaredev.com/security/authorization/xacml/xacml-products/" title="XACML Products" target="_blank">supplier side</a> is certainly not the problem.</p>
<p>So there is some adoption, buI grant that it&#8217;s not broad.</p>
<h3>Inability to serve the federated, extended enterprise</h3>
<blockquote><p>XACML was designed to meet the authorization needs of the monolithic enterprise where all users are managed centrally in AD.</p></blockquote>
<p><img src="http://sinnema313.files.wordpress.com/2013/05/extended-enterprise.jpg?w=160&#038;h=113" alt="extended-enterprise" width="160" height="113" class="alignleft size-thumbnail wp-image-5001" />I don&#8217;t understand this statement at all, as there is nothing in the XACML spec that depends on centrally managed users.</p>
<p>Especially in combination with <a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security" title="Security Assertion Markup Language" rel="nofollow" target="_blank">SAML</a>, XACML can handle federated scenarios perfectly fine.</p>
<p>In my current project, we&#8217;re using XACML in a <a href="http://securesoftwaredev.com/cloud-computing/resource-pooling//" title="XACML in the Cloud" target="_blank">multi-tenant</a> environment where each tenant uses their own identity provider. No problem.</p>
<h3>PDP does a lot of complex things that it does not inform the PEP about</h3>
<p>The PDP is apparently supposed to tell the PEP why access is denied. I don&#8217;t get that: I&#8217;ve never seen an application that greyed out a button and included the text &#8220;You need the admin role to perform this operation&#8221;.</p>
<p>Maybe this is about testing access control policies. Or maybe I just don&#8217;t understand the problem. I&#8217;d love to learn more about this.</p>
<h3>Not suitable for cloud and distributed deployment</h3>
<p><img src="http://sinnema313.files.wordpress.com/2012/08/cloudsecurity.jpg?w=160&#038;h=125" alt="CloudSecurity" width="160" height="125" class="alignright size-thumbnail wp-image-2817" />I guess what they mean is that fine-grained access control doesn&#8217;t work well in high latency environments. If so, sure.</p>
<p>XACML doesn&#8217;t prescribe how fine-grained your policies have to be, however, so I can&#8217;t see how this could be XACML&#8217;s fault. That&#8217;s like blaming my keyboard for allowing me to type more characters than fit in a tweet.</p>
<p>Actually, I&#8217;d say that <a href="http://www.oasis-open.org/events/webinars/2011-06-08-xacml-3.0-managing-access-control-in-the-cloud.wmv" title="Webinar: XACML 3.0: Managing Access Control in the Cloud and Beyond," rel="nofollow" target="_blank">XACML works very well in the cloud</a>. And with the recently approved <a href="http://docs.oasis-open.org/xacml/xacml-rest/v1.0/xacml-rest-v1.0.pdf" title="REST Profile of XACML v3.0 Version 1.0" target="_blank">REST profile</a> and the upcoming JSON profile, XACML will be even better suited for cloud solutions.</p>
<h3>Commercial support is non-existent</h3>
<p>This is lack of adoption again.</p>
<p>BTW, absolute claims like &#8220;there is no software library with PEP support&#8221; turn you into an easy target. All it takes is <a href="http://openliberty.org/wiki/index.php/OpenAz_Main_Page" title="OpenAz" rel="nofollow" target="_blank">one counter example</a> to prove you wrong.</p>
<h3>Refactoring and rebuilding existing in-house applications is not an option</h3>
<p>This, I think, is the main reason for slow adoption: legacy applications create inertia. We see the same thing with SSO. Even today, there are EMC internal applications that require me to maintain separate credentials.</p>
<p>The problem is worse for authorization. Authentication is a one-time thing at the start of a session, but authorization happens all the time. There are simply more places in an application that require modification.</p>
<p>There may be some light at the end of the tunnel, however.</p>
<p><a href="http://sinnema313.files.wordpress.com/2013/02/constant-attack.jpg"><img src="http://sinnema313.files.wordpress.com/2013/02/constant-attack.jpg?w=160&#038;h=90" title="Under constant attack" alt="Under constant attack" width="160" height="90" class="alignleft size-thumbnail wp-image-4749" /></a>History shows that inertia can be overcome by a large enough force.</p>
<p>That force might be the <a href="http://securesoftwaredev.com/2013/02/11/how-to-secure-an-organization-that-is-under-constant-attack/" title="How To Secure an Organization That Is Under Constant Attack" target="_blank">changing threat landscape</a>. We&#8217;ll see.</p>
<h3>OAuth supports the mobile application endpoint in a lightweight manner</h3>
<p>OAuth does well in the mobile space. One reason is that mobile apps usually provide focused functionality that doesn&#8217;t require fine-grained access control decisions. It remains to be seen whether that continues to be true as mobile apps get more advanced.</p>
<p>Of course, if all your access control needs can be implemented with one yes/no question, then using XACML is overkill. That doesn&#8217;t, however, mean there is no place for XACML is the many, many places where life is not that simple.</p>
<h3>What do you think?</h3>
<p>All in all, I&#8217;m certainly not convinced by Forrester&#8217;s claim that XACML is dead. Are you? If XACML were buried, what would you use instead?</p>
<p><strong>Update:</strong> Others have joined in the discussion and confirmed that XACML is not dead:</p>
<ul>
<li><a href="http://analyzingidentity.com/2013/05/08/xacml-alive-and-well/" title="XACML: Alive and Well" rel="nofollow" target="_blank">Gary</a> from XACML vendor Axiomatics</li>
<li><a href="http://dannythorpe.com/2013/05/08/xacml-is-dead-long-live-xacml/" title="XACML is Dead? Long Live XACML!" rel="nofollow" target="_blank">Danny</a> from XACML vendor Dell</li>
<li><a href="http://anil-identity.blogspot.nl/2013/05/is-xacml-really-dead-should-we-all-go.html" title="Is XACML really dead? Should we all go OAUTH?" rel="nofollow" target="_blank">Anil</a> from open source XACML implementation JBoss PicketBox</li>
<li><a href="http://blogs.gartner.com/ian-glazer/2013/05/09/anyone-can-kill-off-a-protocol-a-k-a-xacml-isnt-dead/" title="Anyone can kill off a protocol a.k.a XACML isn’t dead" rel="nofollow" target="_blank">Ian</a> from analyst Gartner</li>
</ul>
<p><strong>Update 2:</strong> More people joined the discussion. One is <a href="http://en.tavasardze.lv/analysts-brawl-over-death-of-markup-language.html" title="Analysts brawl over ‘death’ of markup language" rel="nofollow" target="_blank">confused</a>, one is <a href="http://blog.empowerid.com/blog-1/bid/290061/Is-XACML-the-Esperanto-of-IT-Security" title="Is XACML the Esperanto of IT Security?" rel="nofollow" target="_blank">confusing</a>, and Forrester&#8217;s Eva Mahler (of <a href="http://www.amazon.com/gp/product/0133098818/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0133098818&amp;linkCode=as2&amp;tag=secursoftwdev-20" title="Developing SGML DTDs: From Text to Model to Markup" rel="nofollow" target="_blank">SGML</a> and <a href="http://kantarainitiative.org/confluence/display/uma/Home" title="User-Managed Access" rel="nofollow" target="_blank">UMA</a> fame) <a href="http://blogs.forrester.com/eve_maler/13-05-13-the_mobile_cloud_axis_needs_a_modern_authorization_system_xacml_3_isnt_it" title="The mobile cloud axis needs a modern authorization system - XACML 3.0 isn't it" rel="nofollow" target="_blank">backs her colleague</a>.</p>
<p><strong>Update 3:</strong> Another analyst joins the discussion: <a href="http://blogs.kuppingercole.com/kuppinger/2013/05/13/another-dead-body-in-it-or-is-xacml-still-alive/" title="Another dead body in IT? Or is XACML still alive?" rel="nofollow" target="_blank">KuppingerCole</a> doesn&#8217;t think XACML is dead either.</p>
<p><strong>Update 4:</strong> <a href="http://community.ca.com/blogs/iam/archive/2013/05/14/supporting-industry-standards.aspx" title="Supporting Industry Standards" rel="nofollow" target="_blank">CA keeps supporting XACML</a> in their SiteMinder product.</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/information-security/'>Information Security</a>, <a href='http://securesoftwaredev.com/category/xacml-2/'>XACML</a> Tagged: <a href='http://securesoftwaredev.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://securesoftwaredev.com/tag/fine-grained-access-control/'>fine grained access control</a>, <a href='http://securesoftwaredev.com/tag/forrester/'>Forrester</a>, <a href='http://securesoftwaredev.com/tag/json/'>JSON</a>, <a href='http://securesoftwaredev.com/tag/oasis/'>OASIS</a>, <a href='http://securesoftwaredev.com/tag/oauth/'>OAuth</a>, <a href='http://securesoftwaredev.com/tag/openaz/'>OpenAz</a>, <a href='http://securesoftwaredev.com/tag/radac/'>RAdAC</a>, <a href='http://securesoftwaredev.com/tag/rest/'>REST</a>, <a href='http://securesoftwaredev.com/tag/saml/'>SAML</a>, <a href='http://securesoftwaredev.com/tag/xacml/'>XACML</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4964/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4964/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4964&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=yX08qlkNB4o:YiPv-y3GcDc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=yX08qlkNB4o:YiPv-y3GcDc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=yX08qlkNB4o:YiPv-y3GcDc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=yX08qlkNB4o:YiPv-y3GcDc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/yX08qlkNB4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/05/08/is-xacml-dead/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://www.oasis-open.org/events/webinars/2011-06-08-xacml-3.0-managing-access-control-in-the-cloud.wmv" length="79954785" type="video/x-ms-wmv" />
<enclosure url="http://www.oasis-open.org/events/webinars/2011-06-08-xacml-3.0-managing-access-control-in-the-cloud.wmv" length="79954785" type="video/x-ms-wmv" />
<enclosure url="http://www.oasis-open.org/events/webinars/2011-06-08-xacml-3.0-managing-access-control-in-the-cloud.wmv" length="79954785" type="video/x-ms-wmv" />
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/rip.jpg?w=194" medium="image">
			<media:title type="html">rip</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/extended-enterprise.jpg?w=160" medium="image">
			<media:title type="html">extended-enterprise</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2012/08/cloudsecurity.jpg?w=160" medium="image">
			<media:title type="html">CloudSecurity</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/constant-attack.jpg?w=160" medium="image">
			<media:title type="html">Under constant attack</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/05/08/is-xacml-dead/</feedburner:origLink></item>
		<item>
		<title>Bridging the Client-Server Divide</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/4hHE4EpbMEk/</link>
		<comments>http://securesoftwaredev.com/2013/05/06/bridging-the-client-server-divide/#comments</comments>
		<pubDate>Mon, 06 May 2013 11:00:05 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Cloud9]]></category>
		<category><![CDATA[CloudFoundry]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Heroku]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[polyglot programming]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4921</guid>
		<description><![CDATA[Most software these days is delivered in the form of web applications, and the move towards cloud computing will only emphasize this trend. Web apps consist of client and server parts, where the client part has been getting bigger lately to deliver a richer user experience. This split has implications for developers, because the technologies [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4921&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://sinnema313.files.wordpress.com/2013/05/webapp-architecture.gif" title="Typical Web Application Architecture"><img src="http://sinnema313.files.wordpress.com/2013/05/webapp-architecture.gif?w=189&#038;h=240" alt="webapp-architecture" width="189" height="240" class="alignright size-medium wp-image-4942" /></a>Most software these days is delivered in the form of web applications, and the move towards <a href="http://securesoftwaredev.com/cloud-computing/" target="_blank">cloud computing</a> will only emphasize this trend.</p>
<p>Web apps consist of client and server parts, where the client part has been getting bigger lately to <a href="http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications" title="Ajax: A New Approach to Web Applications" target="_blank">deliver a richer user experience</a>.</p>
<p>This split has implications for developers, because the technologies used on the client and server parts are often different. </p>
<p>The client is ruled by <a href="http://www.w3.org/TR/html4/" title="HTML 4.01" rel="nofollow" target="_blank">HTML</a>, <a href="http://www.w3.org/TR/CSS2/" title="CSS 2.1" rel="nofollow" target="_blank">CSS</a>, and <a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf" title="EcmaScript" rel="nofollow" target="_blank">JavaScript</a>, while the server is most often developed using <a href="http://docs.oracle.com/javase/specs/jvms/se7/html/index.html" title="The Java® Virtual Machine Specification" rel="nofollow" target="_blank">JVM</a> or <a href="http://www.microsoft.com/net/" rel="nofollow" target="_blank">.NET</a> based languages like <a href="http://docs.oracle.com/javase/specs/jls/se7/html/index.html" title="The Java® Language Specification" rel="nofollow" target="_blank">Java</a> and <a href="http://msdn.microsoft.com/en-us/vstudio/hh341490.aspx" rel="nofollow" target="_blank">C#</a>.</p>
<h3>Disadvantages of Different Client and Server Technologies</h3>
<p>Developers of web applications risk becoming either specialists confined to a single part of the stack or polyglot programmers.</p>
<p><em>Polyglot programming</em> is the practice of knowing and using many programming languages. There are both advantages and disadvantages associated with polyglot programming. I believe the overriding disadvantage is the context switching involved, which <a href="http://www.joelonsoftware.com/articles/fog0000000022.html" title="Human Task Switches Considered Harmful" rel="nofollow" target="_blank">degrades productivity</a> and opens the doors to extra bugs.</p>
<p>Being a specialist has advantages and disadvantages as well. A big disadvantage I see is the &#8220;us versus them&#8221;, or &#8220;not my problem&#8221; culture that can arise. In general, <a href="http://agilewarrior.wordpress.com/2011/07/03/the-rise-of-the-generalist/" title=" The rise of the generalist" rel="nofollow" target="_blank">Agile teams prefer generalists</a>.</p>
<h3>Bringing Server Technologies to the Client</h3>
<p>Many attempts have been made at bridging the gap between client and server. Most of these attempts were about bringing server-side technologies to the client.</p>
<p><img src="http://sinnema313.files.wordpress.com/2013/05/gwt-logo.png?w=450" alt="GWT"   class="alignleft size-full wp-image-4950" />Java on the client has failed to reached widespread adoption, and now that many people advice to <a href="http://www.slate.com/blogs/future_tense/2013/01/14/java_zero_day_exploit_don_t_patch_just_disable_java_in_your_browser.html" rel="nofollow" target="_blank">disable Java applets altogether because of security reasons</a> it seems increasingly unlikely that it ever will.</p>
<p>Bringing .NET to the client has likewise failed as <a href="http://blog.discountasp.net/rise-and-fall-of-silverlight-silverlight-adoption-at-discountasp-net/" title="Rise and Fall of Silverlight: Silverlight adoption at DiscountASP.NET" rel="nofollow" target="_blank">Silverlight adoption continues to drop</a>.</p>
<p>Another idea is to translate from server to client technologies. <a href="https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS" title="List of languages that compile to JS" rel="nofollow" target="_blank">Many languages can now be compiled to JavaScript</a>. The most mature effort is <a href="https://developers.google.com/web-toolkit/" rel="nofollow" target="_blank">Google Web Toolkit</a> (GWT), which translates from Java. The main problem with GWT is that it <a href="https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsCompatibility" title="GWT - Compatibility with the Java Language and Libraries" rel="nofollow" target="_blank">supports only a small subset of Java</a>.</p>
<p>All in all I don&#8217;t feel there currently is a satisfactory way of using server technologies on the client.</p>
<h3>Bringing Client Technologies to the Server</h3>
<p>So what about the reverse? There is really only one client-side technology worth looking at today: JavaScript. The only other rival, <a href="http://www.adobe.com/nl/products/flashplayer.html" title="Adobe Flash Player" rel="nofollow" target="_blank">Flash</a>, is losing out quickly due to <a href="http://www.apple.com/hotnews/thoughts-on-flash/" title="Steve Jobs: Thoughts on Flash" rel="nofollow" target="_blank">lack of support from Apple</a> and the rise of <a href="http://dret.typepad.com/dretblog/html5-api-overview.html" title="HTML5 Landscape Overview" rel="nofollow" target="_blank">HTML5</a>.</p>
<p><img src="http://sinnema313.files.wordpress.com/2013/05/nodejs_logo.png?w=160&#038;h=80" alt="Node.js" width="160" height="80" class="alignright size-thumbnail wp-image-4954" />JavaScript on the server is starting to make inroads, thanks to the <a href="http://nodejs.org/" rel="nofollow" target="_blank">Node.js</a> platform.</p>
<p>It is <a href="https://c9.io/site/node-js/" rel="nofollow" target="_blank">used by the Cloud9 IDE</a>, for example, and supported by Platform-as-a-Service providers like <a href="http://blog.cloudfoundry.com/2012/01/24/node-js-and-cloud-foundry/" rel="nofollow" target="_blank">CloudFoundry</a> and <a href="https://devcenter.heroku.com/categories/nodejs" rel="nofollow" target="_blank">Heroku</a>.</p>
<h3>What do you think?</h3>
<p>If I had to put my money on any unification approach, it would be Node.js.</p>
<p>Do you agree? What needs to happen to make this a common way of developing web apps? Please let me know your thoughts in the comments.</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/net/'>.NET</a>, <a href='http://securesoftwaredev.com/tag/agile/'>Agile</a>, <a href='http://securesoftwaredev.com/tag/apple/'>Apple</a>, <a href='http://securesoftwaredev.com/tag/applet/'>applet</a>, <a href='http://securesoftwaredev.com/tag/c/'>C#</a>, <a href='http://securesoftwaredev.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://securesoftwaredev.com/tag/cloud9/'>Cloud9</a>, <a href='http://securesoftwaredev.com/tag/cloudfoundry/'>CloudFoundry</a>, <a href='http://securesoftwaredev.com/tag/css/'>CSS</a>, <a href='http://securesoftwaredev.com/tag/flash/'>Flash</a>, <a href='http://securesoftwaredev.com/tag/gwt/'>GWT</a>, <a href='http://securesoftwaredev.com/tag/heroku/'>Heroku</a>, <a href='http://securesoftwaredev.com/tag/html/'>HTML</a>, <a href='http://securesoftwaredev.com/tag/html5/'>HTML5</a>, <a href='http://securesoftwaredev.com/tag/java/'>Java</a>, <a href='http://securesoftwaredev.com/tag/javascript/'>JavaScript</a>, <a href='http://securesoftwaredev.com/tag/jvm/'>JVM</a>, <a href='http://securesoftwaredev.com/tag/node-js/'>node.js</a>, <a href='http://securesoftwaredev.com/tag/polyglot-programming/'>polyglot programming</a>, <a href='http://securesoftwaredev.com/tag/security/'>security</a>, <a href='http://securesoftwaredev.com/tag/silverlight/'>Silverlight</a>, <a href='http://securesoftwaredev.com/tag/webapp/'>webapp</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4921/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4921/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4921/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4921/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4921/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4921/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4921/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4921/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4921&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=4hHE4EpbMEk:jPi0SSXsKrk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=4hHE4EpbMEk:jPi0SSXsKrk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=4hHE4EpbMEk:jPi0SSXsKrk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=4hHE4EpbMEk:jPi0SSXsKrk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/4hHE4EpbMEk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/05/06/bridging-the-client-server-divide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/webapp-architecture.gif?w=189" medium="image">
			<media:title type="html">webapp-architecture</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/gwt-logo.png" medium="image">
			<media:title type="html">GWT</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/05/nodejs_logo.png?w=160" medium="image">
			<media:title type="html">Node.js</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/05/06/bridging-the-client-server-divide/</feedburner:origLink></item>
		<item>
		<title>Data Classification In the Cloud</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/B3_S5fCANYE/</link>
		<comments>http://securesoftwaredev.com/2013/04/01/data-classification-in-the-cloud/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 11:00:26 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Cloud Security]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[assessment]]></category>
		<category><![CDATA[authorization]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cloud contract]]></category>
		<category><![CDATA[compiance]]></category>
		<category><![CDATA[CSA]]></category>
		<category><![CDATA[CWSS]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data classification]]></category>
		<category><![CDATA[Data Protection Agreement]]></category>
		<category><![CDATA[HIPAA]]></category>
		<category><![CDATA[PCI DSS]]></category>
		<category><![CDATA[Safe Harbor]]></category>
		<category><![CDATA[TRUSTe]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4885</guid>
		<description><![CDATA[Whenever a bug report comes in, I subconsciously classify it according to how it impacts the customer&#8217;s ability to derive value from the product. Many software development companies have policies that formalize such classifications, e.g. into critical, high, medium, and low priority. One can take that very far, like the Common Weakness Scoring System (CWSS) [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4885&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Whenever a bug report comes in, I subconsciously classify it according to how it impacts the customer&#8217;s ability to derive value from the product.</p>
<p>Many software development companies have policies that formalize such classifications, e.g. into critical, high, medium, and low priority.</p>
<p>One can take that very far, like the <a href="http://cwe.mitre.org/cwss/index.html#formula" rel="nofollow" target="_blank">Common Weakness Scoring System</a> (CWSS) for classifying security vulnerabilities.</p>
<h3>Data classification</h3>
<p>Classifications are useful, because they <a href="http://en.wikipedia.org/wiki/Categorization" title="Categorization" rel="nofollow" target="_blank">compress a vast set of possibilities into a small set of categories</a>. This makes it easier to decide what to do.</p>
<p>Classification applied to data stored in computer systems is called <a href="http://en.wikipedia.org/wiki/Data_classification_%28data_management%29" rel="nofollow" target="_blank">data classification</a>. There are different reasons for classifying data. </p>
<p>One is to determine appropriate <a href="http://securesoftwaredev.com/security/authorization/" target="_blank">access control</a> policies. It is wasteful to protect all your information at the highest level, so you want to divide up your data into a small number of buckets and take measures that are appropriate for each bucket.</p>
<p>Another important use case of data classification is to drive <a href="http://en.wikipedia.org/wiki/Compliance_%28regulation%29" rel="nofollow" target="_blank">compliance</a> efforts. If you process health care data, for instance, you may have to comply with the <a href="http://www.cms.gov/Regulations-and-Guidance/HIPAA-Administrative-Simplification/HIPAAGenInfo/index.html?redirect=/HIPAAGenInfo/t" target="_blank">Health Insurance Portability and Accountability Act</a> (HIPAA). This data requires different controls to be put in place than credit card data that is covered by <a href="https://www.pcisecuritystandards.org/" rel="nofollow" target="_blank">PCI DSS</a>.</p>
<h3>Data in the Cloud</h3>
<p>Things get more interesting in the <a href="http://securesoftwaredev.com/cloud-computing/" title="Cloud Computing" target="_blank">cloud</a>.</p>
<p>As a cloud user, you are still subject to the same laws and regulations as before, but now you&#8217;ve given away part of the control to your cloud provider. This means you have to make sure that they implement the required controls.</p>
<p>If the regulations you must comply with come with <em>assessments</em>, then those must extend to the cloud provider. Many cloud providers will not allow you to come in and do such assessments yourself, but they may allow assessments from third parties, like <a href="http://www.truste.com/products-and-services/enterprise-privacy/eu-safe-harbor-seal" rel="nofollow" target="_blank">TRUSTe</a> for a <a href="http://export.gov/safeharbor/" rel="nofollow" target="_blank">Safe Harbor</a> assessment.</p>
<p>As a cloud provider, you will want to implement as many controls as possible, to support the maximum number of laws and regulations that your customers must comply with.</p>
<p>Both parties benefit from clear contracts. Part of such a contract may be a <em>Data Protection Agreement</em> that lists the duties of both parties in classifying and properly protecting data to meet security requirements and regulations.</p>
<p>If you&#8217;re unsure how to do all of this right, then you may want to look for guidance from the <a href="https://cloudsecurityalliance.org/" rel="nofollow" target="_blank">Cloud Security Alliance</a> (CSA).</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://securesoftwaredev.com/category/cloud-security/'>Cloud Security</a>, <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/assessment/'>assessment</a>, <a href='http://securesoftwaredev.com/tag/authorization/'>authorization</a>, <a href='http://securesoftwaredev.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://securesoftwaredev.com/tag/cloud-contract/'>cloud contract</a>, <a href='http://securesoftwaredev.com/tag/compiance/'>compiance</a>, <a href='http://securesoftwaredev.com/tag/csa/'>CSA</a>, <a href='http://securesoftwaredev.com/tag/cwss/'>CWSS</a>, <a href='http://securesoftwaredev.com/tag/data/'>data</a>, <a href='http://securesoftwaredev.com/tag/data-classification/'>data classification</a>, <a href='http://securesoftwaredev.com/tag/data-protection-agreement/'>Data Protection Agreement</a>, <a href='http://securesoftwaredev.com/tag/hipaa/'>HIPAA</a>, <a href='http://securesoftwaredev.com/tag/pci-dss/'>PCI DSS</a>, <a href='http://securesoftwaredev.com/tag/safe-harbor/'>Safe Harbor</a>, <a href='http://securesoftwaredev.com/tag/truste/'>TRUSTe</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4885/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4885&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=B3_S5fCANYE:j2p0B0SVJ5I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=B3_S5fCANYE:j2p0B0SVJ5I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=B3_S5fCANYE:j2p0B0SVJ5I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=B3_S5fCANYE:j2p0B0SVJ5I:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/B3_S5fCANYE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/04/01/data-classification-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/04/01/data-classification-in-the-cloud/</feedburner:origLink></item>
		<item>
		<title>Likely Candidates for Frictionless Development Environments</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/_uemgjSfJik/</link>
		<comments>http://securesoftwaredev.com/2013/03/25/likely-candidates-for-frictionless-development-environments/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 12:00:08 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Cloud9]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[FDE]]></category>
		<category><![CDATA[Orion]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4866</guid>
		<description><![CDATA[Last time I reviewed the book on Consumption Economics, which explains how technology companies and their products will have to change to survive the brave new world that we&#8217;re entering. So what would we find if we take the lessons from the book and apply them to our own software development environment? I think the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4866&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last time I reviewed the book on <a href="http://securesoftwaredev.com/2013/03/18/book-review-consumption-economics/" target="_blank">Consumption Economics</a>, which explains how technology companies and their products will have to change to survive the brave new world that we&#8217;re entering.</p>
<p>So what would we find if we take the lessons from the book and apply them to our own software development environment? I think the answer would be surprisingly close to what I&#8217;ve called a <a href="http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/" title="How Friction Slows Us Down" target="_blank">Frictionless Development Environment</a> (FDE) before.</p>
<p>To be honest, I&#8217;ve only started thinking more systematically about FDEs after reading <em>Consumption Economics</em>. In <a href="http://securesoftwaredev.com/2013/02/04/five-essential-components-of-a-frictionless-development-environment/" target="_blank">Five Essential Components of a Frictionless Development Environment</a>, I&#8217;ve laid out the major building blocks of an FDE: <a href="http://securesoftwaredev.com/cloud-computing/" target="_blank">cloud computing</a>, big data analytics, recommendation engines, plug-in architecture, and open source.</p>
<p>It may be to soon to expect existing solutions to have all of those, but let&#8217;s see where we stand. There are already some <a href="http://www.hongkiat.com/blog/cloud-ide-developers/" title="Cloud IDEs For Web Developers" target="_blank">cloud development environments</a>. Most of these are geared towards web developers, and offer limited languages (mostly JavaScript). Some offer a big enough range to be interesting to a wide range of developers.</p>
<p>Big data analytics and recommendation engines are big features that are probably not there yet, but could always be added later. What&#8217;s more important is to look for a plug-in architecture and particularly for open source. These are fundamental architectural and business decisions.</p>
<p>Using open source as a criterion reduces our list to <a href="https://c9.io/" title="Cloud9 IDE" rel="nofollow" target="_blank">Cloud9</a> and <a href="http://www.eclipse.org/orion/" rel="nofollow" target="_blank">Orion</a>. Both have a plug-in architecture. The latter is an <a href="http://eclipse.org" rel="nofollow" target="_blank">Eclipse</a> project, but the former seems more <a href="https://c9.io/site/features/" title="Cloud9 Features" rel="nofollow" target="_blank">mature</a>. Be sure to follow both <a href="https://twitter.com/Cloud9IDE" title="@Cloud9IDE" target="_blank">Cloud9</a> and <a href="https://twitter.com/orionhub" title="@orionhub" target="_blank">Orion</a>.</p>
<p>So what do you think? Would any of these cloud IDEs work for you? What other open source cloud IDEs are out there?</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/big-data/'>Big Data</a>, <a href='http://securesoftwaredev.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://securesoftwaredev.com/tag/cloud9/'>Cloud9</a>, <a href='http://securesoftwaredev.com/tag/eclipse/'>Eclipse</a>, <a href='http://securesoftwaredev.com/tag/fde/'>FDE</a>, <a href='http://securesoftwaredev.com/tag/orion/'>Orion</a>, <a href='http://securesoftwaredev.com/tag/plug-in/'>plug-in</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4866/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4866&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=_uemgjSfJik:SzNPChMMUfo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=_uemgjSfJik:SzNPChMMUfo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=_uemgjSfJik:SzNPChMMUfo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=_uemgjSfJik:SzNPChMMUfo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/_uemgjSfJik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/03/25/likely-candidates-for-frictionless-development-environments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/03/25/likely-candidates-for-frictionless-development-environments/</feedburner:origLink></item>
		<item>
		<title>Book review: Consumption Economics</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/ku6_pZhb1TY/</link>
		<comments>http://securesoftwaredev.com/2013/03/18/book-review-consumption-economics/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 12:00:21 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Books, Blogs, etc.]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Account Services Organization]]></category>
		<category><![CDATA[CapEx]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[commoditization]]></category>
		<category><![CDATA[Consumption Gap]]></category>
		<category><![CDATA[micro-transaction]]></category>
		<category><![CDATA[OpEx]]></category>
		<category><![CDATA[recommendation engine]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[transformation]]></category>
		<category><![CDATA[usage data]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4296</guid>
		<description><![CDATA[Consumption Economics, The New Rules of Tech, paints a detailed picture of the future of the technology business, combining vision with practical steps to realize it. Chapter 1, How Good We Had It, observes that purchased tech products are traditionally paid for up front, while usage starts (much) later, which means the risk is on [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4296&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/B0060M4A1C/ref=as_li_ss_tl?ie=UTF8&amp;tag=secursoftwdev-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0060M4A1C" rel="nofollow" target="_blank"><img src="http://sinnema313.files.wordpress.com/2013/01/consumption-economics.png?w=178&#038;h=240" alt="Consumption Economics" width="178" height="240" class="alignright size-medium wp-image-4297" /></a><a href="http://www.amazon.com/gp/product/B0060M4A1C/ref=as_li_ss_tl?ie=UTF8&amp;tag=secursoftwdev-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0060M4A1C" rel="nofollow" target="_blank">Consumption Economics, The New Rules of Tech</a>, paints a detailed picture of the future of the technology business, combining vision with practical steps to realize it.</p>
<p><img src="http://sinnema313.files.wordpress.com/2012/10/rating-five-out-of-five.jpg?w=240&#038;h=55" alt="I give this book five stars" title="I give this book five stars" width="240" height="55" class="aligncenter size-medium wp-image-3408" /></p>
<p>Chapter 1, <strong>How Good We Had It</strong>, observes that purchased tech products are traditionally paid for up front, while usage starts (much) later, which means the risk is on the buyer to derive value from the purchase.</p>
<p>Since vendors add features to their products faster than customers can consume them, we have a <em>Consumption Gap</em>: the difference between the potential value of a product and the value that is actually realized. </p>
<p>Customers are changing their attitude towards the Consumption Gap and its risk. The economic downturn encourages businesses to cut costs, <a href="http://securesoftwaredev.com/cloud-computing/" target="_blank">cloud computing</a> shifts the buying model from <a href="http://en.wikipedia.org/wiki/Capital_expenditure" title="Capital expenditure" rel="nofollow" target="_blank">CapEx</a> to <a href="http://en.wikipedia.org/wiki/Operating_expense" title="Operating expense" rel="nofollow" target="_blank">OpEx</a>, and the iPhone&#8217;s <a href="http://www.apple.com/iphone/from-the-app-store/" rel="nofollow" target="_blank">App Store</a> has brought choice to computing.</p>
<p>Chapter 2, <strong>Shifting Clouds and Changing Rules</strong>, explains that the risk of monetizing the investment in tech products will shift to vendors, who will have to survive off <em>micro-transactions</em> (MTs). The cloud will bring prices down to the point of retail-like price wars. Vertical market focus and business process expertise will become the new high-value service capabilities.</p>
<p>Influence will shift from IT departments to end users, who are the ones making the MTs. Tech companies are not used to deal with them, but real-time usage data will change that and lead to the discovery of best-practice utilization patterns.</p>
<p>Chapter 3, <strong>Looking Over the Margin Wall</strong>, explains that tech is not immune to commoditization. Price competition will kick in and margins will decrease. When we hit this <em>Margin Wall</em>, the only viable strategy is to start over with a new product. The cloud&#8217;s low switching costs are decreasing the runway to commoditization.</p>
<p>Things look differently on the other side of the Margin Wall. Revenue is based on MTs, so no usage means no money. The Consumption Gap is now the provider&#8217;s problem: they need to make sure their product&#8217;s advanced features get used. They must build sophisticated <em>Consumption Models</em>.</p>
<p>Chapter 4, <strong>Learning to Love Micro-Transactions</strong>, argues that in an OpEx model, volume matters and vendor must learn how to drive MTs. This means more features per user, more apps per user, and more users per month. Even on-premise solutions will move to OpEx models. </p>
<p>We&#8217;ll need automated ways to sell electronically in the context of the user&#8217;s workflow. We can learn a lot from games, where users get constant feedback, are recognized with rewards and status, and are part of a community in which to share and compete.</p>
<p>Customers must learn this new model as well. Their costs will become less predictable, and purchasing power will trickle down to end users. The role of the IT department will change with new policies like <em>Bring Your Own Device</em> (BYOD).</p>
<p>Chapter 5, <strong>The Data Piling Up in the Corner</strong>, argues for aggregating and analyzing usage data to build Consumption Models that drive usage. Cloud computing enables that, since all user interactions are recorded on the server. </p>
<p>We need to identify <em>Consumption Roadmaps</em>, best practices for consuming value from our products, and we need our product to guide the end user according to priorities set by the customer.</p>
<p>This requires an e-commerce layer in our products and our organization. Service and field staff will be armed with detailed usage data to better help customers.</p>
<p>Chapter 6, <strong>Consumption Development: The Art and Science of Intelligent Listening</strong>, explains that with deployment in the cloud, we no longer need to get every thing right from the start, but we can also no longer sit back after a release. We need to actively drive usage based on usage statistics.</p>
<p><em>Intelligent Listening</em> predicts new wanted features from usage data and monitoring of social media. <em>Consumption Innovation</em> executes on this learning through capabilities to simplify usage and guide users along predetermined paths. <em>In-Product Up-sell</em> bakes in recommendation engines and offer-management capabilities to present users with new features they are likely to want. </p>
<p>Implementing these changes cost money. To fund them, get rid of products that don&#8217;t generate profit, as they take up development time and effort.</p>
<p>Chapter 7, <strong>Consumption Marketing: Micro-Marketing and Micro-Buzz</strong>, describes how the shift to decision making by end users and the data we have about their behavior will change marketing.</p>
<p>Usage data must be combined with information from services, development, and road maps to form <em>Best Consumption Practices</em>.</p>
<p>Marketing must segment users, identify high value capabilities per segment, figure out what sequence of adoption worked to get there, how to guide others along the same paths, and when and where to trigger offers. Offers need to bring real value to the users to drive trust.</p>
<p>Chapter 8, <strong>Consumption Sales: After a Great Run, the Classic Model Gets an Overhaul</strong>, posits that the old sales model that was based on standardization breaks down with increased complexity of the product and individuality of its users. Instead we need consulting skills and service-oriented compensation models and salespeople with business expertise.</p>
<p>The new sales steps are: win the platform sale, sell the pay-per-use model, and expand the platform agreement by arming the sales force with consumption research.</p>
<p>Chapter 9, <strong>Consumption Services: Will They Someday Own &#8220;The Number&#8221;?</strong>, describes how most current revenue from services is in activities like installation, implementation, integration, and maintenance, and how those will largely go away in the cloud.</p>
<p>The customer service and support team is our best bet for driving MTs, because of their cost structure and remotely operated tools. Their role will have to change from minimizing cost to maximizing customer value by adding new inside sales capabilities.</p>
<p>The <em>Account Services Organization</em> (ASO) will closely tie support with professional services and customer engagement. Expertise will shift away from the technical and towards the business to better help the customer gain value from the system. The ASO will need to learn how to sell MTs and build the Consumption Road-map.</p>
<p>Chapter 10, <strong>Customer Demand vs. Capital Markets: How Fast Should You Transform?</strong>, talks about the balancing act between transforming ourselves and meeting Wall Street&#8217;s short-term expectations. Timing is crucial, as we need some runway to fly over the Margin Wall.</p>
<p>The chapter describes some ways to &#8220;buy runway&#8221; to get you through the transformation period.</p>
<p>Chapter 11, <strong>The &#8220;S&#8221; Stands for Services</strong>, argues that the future of technology is in services and that the cloud is all about services.</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/books-blogs-etc/'>Books, Blogs, etc.</a>, <a href='http://securesoftwaredev.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/account-services-organization/'>Account Services Organization</a>, <a href='http://securesoftwaredev.com/tag/capex/'>CapEx</a>, <a href='http://securesoftwaredev.com/tag/cloud-computing-2/'>cloud computing</a>, <a href='http://securesoftwaredev.com/tag/commoditization/'>commoditization</a>, <a href='http://securesoftwaredev.com/tag/consumption-gap/'>Consumption Gap</a>, <a href='http://securesoftwaredev.com/tag/micro-transaction/'>micro-transaction</a>, <a href='http://securesoftwaredev.com/tag/opex/'>OpEx</a>, <a href='http://securesoftwaredev.com/tag/recommendation-engine/'>recommendation engine</a>, <a href='http://securesoftwaredev.com/tag/service/'>service</a>, <a href='http://securesoftwaredev.com/tag/transformation/'>transformation</a>, <a href='http://securesoftwaredev.com/tag/usage-data/'>usage data</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4296/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4296&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=ku6_pZhb1TY:m-AxB57f_v0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=ku6_pZhb1TY:m-AxB57f_v0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=ku6_pZhb1TY:m-AxB57f_v0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=ku6_pZhb1TY:m-AxB57f_v0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/ku6_pZhb1TY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/03/18/book-review-consumption-economics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/01/consumption-economics.png?w=222" medium="image">
			<media:title type="html">Consumption Economics</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2012/10/rating-five-out-of-five.jpg?w=240" medium="image">
			<media:title type="html">I give this book five stars</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/03/18/book-review-consumption-economics/</feedburner:origLink></item>
		<item>
		<title>How To Remove Friction From Your Version Control Experience</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/-_s-2bSg0WI/</link>
		<comments>http://securesoftwaredev.com/2013/02/18/how-to-remove-friction-from-your-version-control-experience/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 12:00:57 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Perforce]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[static code analysis]]></category>
		<category><![CDATA[user story]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[friction]]></category>
		<category><![CDATA[FDE]]></category>
		<category><![CDATA[andon]]></category>
		<category><![CDATA[branch]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[topic branch]]></category>
		<category><![CDATA[clean code]]></category>
		<category><![CDATA[PMD]]></category>
		<category><![CDATA[CheckStyle]]></category>
		<category><![CDATA[FindBugs]]></category>
		<category><![CDATA[Foritify]]></category>
		<category><![CDATA[process pipeline]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4769</guid>
		<description><![CDATA[Last week, I spend several days fixing a bug that only surfaced in a distributed environment. I felt pressure to fix it quickly, because our continuous integration build was red, and we treat that as a &#8220;stop the line&#8221; event. Then I came across a post from Tomasz Nurkiewicz who claims that breaking the build [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4769&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://sinnema313.files.wordpress.com/2012/12/error.png?w=240&#038;h=240" alt="Error" width="240" height="240" class="alignright size-medium wp-image-4050" />Last week, I spend several days fixing a bug that only surfaced in a distributed environment.</p>
<p>I felt pressure to fix it quickly, because our continuous integration build was red, and we treat that as a <a href="http://en.wikipedia.org/wiki/Andon_%28manufacturing%29" title="Andon" rel="nofollow" target="_blank">&#8220;stop the line&#8221;</a> event.</p>
<p>Then I came across a post from Tomasz Nurkiewicz who claims that <a href="http://nurkiewicz.blogspot.nl/2013/02/breaking-build-is-not-crime.html" rel="nofollow" target="_blank">breaking the build is not a crime</a>.</p>
<p>Tomasz argues that a better way to organize software development is to make sure that breaking changes don&#8217;t affect your team mates. I agree.</p>
<h3>Broken Builds Create Friction</h3>
<p>Breaking changes from your co-workers are a form of <a href="http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/" title="How Friction Slows Us Down" target="_blank">friction</a>, since they take away time and focus from your job. Tomasz&#8217; setup has less friction than ours.</p>
<p>But I feel we can do better still. In a perfect <a href="http://securesoftwaredev.com/2013/02/04/five-essential-components-of-a-frictionless-development-environment/" title="Five Essential Components of a Frictionless Development Environment" target="_blank">Frictionless Development Environment</a> (FDE), all friction is removed. So what would that look like with regard to version control?</p>
<p>With current version control systems, there is lots of friction. I <a href="http://securesoftwaredev.com/2010/11/10/the-verdict-on-perforce/" title="The verdict on Perforce" target="_blank">complained</a> about <a href="http://www.perforce.com/" rel="nofollow" target="_blank">Perforce</a> before because of that.</p>
<p><a href="http://git-scm.com/" rel="nofollow" target="_blank">Git</a> is much better, but even then there are steps that have to be performed that take away focus from the real goal you&#8217;re trying to achieve: solving the customer&#8217;s problem using software.</p>
<p>For instance, you still have to create a new <a href="http://git-scm.com/book/en/Git-Branching-Branching-Workflows" title="Git Branching - Branching Workflows" rel="nofollow" target="_blank">topic branch</a> to work on. And you have to merge it with the main development line. In a perfect world, we wouldn&#8217;t have to do that.</p>
<h3>Frictionless Version Control</h3>
<p><img src="http://sinnema313.files.wordpress.com/2013/02/version-control.png?w=160&#038;h=160" alt="version-control" width="160" height="160" class="alignleft size-thumbnail wp-image-4781" />So how would a Frictionless Development Environment do version control for us?</p>
<p>Knowing when to create a branch is easy.</p>
<p>All work happens on a topic branch, so every time you start to work on something, the FDE could create a new branch.</p>
<p>The problem is knowing when to merge. But even this is not as hard as it seems.</p>
<p>You&#8217;re done with your current work item (<a href="http://securesoftwaredev.com/software-development/agile-requirements-gathering/" title="Agile Requirements Gathering" target="_blank">user story</a> or whatever you want to call it) when it&#8217;s coded, all the tests pass, and the code is <a href="http://www.amazon.com/gp/product/B001GSTOAM/ref=as_li_ss_tl?ie=UTF8&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001GSTOAM&amp;linkCode=as2&amp;tag=secursoftwdev-20" title="Clean Code: A Handbook of Agile Software Craftsmanship" rel="nofollow" target="_blank">clean</a>.</p>
<p>So how would the FDE know when you&#8217;re done thinking of new tests for the story?</p>
<p>Well, if you practice <a href="http://securesoftwaredev.com/2012/07/02/behavior-driven-development-bdd-with-jbehave-gradle-and-jenkins/" title="Behavior-Driven Development (BDD) with JBehave, Gradle, and Jenkins" target="_blank">Behavior-Driven Development</a> (BDD), you start out with defining the behavior of the story in automated tests. So the story is functionally complete when there is a BDD test for it, and all scenarios in that test pass.</p>
<p>Now we&#8217;re left with figuring out when the code is clean. Most teams have a process for deciding this too. For instance, code is clean when static code analysis tools like <a href="http://pmd.sourceforge.net/" rel="nofollow" target="_blank">PMD</a>, <a href="http://checkstyle.sourceforge.net/" rel="nofollow" target="_blank">CheckStyle</a>, and <a href="http://findbugs.sourceforge.net/" rel="nofollow" target="_blank">FindBugs</a> give no warnings.</p>
<p>Some people will argue that we need a minimum amount of <a href="http://securesoftwaredev.com/2012/10/15/on-measuring-code-coverage/" title="On Measuring Code Coverage" target="_blank">code coverage</a> from our tests as well. Or that the code needs to be reviewed by a co-worker. Or that <a href="http://www.hpenterprisesecurity.com/products" target="_blank">Fortify</a> must not find <a href="http://securesoftwaredev.com/security/" target="_blank">security</a> vulnerabilities. That&#8217;s fine.</p>
<p><img src="http://sinnema313.files.wordpress.com/2013/02/pipeline.jpg?w=160&#038;h=160" alt="pipeline" width="160" height="160" class="alignright size-thumbnail wp-image-4787" />The basic point is that we can formally define a pipeline of processes that we want to run automatically.</p>
<p>At each stage of the pipeline can we reject the work. Only when all stages complete successfully, are we done.</p>
<p>And then the FDE can simply merge the branch with the main line, and delete it. Zero friction from version control.</p>
<h3>What do you think?</h3>
<p>Would you like to lubricate your version control experience? Do you think an automated branching strategy as outlined above would work?</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/andon/'>andon</a>, <a href='http://securesoftwaredev.com/tag/bdd/'>BDD</a>, <a href='http://securesoftwaredev.com/tag/branch/'>branch</a>, <a href='http://securesoftwaredev.com/tag/checkstyle/'>CheckStyle</a>, <a href='http://securesoftwaredev.com/tag/clean-code/'>clean code</a>, <a href='http://securesoftwaredev.com/tag/continuous-integration/'>continuous integration</a>, <a href='http://securesoftwaredev.com/tag/fde/'>FDE</a>, <a href='http://securesoftwaredev.com/tag/findbugs/'>FindBugs</a>, <a href='http://securesoftwaredev.com/tag/foritify/'>Foritify</a>, <a href='http://securesoftwaredev.com/tag/friction/'>friction</a>, <a href='http://securesoftwaredev.com/tag/git/'>Git</a>, <a href='http://securesoftwaredev.com/tag/merge/'>merge</a>, <a href='http://securesoftwaredev.com/tag/perforce/'>Perforce</a>, <a href='http://securesoftwaredev.com/tag/pmd/'>PMD</a>, <a href='http://securesoftwaredev.com/tag/process-pipeline/'>process pipeline</a>, <a href='http://securesoftwaredev.com/tag/scm/'>SCM</a>, <a href='http://securesoftwaredev.com/tag/security/'>security</a>, <a href='http://securesoftwaredev.com/tag/static-code-analysis/'>static code analysis</a>, <a href='http://securesoftwaredev.com/tag/topic-branch/'>topic branch</a>, <a href='http://securesoftwaredev.com/tag/user-story/'>user story</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4769/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4769/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4769/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4769&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=-_s-2bSg0WI:fR51-UiiqBo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=-_s-2bSg0WI:fR51-UiiqBo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=-_s-2bSg0WI:fR51-UiiqBo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=-_s-2bSg0WI:fR51-UiiqBo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/-_s-2bSg0WI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/02/18/how-to-remove-friction-from-your-version-control-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2012/12/error.png?w=240" medium="image">
			<media:title type="html">Error</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/version-control.png?w=160" medium="image">
			<media:title type="html">version-control</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/pipeline.jpg?w=160" medium="image">
			<media:title type="html">pipeline</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/02/18/how-to-remove-friction-from-your-version-control-experience/</feedburner:origLink></item>
		<item>
		<title>How To Secure an Organization That Is Under Constant Attack</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/VJMSzGD2EDk/</link>
		<comments>http://securesoftwaredev.com/2013/02/11/how-to-secure-an-organization-that-is-under-constant-attack/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 12:00:21 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Information Security]]></category>
		<category><![CDATA[attack surface]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[compromised]]></category>
		<category><![CDATA[escalation of privilege]]></category>
		<category><![CDATA[intruder]]></category>
		<category><![CDATA[intrusion detection]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[RAdAC]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[security analytics]]></category>
		<category><![CDATA[XACML]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4691</guid>
		<description><![CDATA[There have been many recent security incidents at well-respected organizations like the Federal Reserve, the US Energy Department, the New York Times, and the Wall Street Journal. &#160; If these large organizations are incapable of keeping unwanted people off their systems, then who is? The answer unfortunately is: not many. So we must assume our [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4691&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://starwars.com/explore/the-movies/episode-ii/" rel="nofollow" target="_blank"><img src="http://sinnema313.files.wordpress.com/2013/02/constant-attack.jpg?w=240&#038;h=135" alt="Battle of Geonosis" width="240" height="135" class="alignright size-medium wp-image-4749" title="Battle of Geonosis" /></a>There have been many recent security incidents at well-respected organizations like the <a href="http://rt.com/usa/news/federal-reserve-anonymous-oplastresort-585/?goback=.gde_36874_member_211835477" title="Federal Reserve data hacked by Anonymous" rel="nofollow" target="_blank">Federal Reserve</a>, the <a href="http://freebeacon.com/cyber-breach/" title="Energy Department networks hit by sophisticated cyber attack" rel="nofollow" target="_blank">US Energy Department</a>, the <a href="http://www.nytimes.com/2013/01/31/technology/chinese-hackers-infiltrate-new-york-times-computers.html?hpw&amp;_r=1&amp;" title="Hackers in China Attacked The Times for Last 4 Months" rel="nofollow" target="_blank">New York Times</a>, and the <a href="http://www.darkreading.com/security/attacks-breaches/240147635/following-new-york-times-breach-wall-street-journal-says-china-hacked-it-too.html/" title="Following New York Times Breach, Wall Street Journal Says China Hacked It, Too" rel="nofollow" target="_blank">Wall Street Journal</a>.</p>
<p>&nbsp;</p>
<p><em>If these large organizations are incapable of keeping unwanted people off their systems, then who is?</em></p>
<p>The answer unfortunately is: not many. So we must assume our systems are compromised. <strong>Compromised is the new normal</strong>.</p>
<p>This has implications for our security efforts:</p>
<ol>
<li>We need to increase our detection capabilities</li>
<li>We need to be able to respond quickly, preferably in an automated fashion, when we detect an intrusion</li>
</ol>
<h3>Increasing Intrusion Detection Capabilities with Security Analytics</h3>
<p>There are usually many small signs that something fishy is going on when an intruder has compromised your network.</p>
<p>For instance, our log files might show that someone is logging in from an IP address in China instead of San Francisco. While that may be normal for our CEO, it&#8217;s very unlikely for her secretary. </p>
<p>Another example is when someone tries to access a system it normally doesn&#8217;t. This may be an indication of an intruder trying to escalate his privileges.</p>
<p><a href="http://sinnema313.files.wordpress.com/2013/02/security-analytics-2.jpg"><img src="http://sinnema313.files.wordpress.com/2013/02/security-analytics-2.jpg?w=160&#038;h=99" alt="Security Analytics" width="160" height="99" class="alignleft size-thumbnail wp-image-4761" /></a>Most of us are currently unable to collect such small indicators into firm suspicions, but that is about to change with the introduction of Big Data Analytics technology.</p>
<p>RSA recently released a <a href="http://www.emc.com/collateral/industry-overview/big-data-fuels-intelligence-driven-security-io.pdf" title="Big Data Fuels Intelligence-Driven Security" rel="nofollow" target="_blank">report</a> that predicts that big data will play a big role in Security Incident Event Monitoring (SIEM), network monitoring, Identity and Access Management (IAM), fraud detection, and Governance, Risk, and Compliance (GRC) systems.</p>
<p>RSA is investing heavily in <a href="http://reflectionsblog.emc.com/2013/02/security-analytics-the-new-model.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+typepad%2FEwdU+%28Reflections%29" title="Security Analytics: The New Model" rel="nofollow" target="_blank">Security Analytics</a> to <a href="http://blogs.rsa.com/prevent-and-predict-attacks/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=prevent-and-predict-attacks" rel="nofollow" target="_blank">prevent and predict attacks</a>, and <a href="http://www.esecurityplanet.com/network-security/ibm-taps-big-data-for-security.html?goback=.gde_38412_member_209966154" title="IBM Taps Big Data for Security" rel="nofollow" target="_blank">so is IBM</a>.</p>
<h3>Quick, Automated, Responses to Intrusion Detection with Risk-Adaptive Access Control</h3>
<p>The information we extract from our big security data can be used to <a href="http://www.darkreading.com/risk-management/167901115/security/security-management/240148048/threat-intelligence-brings-dynamic-decisions-to-risk-management.html" title="Threat Intelligence Brings Dynamic Decisions To Risk Management" rel="nofollow" target="_blank">drive decisions</a>. The next step is to automate those decisions and actions based on them.</p>
<p>Large organizations, with hundreds or even thousands of applications, have a large attack surface. They are also interesting targets and therefore must assume they are under attack multiple times a day. </p>
<p><em>Anything that is not automated is not going to scale</em>.</p>
<p><a href="http://securesoftwaredev.com/2012/06/04/risk-adaptive-access-control-with-xacml/" title="Risk-Adaptive Access Control (RAdAC)" rel="nofollow" target="_blank"><img src="http://sinnema313.files.wordpress.com/2012/05/radac-red1.jpg?w=160&#038;h=118" alt="Risk-Adaptive Access Control (RAdAC)" width="160" height="118" class="alignright size-thumbnail wp-image-1918" /></a>One decision than can be automated is whether we grant someone access to a particular system or piece of data.</p>
<p>This dynamic access control based on risk information is what NIST calls <a href="http://csrc.nist.gov/news_events/privilege-management-workshop/PvM-Model-Survey-Aug26-2009.pdf" title="A Survey of Access Control Models" target="_blank">Risk-Adaptive Access Control</a> (RAdAC).</p>
<p>As I&#8217;ve shown before, <a href="http://securesoftwaredev.com/2012/06/04/risk-adaptive-access-control-with-xacml/" title="Risk-Adaptive Access Control with XACML" target="_blank">RAdAC can be implemented using eXtensible Access Control Markup Language</a> (XACML).</p>
<h3>What do you think?</h3>
<p>Is your organization ready to look at security analytics? What do you see as the major road blocks for implementing RAdAC?</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/information-security/'>Information Security</a> Tagged: <a href='http://securesoftwaredev.com/tag/attack-surface/'>attack surface</a>, <a href='http://securesoftwaredev.com/tag/automation/'>automation</a>, <a href='http://securesoftwaredev.com/tag/big-data/'>Big Data</a>, <a href='http://securesoftwaredev.com/tag/compromised/'>compromised</a>, <a href='http://securesoftwaredev.com/tag/escalation-of-privilege/'>escalation of privilege</a>, <a href='http://securesoftwaredev.com/tag/intruder/'>intruder</a>, <a href='http://securesoftwaredev.com/tag/intrusion-detection/'>intrusion detection</a>, <a href='http://securesoftwaredev.com/tag/log/'>log</a>, <a href='http://securesoftwaredev.com/tag/radac/'>RAdAC</a>, <a href='http://securesoftwaredev.com/tag/rsa/'>RSA</a>, <a href='http://securesoftwaredev.com/tag/security/'>security</a>, <a href='http://securesoftwaredev.com/tag/security-analytics/'>security analytics</a>, <a href='http://securesoftwaredev.com/tag/xacml/'>XACML</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4691/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4691/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4691/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4691/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4691/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4691/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4691/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4691/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4691&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=VJMSzGD2EDk:cH1AM__GM70:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=VJMSzGD2EDk:cH1AM__GM70:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=VJMSzGD2EDk:cH1AM__GM70:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=VJMSzGD2EDk:cH1AM__GM70:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/VJMSzGD2EDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/02/11/how-to-secure-an-organization-that-is-under-constant-attack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/constant-attack.jpg?w=240" medium="image">
			<media:title type="html">Battle of Geonosis</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/security-analytics-2.jpg?w=160" medium="image">
			<media:title type="html">Security Analytics</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2012/05/radac-red1.jpg?w=160" medium="image">
			<media:title type="html">Risk-Adaptive Access Control (RAdAC)</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/02/11/how-to-secure-an-organization-that-is-under-constant-attack/</feedburner:origLink></item>
		<item>
		<title>Five Essential Components of a Frictionless Development Environment</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/unUrEWBIxss/</link>
		<comments>http://securesoftwaredev.com/2013/02/04/five-essential-components-of-a-frictionless-development-environment/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 12:00:41 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[FDE]]></category>
		<category><![CDATA[friction]]></category>
		<category><![CDATA[lubricant]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[Quick Fix]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[usage patterns]]></category>
		<category><![CDATA[Workspace Mechanic]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4635</guid>
		<description><![CDATA[One of the challenges of maintaining a consistent programming style in a team is for everyone to have the same workspace settings, especially in the area of compiler warnings. Every time a new member joins the team, an existing member sets up a new environment, or a new version of the compiler comes along, you [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4635&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="https://code.google.com/a/eclipselabs.org/p/workspacemechanic/"><img src="http://workspacemechanic.eclipselabs.org.codespot.com/git.wiki/popup.jpg" width="240" height="112" class="alignright" /></a>One of the challenges of maintaining a consistent programming style in a team is for everyone to have the same workspace settings, especially in the area of compiler warnings.</p>
<p>Every time a new member joins the team, an existing member sets up a new environment, or a new version of the compiler comes along, you have to synchronize settings.</p>
<p>My team recently started using <a href="https://code.google.com/a/eclipselabs.org/p/workspacemechanic/" rel="nofollow" target="_blank">Workspace Mechanic</a>, an Eclipse plug-in that allows you to save those settings in an XML file that you put under source control.</p>
<p>The plug-in periodically compares the workspace settings with the contents of that file. It notifies you in case of differences, and allows you to update your environment with a couple of clicks.</p>
<h3>Towards a Frictionless Development Environment</h3>
<p>Workspace Mechanic is a good example of a <strong>lubricant</strong>, a tool that lubricates the development process to reduce <a href="http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/" target="_blank">friction</a>.</p>
<p><img src="http://sinnema313.files.wordpress.com/2013/01/lubrication.jpg?w=146&#038;h=160" alt="Lubrication" width="146" height="160" class="alignleft size-thumbnail wp-image-4578" />My ideal is to take this to the extreme with a <a href="http://blog.paulhatcher.com/archive/2009/07/18/frictionless-development.aspx" rel="nofollow" target="_blank">Frictionless Development Environment</a> (FDE) in which all software development activities go very smoothly.</p>
<p>Let’s see what we would likely need to make such an FDE a reality.</p>
<p>In this post, I will look at a very small example that uncovers some of the basic components of an FDE.</p>
<h3>Example: Creating the Class Under Test</h3>
<p>In <a href="http://sinnema313.wordpress.com/agile-links/test-driven-development/" target="_blank">Test-Driven Development</a>, we start out with a test and there is no class under test yet. Eclipse has a <a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.user/concepts/concept-quickfix-assist.htm" rel="nofollow" target="_blank">Quick Fix</a> to create the class, but we still have to manually invoke it and select a <a href="http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-OrganizingSources.htm&amp;cp=1_1_1_1" title=" Organizing sources" rel="nofollow" target="_blank">source folder</a> to store it in (assuming you have <a href="http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html" title="Introduction to the Standard Directory Layout" rel="nofollow" target="_blank">different source folders for main and test code</a>).</p>
<p>It would be nicer if the IDE would understand what you’re trying to do and automatically create the skeleton for the class under test for you and save it in the right place.</p>
<p><img src="http://sinnema313.files.wordpress.com/2013/02/big-data.jpg?w=160&#038;h=160" alt="Big Data" width="160" height="160" class="alignright size-thumbnail wp-image-4682" />The crux is for the tool to understand what you are doing, or else it could easily draw the wrong conclusion and create all kinds of artifacts that you don’t want.</p>
<p>This kind of knowledge is highly user and potentially even project specific. It is therefore imperative that the tool collects usage data and uses that to optimize its assistance. We’re likely talking about <a href="http://en.wikipedia.org/wiki/Big_data" rel="nofollow" target="_blank">big data</a> here.</p>
<p>Given the fact that it’s expensive in terms of storage and computing power to collect and analyze these statistics, it makes sense to do this in a <a href="http://securesoftwaredev.com/cloud-computing/" title="Cloud Computing" target="_blank">cloud</a> environment.</p>
<p>That will also allow for quicker learning of usage patterns when working on different machines, like in the office and at home. More importantly, it allows building on usage patterns of other people.</p>
<p>What this example also shows, is that we&#8217;ll need many small, very focused lubricants. This makes it unlikely for one organization to provide all lubricants for an FDE that suits everybody, even for a specific language.</p>
<p><a href="http://opensource.org/"><img src="http://sinnema313.files.wordpress.com/2013/02/open-source-software.jpg?w=160&#038;h=91" alt="Open Source Software" width="160" height="91" class="alignleft size-thumbnail wp-image-4685" /></a>The only practical way of assembling an FDE is through a <a href="http://en.wikipedia.org/wiki/Plug-in_%28computing%29" target="_blank">plug-in architecture</a> for lubricants.</p>
<p>Building an FDE will be a huge effort. To realize it on the short term, we&#8217;ll probably need an <a href="http://opensource.org/" rel="nofollow" target="_blank">open source</a> model. No one company could put in the resource required to pull this off in even a couple of years.</p>
<h3>The Essential Components of a Frictionless Development Environment</h3>
<p>This small example uncovered the following building blocks for a Frictionless Development Environment:</p>
<ol>
<li><strong>Cloud Computing</strong> will provide economies of scale and access from anywhere</li>
<li><strong>Big Data Analytics</strong> will discern usage patterns</li>
<li><strong>Recommendation Engines</strong> will convert usage patterns into context-aware lubricants</li>
<li>A <strong>Plug-in architecture</strong> will allow different parties to contribute lubricants and usage analysis tools</li>
<li>An <strong>Open Source model</strong> will allow many organizations and individuals to collaborate</li>
</ol>
<h3>What do you think?</h3>
<p>Do you agree with the proposed components of an FDE? Did I miss something?</p>
<p>Please share your thoughts in the comments.</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/big-data/'>Big Data</a>, <a href='http://securesoftwaredev.com/tag/cloud/'>cloud</a>, <a href='http://securesoftwaredev.com/tag/eclipse/'>Eclipse</a>, <a href='http://securesoftwaredev.com/tag/fde/'>FDE</a>, <a href='http://securesoftwaredev.com/tag/friction/'>friction</a>, <a href='http://securesoftwaredev.com/tag/lubricant/'>lubricant</a>, <a href='http://securesoftwaredev.com/tag/open-source/'>open source</a>, <a href='http://securesoftwaredev.com/tag/plug-in/'>plug-in</a>, <a href='http://securesoftwaredev.com/tag/quick-fix/'>Quick Fix</a>, <a href='http://securesoftwaredev.com/tag/tdd/'>TDD</a>, <a href='http://securesoftwaredev.com/tag/usage-patterns/'>usage patterns</a>, <a href='http://securesoftwaredev.com/tag/workspace-mechanic/'>Workspace Mechanic</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4635/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4635/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4635/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4635/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4635/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4635/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4635/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4635/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4635&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=unUrEWBIxss:dOcofEZKmgY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=unUrEWBIxss:dOcofEZKmgY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=unUrEWBIxss:dOcofEZKmgY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=unUrEWBIxss:dOcofEZKmgY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/unUrEWBIxss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/02/04/five-essential-components-of-a-frictionless-development-environment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://workspacemechanic.eclipselabs.org.codespot.com/git.wiki/popup.jpg" medium="image" />

		<media:content url="http://sinnema313.files.wordpress.com/2013/01/lubrication.jpg?w=146" medium="image">
			<media:title type="html">Lubrication</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/big-data.jpg?w=160" medium="image">
			<media:title type="html">Big Data</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/02/open-source-software.jpg?w=160" medium="image">
			<media:title type="html">Open Source Software</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/02/04/five-essential-components-of-a-frictionless-development-environment/</feedburner:origLink></item>
		<item>
		<title>How Friction Slows Us Down</title>
		<link>http://feedproxy.google.com/~r/SecureSoftwareDevelopment/~3/XR6vq4-AGP8/</link>
		<comments>http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 12:00:52 +0000</pubDate>
		<dc:creator>Ray Sinnema</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cognitive load]]></category>
		<category><![CDATA[continuous deployment]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[FDE]]></category>
		<category><![CDATA[friction]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Perforce]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[unit tests]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://securesoftwaredev.com/?p=4545</guid>
		<description><![CDATA[I once joined a project where running the &#8220;unit&#8221; tests took three and a half hours. As you may have guessed, the developers didn&#8217;t run the tests before they checked in code, resulting in a frequently red build. Running the tests just gave too much friction for the developers. I define friction as anything that [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4545&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://sinnema313.files.wordpress.com/2013/01/friction.jpg?w=240&#038;h=180" alt="Friction" width="240" height="180" class="alignright size-medium wp-image-4575" />I once joined a project where running the &#8220;unit&#8221; tests took three and a half hours.</p>
<p>As you may have guessed, the developers didn&#8217;t run the tests before they checked in code, resulting in a frequently red build.</p>
<p>Running the tests just gave too much friction for the developers.</p>
<p>I define <strong>friction</strong> as <em>anything that resist the developer while she is producing software</em>.</p>
<p>Since then, I&#8217;ve spotted friction in numerous places while developing software.</p>
<h3>Friction in Software Development</h3>
<p>Since friction impacts productivity negatively, it&#8217;s important that we understand it. Here are some of my observations:</p>
<ul>
<li><strong>Friction can come from different sources.</strong><br />
It can result from your tool set, like when you have to wait for <a href="http://www.perforce.com/" title="Version Everything" rel="nofollow" target="_blank">Perforce</a> to check out a file over the network before you can edit it.<br />
Friction can also result from your development process, for example when you have to wait for the QA department to test your code before it can be released.</li>
<li><strong>Friction can operate on different time scales</strong>.<br />
Some friction slows you down a lot, while others are much more benign. For instance, waiting for the next set of requirements might keep you from writing valuable software for weeks.<br />
On the other hand, waiting for someone to review your code changes may take only a couple of minutes.</li>
<li><strong>Friction can be more than simple delays.</strong><br />
It also rears its ugly head when things are more difficult then they ought to be.<br />
In the vi editor, for example, you must switch between <a href="http://www.lagmonster.org/docs/vi.html#mode" rel="nofollow" target="_blank">command and insert modes</a>. Seasoned vi users are just as fast as with editors that don&#8217;t have that separation. Yet they do have to keep track of which mode they are in, which gives them a higher cognitive load.</li>
</ul>
<h3>Lubricating Software Development</h3>
<p><img src="http://sinnema313.files.wordpress.com/2013/01/lubrication.jpg?w=146&#038;h=160" alt="Lubrication" width="146" height="160" class="alignleft size-thumbnail wp-image-4578" />There has been a trend to decrease friction in software development.</p>
<p>Tools like Integrated Development Environments have eliminated many sources of friction.</p>
<p>For instance, <a href="http://www.eclipse.org/" rel="nofollow" target="_blank">Eclipse</a> will automatically compile your code when you save it.</p>
<p>Automated <a href="http://refactoring.com/" rel="nofollow" target="_blank">refactorings</a> decrease both the time and the cognitive load required to make certain code changes.</p>
<p>On the process side, things like <a href="http://agilemanifesto.org/" title="Manifesto for Agile Software Development" rel="nofollow" target="_blank">Agile</a> development methodologies and the <a href="http://www.agileweboperations.com/what-devops-means-for-enterprises?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+agileweboperations+%28Agile+Web+Operations%29" rel="nofollow" target="_blank">DevOps</a> movement have eliminated or reduced friction. For instance, <a href="http://timothyfitz.com/2009/02/08/continuous-deployment/" rel="nofollow" target="_blank">continuous deployment</a> automates the release of software into production.</p>
<p>These <strong>lubricants</strong> have given us a fighting chance in a world of increasing complexity.</p>
<h3>Frictionless Software Development</h3>
<p>It&#8217;s fun to think about how far we could take these improvements, and what the ultimate <strong>Frictionless Development Environment</strong> (FDE) might look like.</p>
<p>My guess is that it would call for the combination of some of the same trends we already see in consumer and enterprise software products. <a href="http://securesoftwaredev.com/cloud-computing/" target="_blank">Cloud computing</a> will play a big role, as will simplification of the user interaction, and access from anywhere.</p>
<h3>What do you think?</h3>
<p>What frictions have you encountered? Do you think frictions are the same as <a href="http://www.dummies.com/how-to/content/defining-waste-in-the-lean-system.html" title="Defining waste in the lean system" rel="nofollow" target="_blank">waste in Lean</a>?</p>
<p>What have you done to lubricate the frictions away? What would your perfect FDE look like?</p>
<p>Please let me know your thoughts in the comments.</p>
<br />Filed under: <a href='http://securesoftwaredev.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://securesoftwaredev.com/category/software-development/'>Software Development</a> Tagged: <a href='http://securesoftwaredev.com/tag/agile/'>Agile</a>, <a href='http://securesoftwaredev.com/tag/cloud/'>cloud</a>, <a href='http://securesoftwaredev.com/tag/cognitive-load/'>cognitive load</a>, <a href='http://securesoftwaredev.com/tag/continuous-deployment/'>continuous deployment</a>, <a href='http://securesoftwaredev.com/tag/devops/'>DevOps</a>, <a href='http://securesoftwaredev.com/tag/eclipse/'>Eclipse</a>, <a href='http://securesoftwaredev.com/tag/fde/'>FDE</a>, <a href='http://securesoftwaredev.com/tag/friction/'>friction</a>, <a href='http://securesoftwaredev.com/tag/ide/'>IDE</a>, <a href='http://securesoftwaredev.com/tag/perforce/'>Perforce</a>, <a href='http://securesoftwaredev.com/tag/qa/'>QA</a>, <a href='http://securesoftwaredev.com/tag/refactoring/'>refactoring</a>, <a href='http://securesoftwaredev.com/tag/unit-tests/'>unit tests</a>, <a href='http://securesoftwaredev.com/tag/vi/'>vi</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sinnema313.wordpress.com/4545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sinnema313.wordpress.com/4545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sinnema313.wordpress.com/4545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sinnema313.wordpress.com/4545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sinnema313.wordpress.com/4545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sinnema313.wordpress.com/4545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sinnema313.wordpress.com/4545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sinnema313.wordpress.com/4545/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=securesoftwaredev.com&#038;blog=3802920&#038;post=4545&#038;subd=sinnema313&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=XR6vq4-AGP8:OVIzpbrlsFk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=XR6vq4-AGP8:OVIzpbrlsFk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?a=XR6vq4-AGP8:OVIzpbrlsFk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SecureSoftwareDevelopment?i=XR6vq4-AGP8:OVIzpbrlsFk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SecureSoftwareDevelopment/~4/XR6vq4-AGP8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7654bfdb2b650b7d68b569c06a6b390d?s=96&amp;d=&amp;r=G" medium="image">
			<media:title type="html">sinnema313</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/01/friction.jpg?w=240" medium="image">
			<media:title type="html">Friction</media:title>
		</media:content>

		<media:content url="http://sinnema313.files.wordpress.com/2013/01/lubrication.jpg?w=146" medium="image">
			<media:title type="html">Lubrication</media:title>
		</media:content>
	<feedburner:origLink>http://securesoftwaredev.com/2013/01/28/how-friction-slows-us-down/</feedburner:origLink></item>
	</channel>
</rss>
