<?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>aktually &#187; software development</title>
	<atom:link href="http://www.aktually.com/tag/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aktually.com</link>
	<description>the art of the rethink, where business meets design</description>
	<lastBuildDate>Fri, 14 May 2010 15:55:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What&#8217;s Wolfram Alpha for?</title>
		<link>http://www.aktually.com/recommendations/whats-wolfram-alpha-for/</link>
		<comments>http://www.aktually.com/recommendations/whats-wolfram-alpha-for/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 14:00:17 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Recommendations]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=124</guid>
		<description><![CDATA[What is Wolfram Alpha good for, and how would you use it?  What should we look for in the future?]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wolframalpha.com"><img class="alignright size-full wp-image-126" title="wolfram_alpha_logo" src="http://www.aktually.com/wp-content/uploads/2009/06/wolfram_alpha_logo.jpg" alt="wolfram_alpha_logo" width="254" height="46" /></a>The other day, I was preparing a <a href="http://www93.wolframalpha.com/input/?i=staples%2C+officemax%2C+office+depot">quickie assessment of the biggest office suppliers</a> in the US, and I thought &#8220;Instead of trying Google or Wikipedia, I&#8217;ll use this newfangled Wolfram Alpha thingy that&#8217;s out now.&#8221;  And after approaching that query, along with some other spur-of-the-moment questions, I&#8217;ve finally realized what Wolfram Alpha is.</p>
<p><span id="more-124"></span>Wolfram Alpha is a great way to find a fact and do some analysis about it.  You might think that after 19 days of being available to the public that I would understand what it&#8217;s all about as a user.  Just like Mathematica, I think this product is a tad ahead of its time.  This quote from their site: &#8220;Wolfram|Alpha&#8217;s long-term goal is to make all systematic knowledge immediately computable and accessible to everyone&#8221; is now much more meaningful after having used the service: &#8220;immediately computable&#8221; means a whole world of analysis can be at your fingertips, and &#8220;systematic knowledge&#8221; is another phrase for data and facts.</p>
<p>Now, there are some recognized shortcomings but by-and-large, as a proof-of-concept, it&#8217;s fantastic!  The above link should bring you to a query state that lists the following major US specialty retailers: Staples, Office Depot, and OfficeMax.  Now what I was trying to do was to find information quickly about this particular sector of retailers, provide a basis to generate an estimate on the size of the market for office supplies, and see data points relative to each other.  And of course, it did so beautifully.</p>
<p>There&#8217;s plenty more work to follow, however.  I think there are two key high-priority enhancement projects Wolfram Alpha should consider for their next release cycle:</p>
<ol>
<li>a simplified and standardized (mathematical?) grammar structure, and</li>
<li>a fact-drilling capability.</li>
</ol>
<p>The first suggestion would greatly help users understand how to structure their input and reduce the incidence of the &#8220;don&#8217;t know how to handle the input&#8221; page appearing to users.  After all, I can&#8217;t think of a single language that doesn&#8217;t have syntax with which to standardize expressions and context.  And at the same time, I don&#8217;t think one system can understand every single kind of expression and context from a myraid of users without extensive effort into a (in my opinion) futile effort.</p>
<p>The second suggestion would be a means to offer transparency to the facts presented by the engine.  Similar to Wikipedia and to the tradition of citations in written works, Wolfram Alpha should consider a way to cite every single fact in its database.  After all, each one should be verifiable in its own way, and the source content would go a long ways to confirming that work.  Good luck to the Wolfram Alpha team, I wish you the best of success!</p>
<p><strong>Recommendations</strong>: Put in a grammar/syntax structure to help users understand how to input their queries, while keeping it at a minimum.  And don&#8217;t forget the beauty of the Web being built on hyperlinks, so link to your facts where possible!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/recommendations/whats-wolfram-alpha-for/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Refereeing the Holy Trinity: Creative, Business, and Technical Folks</title>
		<link>http://www.aktually.com/recommendations/refereeing-the-holy-trinity-creative-business-and-technical-folks/</link>
		<comments>http://www.aktually.com/recommendations/refereeing-the-holy-trinity-creative-business-and-technical-folks/#comments</comments>
		<pubDate>Sat, 30 May 2009 06:08:06 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Recommendations]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=117</guid>
		<description><![CDATA[When it comes to the classic "iron triangle" project management model of time, scope, and cost, the three key stakeholder groups which directly contribute, guide, and work on a typical interactive project would certainly get into a fight with very little prodding.  The question is: How do you make it work?]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aktually.com/wp-content/uploads/2009/05/timeout.jpg"><img class="alignright size-full wp-image-118" title="timeout" src="http://www.aktually.com/wp-content/uploads/2009/05/timeout.jpg" alt="timeout" width="250" height="240" /></a>When it comes to the classic &#8220;iron triangle&#8221; project management model of time, scope, and cost, the three key stakeholder groups which directly influence and work on a typical interactive project are in constant conflict based on their perspectives.  I&#8217;ve been asked many times in the past: &#8220;What&#8217;s your approach to handling this kind of situation?  How do you resolve the differences between the creative, business, and technical teams?&#8221;</p>
<p><span id="more-117"></span>My perspective comes from lots of hands-on experience with each of the three groups.  Creative folks <a href="http://www.smashingmagazine.com/2009/05/24/do-you-want-fries-with-that-logo/">need time</a> to let ideas marinate and mature into thoughtful assets.  Technical folks (good ones, anyway) <a href="http://www.codinghorror.com/blog/archives/000150.html">need scope</a> to build the best possible product (if only I had a dime for every time a developer&#8217;s asked me &#8220;Well, if I do it this way it can work okay, but I think it&#8217;s better to do it this way because [insert comment about future capabilities or cool functionality]&#8220;, I&#8217;d be rich!).  And of course, we can&#8217;t forget business folks, whose tolerance for time seem to fall lower every day.  How can you get the three groups working together?</p>
<p><strong>Recommendation</strong>: Building mutual respect and condensing each group&#8217;s issues into soundbites for the other groups is my approach to handling any initial situation.  Project managers must have a strong curiosity for new domains and the nuances of each group&#8217;s work and background, which will help them argue for each side.  This kind of position will guide a project to success for all stakeholders since it strikes a good balance and effectively negotiates a lot of tension out of the situation.  However, when I&#8217;m in between a rock and a hard place, I have to side with the money but not without a fight for quality and extensibility.  Doing right by the client is my mantra and I would never sacrifice that until I&#8217;m kicked out of the building.</p>
<p>What do <em>you</em> think?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/recommendations/refereeing-the-holy-trinity-creative-business-and-technical-folks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Write A Good Software Requirement</title>
		<link>http://www.aktually.com/recommendations/how-to-write-a-good-software-requirement/</link>
		<comments>http://www.aktually.com/recommendations/how-to-write-a-good-software-requirement/#comments</comments>
		<pubDate>Wed, 06 May 2009 22:14:43 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Recommendations]]></category>
		<category><![CDATA[business analysis]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=45</guid>
		<description><![CDATA[Software development lifecycle processes can sometimes be seen as impediments or tedious tasks.  But it is worth reminding everyone that the smart work up front will save you headaches later. In my experience, well-written software requirements serve two main purposes: it orients all project participants and helps get buy-in about what you&#8217;re trying to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-large wp-image-63" title="requirementsfishbone" src="http://www.aktually.com/wp-content/uploads/2009/05/requirementsfishbone-1024x294.png" alt="requirementsfishbone" width="450" />Software development lifecycle processes can sometimes be seen as impediments or tedious tasks.  But it is worth reminding everyone that the smart work up front will save you headaches later. In my experience, well-written software requirements serve two main purposes: it orients all project participants and helps get buy-in about what you&#8217;re trying to do (since you&#8217;re articulating what you&#8217;re trying to accomplish), and it makes sure that everyone (from the project sponsor(s) down to the technologist and back up to the end user) can say that the project is done <em>to expectations</em>.</p>
<p>The trick is how to write a good requirement, for any number of situations. Part of the answer is to follow this convention:</p>
<p>The <span style="color: #808080;">[your words here: system, actor, function, dependency, etc.]</span><br />
must <span style="color: #808080;">[your words here: do, process, store, etc.]</span><br />
to <span style="color: #808080;">[your words here: accomplish a goal, serve a purpose, etc.]</span>.</p>
<p>and to focus on the &#8220;<em>what</em>&#8221; (substance) of the need as opposed to the &#8220;<em>how</em>&#8221; (design) of the need.  In addition, there are 8 key criteria that each requirement should satisfy to be considered well written.</p>
<p><span id="more-45"></span></p>
<p>As a business analyst, you should think about addressing the following points to evaluate how well written the requirement is:</p>
<ul>
<li>Necessity €“ A &#8220;must have&#8221;. Conversely, it helps to avoid gold-plating and gives you a prioritization tool during the build phase of work.</li>
<li>Unambiguous-ness €“ Use assertive words without vague terms. This also helps the writer/stakeholder focus on the &#8220;<em>what</em>&#8221; of the product/service/result as opposed to the &#8220;<em>how&#8221;</em> and proactively reducing interpretation issues.</li>
<li>Testability €“ Can be verified by inspection, analysis, or demonstration, which means that there&#8217;s a qualifying attribute to almost everything based on the idea that <a href="http://en.wikipedia.org/wiki/I_know_it_when_I_see_it">you know it when you see it</a>.</li>
<li>Conciseness €“ Conveys what is required and is easy to read yet. If you end up writing a page-long requirement, it&#8217;s time to make it more atomic.</li>
<li>Consistency €“ Does not contradict other requirements and uses a known vocabulary that should be defined for the layman (or at least the wider group).</li>
<li>Completeness €“ Does not require you to look at additional text to know what the requirement means. At the same time, requirements may be related to each other, which then requires the writer to add a separate requirement that talks about interaction between multiple requirements.</li>
<li>Feasibility €“ A requirement that can be implemented. Typically, time is a factor, but cost and available resources will all ultimately play a role in what you deem feasible or realistic.</li>
<li>Traceability €“ Has a unique identifier and is tracked through the development of the product/service/result. Along with testability, this attribute plays a role in ensuring that things do not get lost in the cracks.</li>
</ul>
<p>The above list was adapted from <a href="http://en.wikiversity.org/wiki/Technical_writing_specification">here</a> based on my own experience, and there is a wealth of material on the Web and in print that follows these conventions (or their spirit). Unfortunately, despite the volumes dedicated to this topic, it still frustrates users and is a task that is taken lightly because it is time spent with seemingly less tangible benefit up front. I have had many experiences where the team will ask &#8220;What did (insert name) mean when he/she wrote this,&#8221; which resulted in time wasted, potentially incorrect coding to occur, and costly testing time and effort down the line that reveals something &#8220;wrong&#8221; with the system but is hard to define or pin down.</p>
<p><strong>Recommendation</strong>: Do the work upfront, and you&#8217;ll save time and headache later. As a business stakeholder, focus on the &#8220;what&#8221;, and allow technical subject matter experts worry about the &#8220;how&#8221; (which they are supposed to do anyway). Well-written requirements based on necessity, unambiguousness, testability, conciseness, consistency, completeness, feasibility, and traceability will save the day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/recommendations/how-to-write-a-good-software-requirement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
