<?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</description>
	<lastBuildDate>Fri, 20 Jan 2012 17:00:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Discipline and the minimum viable product</title>
		<link>http://www.aktually.com/recommendations/discipline-and-the-minimum-viable-product/</link>
		<comments>http://www.aktually.com/recommendations/discipline-and-the-minimum-viable-product/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 17:45:42 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Recommendations]]></category>
		<category><![CDATA[Selling Scrum to Skeptics]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[business process]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[product development]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[scale]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=551</guid>
		<description><![CDATA[With all due respect to Seth Godin, while he may be a marketing guru, his post about minimum viable product makes me think that he hasn&#8217;t participated in the product development process in a very long time, considering that his definition of minimum viable product is pretty coarse (and likely why it doesn&#8217;t work!). As [...]]]></description>
			<content:encoded><![CDATA[<p>With all due respect to Seth Godin, while he may be a marketing guru, <a href="http://sethgodin.typepad.com/seths_blog/2011/11/when-minimal-viable-product-doesnt-work.html">his post about minimum viable product</a> makes me think that he hasn&#8217;t participated in the product development process in a very long time, considering that his definition of minimum viable product is pretty coarse (and likely why it doesn&#8217;t work!).</p>
<p>As a product guy, minimum viable product is one important method with which to organize product development efforts, and to maximize the amount of benefit derived from scarce engineering, development, and management resources. In agile development circles, Product Owners work with the team to consciously choose to release &#8220;MVPs&#8221; frequently, or release a bunch of them together in an integrated package or manner. My take is that &#8220;minimum viable product&#8221; is the set of features that satisfy the core needs of your target champion audience and provides the team with the greatest return in both actionable feedback and revenue/revenue potential. More than one can go live at a time!</p>

<p><a style="line-height: 24px; font-size: 16px;" href="http://www.aktually.com/wp-content/uploads/2011/11/Lego_vs_real_porche.png"><img class="alignleft size-medium wp-image-552" style="border-style: initial; border-color: initial;" title="Lego_vs_real_porche" src="http://www.aktually.com/wp-content/uploads/2011/11/Lego_vs_real_porche-300x105.png" alt="" width="300" height="105" /></a></p>
<p>To work backwards a little, agile development and Scrum in particular derive big benefits from thinking in this manner. The reason being that minimum viable product first forces you to think about a set of features, functionality, and fixes that make sense together, and offer your users the greatest benefit. Then, once you arrange things into a bundle, you look for areas where it&#8217;s possible to make them bite-sized for the team to work with and to execute on. Let&#8217;s say that you end up with 3 minimal viable &#8220;products&#8221;; that may simply correlate to three distinct milestone dates throughout a calendar year. But not all of them have to go to market immediately, not all of them have to be released as soon as they&#8217;re individually done!</p>
<p>Oftentimes, the driving force for product people to tie one minimum viable product to a release is the urge to get something to market ASAP. I say that you ought to resist that urge with all your might! It&#8217;s not about the &#8220;smallest kernel of your core idea&#8221; but rather, how you help your team build a great product iteration that goes to market successfully. It is up to the product folks to exercise some discipline and patience about what exactly constitutes minimum viable product. Anticipating how your users will be delighted by a single button versus a single experience makes all the difference in the world.</p>
<p>In conclusion, for all you product folks out there: <strong>Minimum viable product is the set of features that satisfy the core needs of your target champion audience and provides the team with the greatest return in both actionable feedback and revenue/revenue potential. Bundle multiple MVPs if you think the whole is greater than the sum of its parts.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/recommendations/discipline-and-the-minimum-viable-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 versus native: which way should you go?</title>
		<link>http://www.aktually.com/thoughts/html5-versus-native-which-way-should-you-go/</link>
		<comments>http://www.aktually.com/thoughts/html5-versus-native-which-way-should-you-go/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 15:30:33 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[product development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[webos]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=489</guid>
		<description><![CDATA[Over the last few months, there&#8217;s been so much turmoil in the touchscreen tablet space! Consider: HP&#8217;s newest foray into tablet computing, not with a Windows OS but instead with WebOS, subsequently gets beheaded in under 2 months after the TouchPad&#8217;s launch. Android&#8217;s Honeycomb and Gingerbread tablets are growing in number, but not so much [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-491 aligncenter" title="html5_vs_native" src="http://www.aktually.com/wp-content/uploads/2011/08/html5_vs_native-300x138.png" alt="" width="300" height="138" /></p>
<p>Over the last few months, there&#8217;s been so much turmoil in the touchscreen tablet space! Consider:</p>
<ol>
<li>HP&#8217;s newest foray into tablet computing, not with a Windows OS but instead with WebOS, subsequently <a href="http://www.hp.com/hpinfo/newsroom/press/2011/110818b.html">gets beheaded</a> in under 2 months after the TouchPad&#8217;s launch.</li>
<li>Android&#8217;s Honeycomb and Gingerbread tablets are <a href="http://www.techradar.com/news/mobile-computing/tablets/14-best-android-tablets-in-the-world-905504">growing in number</a>, but <a href="http://www.abiresearch.com/press/3753-Android+Takes+20%25+Media+Tablet+Market+Share+from+iPad+in+Last+12+Months">not so much in market share</a>.</li>
<li>RIM&#8217;s <a href="http://www.informationweek.com/news/personal-tech/tablets/229700019">launch of the Playbook</a> is widely acknowledged as a flop.</li>
<li>Apple&#8217;s iPad 2 launch in March is <a href="http://www.bloomberg.com/news/2011-07-19/apple-profit-seen-rising-as-ipad-buying-makes-up-for-iphone-lull.html">one of the most successful product launches</a> in recent history.</li>
<li>And last but not least (by a slim margin), Microsoft continues to plug away with its <a href="http://www.digitaltrends.com/mobile/even-windows-tablets-are-outselling-rims-playbook/">Windows 7 stopgap</a> strategy while working on Windows 8.</li>
</ol>
<p>As a product person who&#8217;s been working on a HTML5-based offline web application, it&#8217;s been an exciting ride! So far, the recent events underscore several key ideas that product folks should take into account: platform flexibility, platform longevity, and control over the platform.<span id="more-489"></span>Developing platform-specific applications will give you the broadest access to that platform&#8217;s advantages and features, but ties you into an ecosystem. Developing platform-neutral applications will give you the broadest access to a user base, but ties you into a variation of whack-a-mole. Given that a platform is composed of both hardware and software, product people have a set of issues to face which will shape your strategy. Hardware ends up being a snapshot in time, an end result of the evolutionary lessons and manufacturing capabilities up to a certain point. Unless a company directly controls their own hardware, it&#8217;s unable to fully understand and leverage all the nuances and potential of a device quickly. It takes time and exposure in a marketplace for both developers and consumers to achieve that knowledge. And in the case of hardware manufacturers themselves, failure is not so kind to a company and the ecosystem. In contrast, software is more malleable and can be adapted more easily. Your ability to deliver frequent iterations have less limitations to delivery.</p>
<p>The interesting development lately has to do with HTML5 apps versus native apps. While I&#8217;m a bit biased to one camp, I can say this: longevity aside, I&#8217;m interested in hitting the widest user base possible, and I&#8217;m willing to compromise slightly on performance and hardware features to gain an edge in control and reduce the friction it takes to get the user up and running. Not every company can say that, but every company needs to weigh those factors. And here&#8217;s the kicker: HTML5 is still an evolving spec. It is expected to get better over time, and build its API inventory up and continue cutting into the advantages that native apps have. As a wise man once said: &#8220;Choose wisely.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/thoughts/html5-versus-native-which-way-should-you-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selling Scrum to Skeptics: Going slow to get Done Done the right way.</title>
		<link>http://www.aktually.com/selling-scrum-to-skeptics/selling-scrum-to-skeptics-going-slow-to-get-done-done-the-right-way/</link>
		<comments>http://www.aktually.com/selling-scrum-to-skeptics/selling-scrum-to-skeptics-going-slow-to-get-done-done-the-right-way/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 13:01:40 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Selling Scrum to Skeptics]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[definition of done]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=292</guid>
		<description><![CDATA[So last night, I had the opportunity to see Ken Schwaber in action at the AgileNYC event in LimeWire&#8217;s Tribeca offices with a friend of mine. It was a great event with a lot of people ranging widely in their exposure to Scrum. I find that there&#8217;s always a particular nuance that I relearn when [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aktually.com/wp-content/uploads/2010/11/Done_stamp.jpg"><img class="alignright size-medium wp-image-376" title="Done_stamp" src="http://www.aktually.com/wp-content/uploads/2010/11/Done_stamp-300x245.jpg" alt="" width="300" height="245" /></a>So last night, I had the opportunity to see <a href="http://www.linkedin.com/pub/ken-schwaber/0/55/9a">Ken Schwaber</a> in action at the <a href="http://www.incrementor.com/agilenyc/110310.php">AgileNYC</a> event in LimeWire&#8217;s Tribeca offices with <a href="http://swanthinks.wordpress.com/2010/11/03/588/">a friend of mine</a>. It was a great event with a lot of people ranging widely in their exposure to Scrum. I find that there&#8217;s always a particular nuance that I relearn when I attend these talks, and the key one that stuck was all about how to plan and execute towards the goal of &#8220;Done Done&#8221;. Read on to find out more!</p>
<p><span id="more-292"></span>For those of you who could use a refresher, &#8220;Done Done&#8221; is based on knowing that a work item is capable of passing a set of agreed-to criteria between the stakeholders as well being capable of launching the very same work item into production. It was refreshing to hear a reference to the basic project management tenet, the <a href="http://en.wikipedia.org/wiki/Project_triangle">Iron Triangle</a>, and the concept of altering schedules/time (e.g. the Sprint length) to improve quality. Essentially, the common issue occurs when one person&#8217;s definition of done often doesn&#8217;t match someone else&#8217;s definition of done. When you can check off Done Done with everyone, that&#8217;s when you know you&#8217;re golden!</p>
<p>So at the end of the talk, I went up to Ken and asked: &#8220;What if you have the Product Owner/Manager constantly changing their requirements and definition-of-done-s on you in a start-up kind of environment?&#8221; To paraphrase, his response was clear and simple: it is what it is. The fault lies in both camps: on the team&#8217;s side, the PO isn&#8217;t being responsible by sticking to a clear-enough definition of done, and the team/ScrumMaster isn&#8217;t demanding a clear-enough definition in the first place. Both sides need to work something out, or else something or someone will break.</p>
<p>At the end of the day, you need to have clear requirements/user stories that also have clear (and preferably specific!) definitions of done (think acceptance criteria, functional/integration/unit tests, documentation, qualifying against industry standards, etc.). It also helps to have an overarching Sprint objective and Sprint-oriented definition of done. It&#8217;s the only way to get good expectation management and ultimately, good software. So slow down, talk it out, and get then it done!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/selling-scrum-to-skeptics/selling-scrum-to-skeptics-going-slow-to-get-done-done-the-right-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Selling Scrum to Skeptics: Budgets</title>
		<link>http://www.aktually.com/thoughts/selling-scrum-to-skeptics-part-1-budgets/</link>
		<comments>http://www.aktually.com/thoughts/selling-scrum-to-skeptics-part-1-budgets/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 14:00:20 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Selling Scrum to Skeptics]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[budgets]]></category>
		<category><![CDATA[product development]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=251</guid>
		<description><![CDATA[Scrum and agile (note the lowercase!) development techniques have been around for a few years now, and prominent companies use it in some form or another. However, I&#8217;ve seen multiple instances where clients and management alike will derail the whole notion of Scrum! It pains me to see it, so here&#8217;s a Part 1 (of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aktually.com/wp-content/uploads/2010/10/scrum+budgets.jpg"><img src="http://www.aktually.com/wp-content/uploads/2010/10/scrum+budgets.jpg" alt="" title="scrum+budgets" width="201" height="109" class="alignright size-full wp-image-355" /></a>Scrum and agile (note the lowercase!) development techniques have been around for a few years now, and <a href="https://spreadsheets.google.com/ccc?key=t9L4o6JXfQTa8I4DKkvka5g#gid=1">prominent companies</a> use it in some form or another.  However, I&#8217;ve seen multiple instances where clients and management alike will derail the whole notion of Scrum! It pains me to see it, so here&#8217;s a Part 1 (of many more to come) to help convince skeptics that Scrum can be good for you (just like apples!). This post will focus on a common concern I&#8217;ve heard: &#8220;Scrum seems nice and all, but how do we manage budgets?&#8221;<br />
<span id="more-251"></span><br />
<br/><br />
<strong>First off, budgets in Scrum are easy to track (maybe it&#8217;s too good to believe!).</strong> To try to better explain it, here&#8217;s a slightly different tack: developers scope out some incremental feature set to be built in a specific time period (the Sprint!). Think of that as our &#8220;box&#8221; of stuff that will be made. After the team runs a few Sprints, the output is generally predictable to a certain degree, effectively &#8220;box-able&#8221;. At that point, the Product Owner decides, do I want to invest in the &#8220;box&#8221; that the team scoped? Is there another set of stuff that you want to put in the &#8220;box&#8221;? And thus, the bottom line: whatever you choose, you&#8217;ll know with a generally predictable confidence that you&#8217;re investing a specific dollar amount for some return. And here&#8217;s the kicker: you can walk away if you don&#8217;t like where it goes after only two to four weeks! Could you say that about any other software project managed via traditional waterfall-ish techniques?<br />
<br/><br />
<strong>Second, big upfront estimation is passé.</strong> Too often, developers and project managers alike get asked for estimates that turn into budgets. Those budgets then magically inflate over time to become multiples of the original &#8220;number&#8221;! When you ask a team to create something new, you can certainly ask them to take the smartest way to create what you want. However, that&#8217;s not the same as knowing exactly what needs to happen. Whether it&#8217;s a stubborn remnant of classical project management thinking, or perhaps an inability to get away from trying to know everything, it just won&#8217;t work with new products. Here&#8217;s how you deal with it: what you should actually do is to understand what kinds of unknowns your initiative has. The unknowns you find out (via uncovery, but that&#8217;s another post for another day) offer you a level-setting opportunity for yourself and the team. Work with the team to understand what work needs to be done to answer the myriad of questions that you believe puts you into a position to &#8220;really build something for a version 1.0&#8243;. That will give you enough information to approximate an R&#038;D budget, in effect. As with any initiative, there also needs to be a solid business case and an expectation of revenue, which is the counter-balance to your R&#038;D budget. In other words, you have just created a cost-benefit analysis to justify some amount of spend for research and development!<br />
<br/><br />
<strong>Third, experienced engineering teams know that <a href="http://en.wikipedia.org/wiki/Tuckman's_stages_of_group_development">forming-storming-norming-performing</a> is real.</strong> In my experience, good teams really take 6 to 9 months to come together and start to be star performers together. They&#8217;ll finish each others&#8217; thoughts, challenge each others&#8217; thinking, and create great things. From another perspective, people don&#8217;t just plug-and-play easily just because the skill set might be there. And so I would posit that the smallest unit of resource &#8220;currency&#8221; is really a team-Sprint (defined as the number of people multiplied by the number of work days in a Sprint), not a person-day. Yes, in a way, this does &#8220;lock&#8221; you into a unit of measure that&#8217;s relatively large, but the reality is that teams are here to stay. Once you&#8217;ve invested the time to let a team gel, don&#8217;t waste it by disbanding them at the first sign of new priorities. Instead, use the benefits of an effective team to estimate and drive budgeting decisions for the work that needs to get done. Leverage their expertise (domain or otherwise) to help you track and spend time and money wisely.<br />
<br/><br />
<strong>Conclusion:</strong> Budgets are easier to digest in Scrum than you might think. The smallest unit of measure should be a team-Sprint. Estimation isn&#8217;t that hard with effective teams, and changes to the budget can be handled much more easily! And best of all, if something doesn&#8217;t work, you don&#8217;t have to wait months to change direction; it&#8217;s a lot smaller now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/thoughts/selling-scrum-to-skeptics-part-1-budgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Fail Whales Can Make Great Teams</title>
		<link>http://www.aktually.com/thoughts/why-fail-whales-can-make-great-teams/</link>
		<comments>http://www.aktually.com/thoughts/why-fail-whales-can-make-great-teams/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 02:00:24 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[fail whale]]></category>
		<category><![CDATA[Foursquare]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.aktually.com/?p=212</guid>
		<description><![CDATA[Twitter and Foursquare are two easy examples that come to mind for services that have failed very publicly. They get pretty bad press from people because of service outages. I myself have been on the receiving end too, but as someone who&#8217;s been in the application development side of the house, I know that these [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://connect.in.com/fail-whale/photos-failwhale-dfef835b6dd74fca.html"><img src="http://www.aktually.com/wp-content/uploads/2010/10/failwhale-e1287971641980.jpg" alt="" title="failwhale" width="150" height="189" class="alignright size-full wp-image-360" /></a>Twitter and Foursquare are two easy examples that come to mind for services that have failed very publicly. They get pretty bad press from people because of service outages. I myself have been on the receiving end too, but as someone who&#8217;s been in the application development side of the house, I know that these experiences are invaluable. There&#8217;s nothing like a few million users screaming at you, that&#8217;s for sure!</p>
<p>The thing is, teams are human and make mistakes. It&#8217;s easy for a team to fracture or start pointing fingers at each other; it&#8217;s much harder for the team to hold together, either collectively or with the help of a good manager. And once you&#8217;ve been through one ordeal and you pull through successfully, that trust and mutual respect go a heck of a long way. So the next time you have your own fail whale with a team, take a deep breath, scramble to fix the problem and the perception, and then have a strong drink with everyone. You&#8217;ve earned it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aktually.com/thoughts/why-fail-whales-can-make-great-teams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 do [...]]]></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>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>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: www.aktually.com @ 2012-02-07 05:34:24 -->
