<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>select * &#187; software</title>
	<atom:link href="http://aptoma.com/select.star/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://aptoma.com/select.star</link>
	<description>web-development, and other issues we really, really care about</description>
	<lastBuildDate>Thu, 22 Apr 2010 19:53:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Enterprise JavaScript Coding</title>
		<link>http://aptoma.com/select.star/2010/02/01/enterprise-javascript-coding/</link>
		<comments>http://aptoma.com/select.star/2010/02/01/enterprise-javascript-coding/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 14:55:17 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[Monday School]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1097</guid>
		<description><![CDATA[Not many years ago, people would giggle and think of enterprise and JavaScript as an oxymoron. Not so much anymore. If you want to be a serious actor even in (or maybe especially in) the enterprise software market, you have to take JavaScript seriously. Large parts of your product&#8217;s business logic might find its way [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://aptoma.com/select.star/wp-content/uploads/2010/02/18okt04_ajax_logo_150_rgb.jpg"><img class="alignright size-medium wp-image-1109" style="border: 0px;" title="18okt04_ajax_logo_150_rgb" src="http://aptoma.com/select.star/wp-content/uploads/2010/02/18okt04_ajax_logo_150_rgb-284x300.jpg" alt="" width="284" height="300" /></a>Not many years ago, people would giggle and think of enterprise and JavaScript as an oxymoron. Not so much anymore. If you want to be a serious actor even in (or maybe especially in) the enterprise software market, you have to take JavaScript seriously. Large parts of your product&#8217;s business logic might find its way into your JavaScript scope, not to mention your GUI elements, and you must be prepared when it does.</p>
<p>We have decided to address JavaScript with more care. We&#8217;d like to give it the time and focus it deserves. Not to be mistaken, we are probably in the top 5% of businesses going deep into JavaScript on our enterprise software, but we still feel we can go further &#8212; especially in the fields of quality assurance and scaling.</p>
<p>Lo and behold, we give you;</p>
<h3><strong>Monday School Notes from JavaScript session #1</strong></h3>
<h4>Table of Content</h4>
<p>We have decided to divide the subject of JavaScript into the following sections:</p>
<ul>
<li><a href="http://aptoma.com/select.star/2010/02/08/javascript-tools-coding-standard-and-guidelines/">Development Tools</a></li>
<li><a href="http://aptoma.com/select.star/2010/02/08/javascript-tools-coding-standard-and-guidelines/">Coding standard</a></li>
<li><a href="http://aptoma.com/select.star/2010/02/08/javascript-tools-coding-standard-and-guidelines/">Guidelines</a></li>
<li><a href="http://aptoma.com/select.star/2010/02/22/a-first-look-at-javascript-frameworks/">Frameworks, or the lack thereof</a> (when to use what)</li>
<li>Testing</li>
<li>Debugging</li>
<li>Patterns</li>
<li>Document Object Model (DOM)</li>
<li>Productivity tips</li>
<li>Compatibility issues</li>
<li>Recommended reading/watching</li>
</ul>
<p>We&#8217;ll be covering these topics in the weeks to come, and we well be returning with links on the TOC. If you will join us in this, please follow <a href="http://feeds.feedburner.com/aptoma/selectstar">this blog on RSS</a> or follow <a href="http://twitter.com/aptoma">the company</a> or <a href="http://twitter.com/geirber">the author</a> on twitter. If you digg  it, then <a href="http://digg.com/programming/Notes_on_Continuous_Deployment">digg  it</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/02/01/enterprise-javascript-coding/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Great Software : A Definition</title>
		<link>http://aptoma.com/select.star/2010/01/16/great-software-a-definition/</link>
		<comments>http://aptoma.com/select.star/2010/01/16/great-software-a-definition/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 15:00:19 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[process]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1043</guid>
		<description><![CDATA[Defining what great software is, is not a complex endeavor. I prefer to boil it down into two distinct characteristics.
a) Ease of Use
The software solution walks you gently through the process of solving your problems as intended. No distractions, no unnecessary decisions to make, no confusions, always heading towards the goal. In short : A [...]]]></description>
			<content:encoded><![CDATA[<p>Defining what great software is, is not a complex endeavor. I prefer to boil it down into two distinct characteristics.</p>
<h3>a) Ease of Use</h3>
<p>The software solution walks you gently through the process of solving your problems as intended. No distractions, no unnecessary decisions to make, no confusions, always heading towards the goal. In short : A great user experience.</p>
<h3>b) Quality of Craft</h3>
<p>Quality of Craft means that the software solution is easy to maintain, it&#8217;s easy to modify so that it&#8217;s always accurate in solving the ever changing problems it&#8217;s going after (and by that I don&#8217;t just mean in configuration, but easy to change the code of), it&#8217;s easy to move about (i.e. from server to server), it performs great, it responds immediately when interacted with and it scales, or can be modified to scale, in order to handle the traffic it will attract.</p>
<p><img class="alignnone size-full wp-image-1056" title="aalesund" src="http://aptoma.com/select.star/wp-content/uploads/2010/01/aalesund.jpg" alt="" width="560" height="143" /></p>
<p style="text-align: right;">Photo by <a href="http://www.flickr.com/photos/toffiloff/4257711728/">toffiloff</a></p>
<p>Isn&#8217;t that an intuitive definition?<br />
The definition is common sense in software product development.<br />
Perhaps a &#8220;<em>Software Product 101</em>&#8221; should start out with such a definition.</p>
<p>Thus, we should assume that everyone get&#8217;s this nailed down from the start, or through a little experience, no?</p>
<p>I&#8217;m sorry to report that surprisingly few players in the industry is able to see this.<br />
And even fewer is able to execute it.<br />
<em></em></p>
<p><strong><em>It&#8217;s always either or, never both. The tendency is quite prominent.</em></strong></p>
<p>It seems as start-ups create great solution accuracy and a good user experience using customer oriented development<em> </em>methods<em>,</em> and in general a lean start-up methodology. Growth, however, turns them in the direction of stability and the need for predictability. Sadly this usually leads to a loss of the qualities in a) in favor of a few of the more stabilizing qualities in b).</p>
<p>As much as I agree that as a start-up turns into an enterprise, the need for operations stability and predictable performance increase. I do not, however, believe that this is achieved best by sacrificing the ability to adapt and to keep the software usable and accurate.</p>
<p>I believe that while sacrificing qualities in a) might seem to be the <em>easiest path</em>, it is not the <em>only path, </em>not to mention that it in no way is the <em>right path.</em></p>
<p>I am part of a small, growing, start-up company, and we&#8217;re focusing our resources at keeping on the right path, maintaining the agility of a start-up, and the stability and predictability of an enterprise. It is possible &#8212; this path exists.</p>
<p>It&#8217;s hard to find. But we&#8217;ll find it, or die trying.</p>
<p><strong>Related posts</strong></p>
<ul>
<li>A <a href="../2008/09/16/dont-expect-our-buildings-to-work-they-are-pieces-of-art/">post about buildings</a> (and software quality).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/01/16/great-software-a-definition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Major Problems With the Software Industry</title>
		<link>http://aptoma.com/select.star/2010/01/03/3-major-problems-with-the-software-industry/</link>
		<comments>http://aptoma.com/select.star/2010/01/03/3-major-problems-with-the-software-industry/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 00:11:30 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1002</guid>
		<description><![CDATA[There are three prominent problems in the software industry that bothers me in particular at the moment. Being a part of that industry, I feel somewhat responsible to help shed some light on these problems. I list each problem below, with a proposed solution outlined.

Problem 1. Foot-in-the-door Software
The recipe for creating foot-in-the-door software is really [...]]]></description>
			<content:encoded><![CDATA[<p>There are three prominent problems in the software industry that bothers me in particular at the moment. Being a part of that industry, I feel somewhat responsible to help shed some light on these problems. I list each problem below, with a proposed solution outlined.</p>
<p><img class="alignnone size-full wp-image-1021" title="broken" src="http://aptoma.com/select.star/wp-content/uploads/2010/01/broken.jpg" alt="broken" width="560" height="198" /></p>
<h3>Problem 1. Foot-in-the-door Software</h3>
<p>The recipe for creating foot-in-the-door software is really quite simple:</p>
<ol>
<li>Design a software that can do anything with &#8220;a little customization&#8221;.</li>
<li>Make it hard to customize. Make every protocol and specification proprietary and hard to understand.</li>
<li>Don&#8217;t go anywhere near any standards.</li>
<li>Provide a horde of overpriced consultants to fix all of the above problems, and have them apply the &#8220;Ninja Technique (Problem 3)&#8221; so that they can stay on-site indefinitely.</li>
</ol>
<p>Voilá! Now just wait for money to pour in from miserable customers.</p>
<p><strong>Solution: </strong>Empower your customers through creating standards compliant API&#8217;s and plugin environments with open and commonly used technologies for which problem solvers can be found everywhere and anywhere. Even better, stop creating problems for your customers in the first place. Stop sticking your foot in the door, and focus on creating something that makes <em>your</em> customers the stronger one. They will rely on you all the more for it &#8212; and it will be a relationship based on trust, not desperation or despair.</p>
<h3>Problem 2. The Green Lights Problem (Unchangeable Bloatware)</h3>
<p>Players in the industry still build software that is close to impossible to change or make additions to. It can take months or years between releases, and they buffer up so much change that no-one ever dare (or can afford) to upgrade. This frightens the purchasing department. Big time. As a reflex to this problem, they have (understandably) rehearsed their spec writing to include everything but the kitchen sink &#8212; effectively forcing anyone that want to be a player in the industry to create <a href="http://en.wikipedia.org/wiki/Software_bloat">bloatware</a> from day one rendering the software hard or close to impossible to use, as well. A 100 page requirement is not that uncommon(!) 20% of the required features typically end up being used (*). The longer the spec the better, it seems. It means less risk of having to ask for a software change from a broken industry &#8212; let alone taking the risk of going through actually receiving it! Purchasing is happy though, they did their best to fight change by getting their little <em>green lights</em> on all checklist points in their gargantuan spec, and then they moved on never seeing the havoc in the wake.</p>
<p>This quote from <em>It&#8217;s Learning</em> shows just how bad it can get <em>&#8220;We need not concern ourselves with the users, as long as we make money&#8221; </em>Meaning that they&#8217;ll throw anything into their software to please purchasing, even though it makes the users miserable. <em>(<a href="http://translate.google.com/translate?hl=en&amp;sl=no&amp;tl=en&amp;u=http%3A%2F%2Fidaaalen.wordpress.com%2F2009%2F05%2F15%2Fitslearning-vi-trenger-ikke-bry-oss-om-brukerne-sa-lenge-vi-tjener-penger%2F">via Ida Aalen</a> and google translate, <a href="http://idaaalen.wordpress.com/2009/05/15/itslearning-vi-trenger-ikke-bry-oss-om-brukerne-sa-lenge-vi-tjener-penger/">original post in norwegian here</a>)<br />
</em></p>
<p><strong>Solution:</strong> Dear Industry, let&#8217;s at least start by creating usable (as in usability), modifiable and maintainable software, effectively showing the customers that we can please both the user <em>and</em> the purchasing department all at once: changes and additions to the spec is possible without a headache, which allow us to keep software functionality concise and to the point. Happy users <em>and </em>happy purhcasing = happy everyone. Even you. Look to lean and agile for your solutions embracing, not fighting change. It&#8217;s possible, you know. It just might lower costs and increase your overall software quality, as well.</p>
<h3>Problem 3. The Ninja Distraction Technique  (using Tech Jargon)</h3>
<p><img class="alignright size-full wp-image-1027" title="Traffic Cones" src="http://aptoma.com/select.star/wp-content/uploads/2010/01/cone.jpg" alt="Traffic Cones" width="150" height="200" />The software industry has spent years (or maybe decades) educating their customers in tech jargon. It&#8217;s all a part of the ninja technique of distraction. It is. Really. The theory goes: Keep throwing words such as &#8220;Java, JBoss, Caching layers, Multi Tier Software Development Housing Fascilities Campus&#8221; at the customers, and you will not only sound very professional, but what&#8217;s even better, the customers will soon forget what they really were asking you for, so there&#8217;s less of a chance chance you have to deliver.</p>
<p>Imagine being the customer in this scenario: Here you were looking for a a) safe car with b) comfy seats, c) low fuel consumption, d) good stereo sound and a e) large trunk for all your groceries, and suddenly you had a car salesman giving you a primer in everything ranging from the new four layer varnish coating technology to the latest in air-pressured suspension theory and revolutions within the field of fuel injection and what not. You don&#8217;t want to hear about that, you want to know if it will hold your coffee cup steady while playing your Mozart in a perfect pitch.</p>
<p>Well, the industry seems to have distracted you from all that.</p>
<p><strong>Solution</strong>: It&#8217;s about time the industry starts talking about the metrics that the customers can relate to and understand. And more notably, the ones that they need. Let&#8217;s talk about <em><strong>ease of use</strong></em>. Let&#8217;s talk about <em><strong>performance</strong></em> (can you handle 100 users registrations a second?). Let&#8217;s talk about <em><strong>modifiability</strong></em> (can you deliver a medium sized product feature change in 1 week, or less?). Let&#8217;s talk about <em><strong>reliability</strong></em>. Is your up-time average more than 99,97%? Will your software automatically restore upon any hardware problems? Can you upgrade our software frequently without involving our tech-department? What is your fix time for bugs?</p>
<p>There is no need to talk about technologies if you can reassure the customer on the real metrics. If you can deliver on these metrics (and deliver you can if you just stop with all the distractions), you would not need to apply your ninja techniques, and our software could be made by an aging brontosaurus for all they would care.</p>
<p><em><strong>Let&#8217;s shift focus onto providing real software solving real problems for real users &#8212; injecting relief instead of frustration and hopelessness into this world. (**)</strong></em></p>
<p>Please contribute with any experiences you have with the industry in relation to any of these problems. Or maybe you have a beef of your own with the industry. Bring it on! We (the players in the industry) desperately need to hear it in order to improve.</p>
<p><strong>Footnotes</strong></p>
<p>(*) This is my personal estimate, based on the pareto principle and experience. However, probably not an unfair estimate given the magnitude of this problem.</p>
<p>(**) Am I trying to convey that we&#8217;re perfect in this respect? No. We&#8217;re improving all the time.</p>
<p>Tune in to the fourth dimension <a href="http://feeds.feedburner.com/aptoma/selectstar">using RSS</a> or follow me on <a href="http://twitter.com/geirber">twitter.com/geirber</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/01/03/3-major-problems-with-the-software-industry/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
