<?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>Tools For Agile Blog &#187; Product design</title>
	<atom:link href="http://toolsforagile.com/blog/archives/category/product-design/feed" rel="self" type="application/rss+xml" />
	<link>http://toolsforagile.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 24 Nov 2011 18:41:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pruning the feature list to identify the Minimum Viable Product</title>
		<link>http://toolsforagile.com/blog/archives/694/pruning-the-feature-list-to-identify-the-minimum-viable-product</link>
		<comments>http://toolsforagile.com/blog/archives/694/pruning-the-feature-list-to-identify-the-minimum-viable-product#comments</comments>
		<pubDate>Mon, 28 Mar 2011 12:17:21 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Lean]]></category>
		<category><![CDATA[Product design]]></category>

		<guid isPermaLink="false">http://toolsforagile.com/blog/?p=694</guid>
		<description><![CDATA[This weekend I had the opportunity to mentor some of the teams at The Startup Center during the in50hrs event. The idea of the event was to conceptualize and build a minimum viable product within one weekend. As a mentor, my role was to sit with teams and make sure that their product idea really [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F694%2Fpruning-the-feature-list-to-identify-the-minimum-viable-product&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p>This weekend I had the opportunity to mentor some of the teams at <a href="http://thestartupcentre.com/">The Startup Center</a> during the <a href="http://in50hrs.thestartupcentre.com/">in50hrs</a> event. The idea of the event was to conceptualize and build a minimum viable product within one weekend.</p>
<p>As a mentor, my role was to sit with teams and make sure that their product idea really was the &#8220;<a href="http://toolsforagile.com/blog/archives/260">minimum viable product</a>&#8220;. When you conceptualize a product, chances are you&#8217;ve got all these fancy use cases in your head. You&#8217;re thinking &#8220;Oh wouldn&#8217;t it be cool if we had this features&#8221; and &#8220;That feature would really be neat&#8221;. Before you know it, you&#8217;ve got a complicated product with many useless features.</p>
<p>Lets look at an example of how we can pare back the features into a minimum viable product.</p>
<p><span id="more-694"></span></p>
<h3>Elevator Pitch</h3>
<p>How often have you searched long and hard to find customer support numbers for companies? The numbers on many companies websites dont work (if you can find them) and Google is of no help. The idea is to build a site, with working customer support numbers for various companies. Users can add numbers they find and vote on other numbers whether it worked for them or not.</p>
<h3>Initial Feature List</h3>
<p>The initial feature list had a whole bunch of features for this product</p>
<ul>
<li>Search the database to find a company</li>
<li>Allow users to submit companies to the database</li>
<li>Group companies into categories</li>
<li>Detect duplication of companies (eg: IBM vs International Business Machines)</li>
<li>Separate numbers by city</li>
<li>Get the user&#8217;s IP, determine the location and show numbers for the city closest to the user</li>
<li>Upvote on numbers which work</li>
<li>Downvote on numbers which aren&#8217;t working</li>
<li>Allow businesses to add verified numbers</li>
<li>Allow users to submit numbers to the database</li>
<li>Have premium users who receive discounts from companies</li>
<li>Premium users can login through facebook, twitter and google accounts</li>
<li>Show users their vote if they have previously voted on a number</li>
</ul>
<p>Wow, that&#8217;s a lot of features for the first release.</p>
<h3>The Minimum Viable Product</h3>
<p><img class="alignnone size-full wp-image-696" title="Minimum Viable Product" src="http://toolsforagile.com/blog/wp-content/uploads/2011/03/mvp.png" alt="" width="600" height="405" /></p>
<p>Now how many of these are really central to the core problem being solved? My job was to cut away the extra features.</p>
<p>So we went through the list and thought about each feature in turn. Do we really need to categorise companies? Do we really need premium users? Do we even need authentication at all? Can everything be done by anonymous users?</p>
<p>Finally, we whittled it down to just these features</p>
<ul>
<li>Search the database to find a company</li>
<li>Allow users to submit companies to the database</li>
<li>Allow users to submit numbers to the database</li>
<li>Upvote on numbers which work</li>
<li>Downvote on numbers which aren&#8217;t working</li>
</ul>
<p>That&#8217;s all you need for the MVP.</p>
<p>Think about your next product. Do you really need all those features for the first release?</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/694/pruning-the-feature-list-to-identify-the-minimum-viable-product/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Silver Stories in Action: Story Trees</title>
		<link>http://toolsforagile.com/blog/archives/329/silver-stories-in-action-story-trees</link>
		<comments>http://toolsforagile.com/blog/archives/329/silver-stories-in-action-story-trees#comments</comments>
		<pubDate>Fri, 21 May 2010 05:02:46 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Product design]]></category>
		<category><![CDATA[Silver Stories]]></category>

		<guid isPermaLink="false">http://toolsforagile.com/blog/?p=329</guid>
		<description><![CDATA[In a previous post I introduced the Story Tree functionality of Silver Stories. Here is a video that shows how you can go about creating such story trees. We had three goals when developing the interaction interface for story trees: Support different feature hierarchies: The video shows how we can use the Story Tree functionality [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F329%2Fsilver-stories-in-action-story-trees&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p><a href="http://toolsforagile.com/blog/archives/310">In a previous post</a> I introduced the Story Tree functionality of Silver Stories. Here is a video that shows how you can go about creating such story trees.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AYHghTMC" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="390" src="http://blip.tv/play/AYHghTMC" allowfullscreen="true"></embed></object></p>
<p>We had three goals when developing the interaction interface for story trees:</p>
<ul>
<li><em>Support different feature hierarchies</em>: The video shows how we can use the Story Tree functionality to build a user story map, but you can create any other feature hierarchy too. You use a Theme-&gt;Epic-&gt;MMF structure? Or Goal-&gt;Feature-&gt;Story? You can model those too.</li>
<li><em>Keep it visual</em>: We are big believers in visual management, especially in the <a href="http://toolsforagile.com/blog/archives/320">10 foot, 3 second rule</a>. We could have shown trees using the regular collapsible tree structure, but you lose all the context as you drill down or roll up the tree. By visually depicting the entire tree at once, you can always view your operations in the context of the entire story tree.</li>
<li><em>Make it fluid</em>: If the story tree is to support collaboration, the interaction had to be fluid. You should be able to create cards and move them around as if you were on a card wall. You can get remote stakeholders on skype conference call, share your desktop, and collaboratively build up the tree <span style="text-decoration: underline;">in real time as the conversations are happening</span>. You can see that fluidity in action in the video above as we build up a small story tree in only three minutes.</li>
</ul>
<p>So what do you think of the story tree functionality? We would love to hear your comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/329/silver-stories-in-action-story-trees/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>User Story Mapping with Silver Stories</title>
		<link>http://toolsforagile.com/blog/archives/310/user-story-mapping-with-silver-stories</link>
		<comments>http://toolsforagile.com/blog/archives/310/user-story-mapping-with-silver-stories#comments</comments>
		<pubDate>Fri, 07 May 2010 03:40:30 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product design]]></category>
		<category><![CDATA[Silver Stories]]></category>

		<guid isPermaLink="false">http://toolsforagile.com/blog/?p=310</guid>
		<description><![CDATA[We recently announced Silver Stories, a tool for agile portfolio management. In this post, I explain some of the problems that we hope to solve with Silver Stories. Click here for the entire series of posts on Silver Stories. About User Story Mapping User Story Mapping is a technique popularized by Jeff Patton that allows [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F310%2Fuser-story-mapping-with-silver-stories&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p><em>We recently announced <a href="http://toolsforagile.com/silverstories/">Silver Stories, a tool for agile portfolio management</a>. In this post, I explain some of the problems that we hope to solve with Silver Stories. <a href="http://toolsforagile.com/blog/archives/category/silver-stories">Click here for the entire series of posts on Silver Stories</a>.<br />
</em></p>
<p><strong>About User Story Mapping<br />
</strong></p>
<p>User Story Mapping is a technique popularized by <a href="http://www.agileproductdesign.com/">Jeff Patton</a> that allows teams to build up a set of user stories by looking at the software from a user centric point of view. You could say that Story Maps are a combination of user centric design and feature breakdown trees. User Story Mapping is a powerful way to gain an understanding of scope for new product development.</p>
<p><span id="more-310"></span></p>
<p>The feature breakdown in user story maps is <em>User Activity</em> -&gt; <em>User Task</em> -&gt; <em>User Story</em></p>
<p>User Activities are things that users do towards achieving a particular goal. For example, &#8220;Create a profile&#8221; might be one activity in a social networking website.</p>
<p>User Tasks are specific steps within an activity. Tasks by themselves do not move towards a goal, but are required components of an activity. For example, &#8220;Add contact information&#8221;, &#8220;Add education experience&#8221;, &#8220;Add hobbies and interests&#8221; might all be user tasks under the &#8220;Create a profile&#8221; activity.</p>
<p>User Stories are small end-to-end vertical slices of functionality that implement User Tasks. For instance, the &#8220;Add contact information&#8221; task could be broken into stories to &#8220;Add contact information&#8221;, &#8220;Edit contact information&#8221;, &#8220;Validate email address&#8221;, &#8220;Create a % complete progress bar&#8221; and so on.</p>
<p>Story mapping is a fluid, collaborative effort. Multiple stakeholders can participate on different sections of the map until a single shared understanding of the system is created. Cards are dynamically moved around, changing the order of the activities, grouping cards together under an activity or breaking cards down into tasks and stories.</p>
<p>Once created, the story map provides a good high level picture of the software to be built, along with a flow of activities from the user&#8217;s perspective.</p>
<p><strong>User Story Mapping with Silver Stories</strong></p>
<p>Silver Stories has a unique story tree view that allows stakeholders to easily create story maps. Here is a story map created using Silver Stories:</p>
<div class="mceTemp">
<dl id="attachment_311" class="wp-caption alignnone" style="width: 609px;">
<dt class="wp-caption-dt"><a href="http://toolsforagile.com/blog/wp-content/uploads/2010/05/user_story_map.png"><img class="size-large wp-image-311" title="user_story_map" src="http://toolsforagile.com/blog/wp-content/uploads/2010/05/user_story_map-1024x269.png" alt="User Story Map with Silver Catalyst" width="599" height="157" /></a></dt>
</dl>
</div>
<p>The story tree is visualized using a 2-dimension mapping of cards. This visualization enables you to see the entire tree at all levels of hierarchy on the screen at one time, eliminating the need to drill down through the hierarchy. The problem with drill downs is that you are always looking at sub sections of the system, losing the context in which it is placed. This visualization allows you to see user activities, user tasks and user stories within context.</p>
<p>Cards in yellow represent User Activities, cards in red are User Tasks and cards in blue are User Stories.</p>
<p>The shape of the story map gives an indication about which sections of the software contain the highest density of functionality.</p>
<p>Thus, the visualization of user story maps in Silver Catalyst use patterns, shapes and colors to convey much more information than can be obtained using a tabular form or a tree drill down.</p>
<p><strong>Resources</strong></p>
<p>This post only touches on user story mapping from a visualization point of view. For more on how you can use story mapping to collaborate with multiple stakeholders and create a shared understanding of the product, check out <a href="http://www.agileproductdesign.com/presentations/user_story_mapping/index.html">Jeff Pattons resource page on User Story mapping</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/310/user-story-mapping-with-silver-stories/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mindmap of Kevin&#8217;s talk on User Experience Design @ Serendio</title>
		<link>http://toolsforagile.com/blog/archives/208/mindmap-of-kevins-talk-on-user-experience-design-serendio</link>
		<comments>http://toolsforagile.com/blog/archives/208/mindmap-of-kevins-talk-on-user-experience-design-serendio#comments</comments>
		<pubDate>Tue, 08 Dec 2009 08:55:09 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Product design]]></category>

		<guid isPermaLink="false">http://www.silverstripesoftware.com/blog/archives/208</guid>
		<description><![CDATA[Kevin Mullet was in Chennai yesterday and he gave a talk on User Experience Design. Thanks to Serendio for organising the talk. I&#8217;ve attached below a mindmap of the talk based on my notes. Click the image to see the whole mindmap.]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F208%2Fmindmap-of-kevins-talk-on-user-experience-design-serendio&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p><a href="http://www.edreactor.com/">Kevin Mullet</a> was in Chennai yesterday and he gave a talk on User Experience Design. Thanks to <a href="http://www.serendio.com/">Serendio</a> for organising the talk. I&#8217;ve attached below a mindmap of the talk based on my notes. Click the image to see the whole mindmap.</p>
<p><a href="http://www.silverstripesoftware.com/blog/wp-content/uploads/2009/12/user-experience-design-kevin-mullet-serendio-7-dec-2009.png"><img src="http://www.silverstripesoftware.com/blog/wp-content/uploads/2009/12/user-experience-design-kevin-mullet-serendio-7-dec-2009_tn.png" alt="Kevin Mullet Mindmap - Thumbnail" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/208/mindmap-of-kevins-talk-on-user-experience-design-serendio/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deploying a Django app on the desktop</title>
		<link>http://toolsforagile.com/blog/archives/51/deploying-a-django-app-on-the-desktop</link>
		<comments>http://toolsforagile.com/blog/archives/51/deploying-a-django-app-on-the-desktop#comments</comments>
		<pubDate>Thu, 31 May 2007 10:06:14 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[Product design]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.silverstripesoftware.com/blog/archives/51</guid>
		<description><![CDATA[One of the cool things about Silver Catalyst (which is a Django app) is that you can start using it right out of the box. I didn&#8217;t want the team working their way around Apache and MSSQL configurations, Python version incompatibilities, database access issues and deployment hassles. The final solution was a simple executable, which [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F51%2Fdeploying-a-django-app-on-the-desktop&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p>One of the cool things about <a title="Silver Catalyst: Distributed Agile Tool" href="http://www.silverstripesoftware.com/">Silver Catalyst</a> (which is a <a title="Django web framework" href="http://www.djangoproject.com/">Django</a> app) is that you can start using it right out of the box. I didn&#8217;t want the team working their way around Apache and MSSQL configurations, Python version incompatibilities, database access issues and deployment hassles. The final solution was a simple executable, which when run would start everything required to get going.</p>
<p>In this post, I&#8217;ll explain how that was achieved.</p>
<p><span id="more-51"></span></p>
<p>A bit of background first. The vision for Silver Catalyst was a tool that could be installed by a team without having to get centralised servers and system administrators involved. I wanted the team to be able to set aside one computer on which they could install Silver Catalyst by themselves for use on their project. That made it pretty important that the setup be absolutely painless.</p>
<p>Silver Catalyst was written in <a title="Python" href="http://www.python.org/">Python</a> using the <a title="Django" href="http://www.djangoproject.com/">Django framework</a>. My first thought was to package the application as a zip of compiled python files and then have the team deploy that onto a server. This meant that someone would have to setup a web server, get Django working with it, setup a database, install python, deploy the application and finally configure it to point to the right files. Phew!</p>
<p>Luckily, to the rescue came <a title="Package python code as an executable" href="http://python.net/crew/atuining/cx_Freeze/">cx_freeze</a>. cx_freeze is a really nifty utility that will take your python code, check the included libraries and package everything along with the current python version into an executable. Very cool! A bonus was that you would not even need python installed to run the tool since the interpreter is packaged in the executable. This also eliminated issues like python version incompatibilities and so on.</p>
<p>Step two was the decision to use <a title="SQLite embedded database" href="http://www.sqlite.org/">sqlite3</a> as the database. Since sqlite3 is an embedded database, you don&#8217;t need to have a database installed at all. Even better, there are standard modules to access sqlite3. In fact, it has been made a <a title="Whats new in Python 2.5" href="http://docs.python.org/whatsnew/modules.html#SECTION0001440000000000000000">part of the standard distribution</a> from Python 2.5 on.</p>
<p>The only dependency remaining was the web server. If I could use a pure python web server, I could simply hook up Django to it via <a title="PEP 333: WSGI" href="http://www.python.org/dev/peps/pep-0333/">WSGI</a> and include the whole lot in the executable. That is what I did. I used <a title="Tool Server for Python" href="http://pyds.muensterland.org/wiki/toolserver.html">ToofPy</a> with some modifications so that it is pre-configured to run Django.</p>
<p>When cx_freeze is run on this setup, it bundles together the web server, Django, sqlite3, the application code, and the python interpreter into an executable. The application is pre-configured to use the packaged sqlite3 database code and the web server is pre-configured to load Django.</p>
<p>The result?</p>
<p>Just run the executable and the server starts. Access the server via a browser and you go straight into the Silver Catalyst application. In fact, because there are no external dependencies, it is easy to think that it is a native application. But behind the scenes, it is all python and some cx_freeze magic. If you want to see for yourself what the final result was like, you can download a free version of the tool <a title="Download Silver Catalyst: Distributed Agile Tool" href="http://www.silverstripesoftware.com/download/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/51/deploying-a-django-app-on-the-desktop/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Usage patterns, or why you need to support alternate modes of interaction</title>
		<link>http://toolsforagile.com/blog/archives/42/usage-patterns-or-why-you-need-to-support-alternate-modes-of-interaction</link>
		<comments>http://toolsforagile.com/blog/archives/42/usage-patterns-or-why-you-need-to-support-alternate-modes-of-interaction#comments</comments>
		<pubDate>Sat, 28 Apr 2007 07:01:56 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Product design]]></category>

		<guid isPermaLink="false">http://www.silverstripesoftware.com/blog/archives/42</guid>
		<description><![CDATA[One of the dangers of developing an application is assuming that all your users are just like you. Case in point: The Silver Catalyst tool that I am currently developing. Imagine for a second that your team is using Silver Catalyst. They have entered all the data into the tool and are using it regularly. [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F42%2Fusage-patterns-or-why-you-need-to-support-alternate-modes-of-interaction&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p>One of the dangers of developing an application is assuming that all your users are just like you.</p>
<p>Case in point: The Silver Catalyst tool that I am currently developing.</p>
<p>Imagine for a second that your team is using Silver Catalyst. They have entered all the data into the tool and are using it regularly. At the end of the week, an executive asks for the status. Because Silver Catalyst is a web app, the PM figures that the executive can just login to the tool anytime they want the status, and therefore creates a login for him. A couple of days pass and the executive asks for the report again.</p>
<p>Guess what? The executive never logged into the system! The PM is now back to taking data from the tool and preparing a report.</p>
<p><span id="more-42"></span></p>
<p>Sounds familiar?</p>
<p>There are a number of reasons why the executive wanted a report</p>
<ul>
<li>He is not used to using a web app. Old habits die hard. He is used to a report, so a report it shall be.</li>
<li>He wants to email it to someone else.</li>
<li>He wants to read it on the road, when disconnected from the network.</li>
<li>He wants to print it out and give it to someone</li>
</ul>
<p>There are many reasons why someone would need an offline version of the current status.</p>
<p>Interacting with your application online is just one mode of interaction. A lot of interaction happens outside the space of the application: email, paper, conversations, discussions.</p>
<p>An application that forces all interaction to happen through it will either be used reluctantly or will not be used by those who have different patterns of usage. Quite often, these people are key stakeholders.</p>
<p>When I first designed Silver Catalyst, I ignored this point. I thought everyone would just log into the tool and find out the status. Why do we need to provide PDF output? One of the outcomes of the beta test was that there were people looking for PDF reports so that they could email it around.</p>
<p>When I thought about it, it seemed to click. Most teams have a bug tracking tool that anyone can log into and see. Yet, how often have you been asked for a bug status report when the person could have just logged into the tool and found out? In my case it was because the regular pattern of communication is to go to the PM to find status, rather than going into a tool. Similarly we had a wiki that showed the status of various modules. Guess what? Key people didn&#8217;t read the wiki. They would email the PM instead.</p>
<p>So, does your application support alternate modes of interaction?</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/42/usage-patterns-or-why-you-need-to-support-alternate-modes-of-interaction/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The power of ownership: Why themes matter</title>
		<link>http://toolsforagile.com/blog/archives/22/the-power-of-ownership-why-themes-matter</link>
		<comments>http://toolsforagile.com/blog/archives/22/the-power-of-ownership-why-themes-matter#comments</comments>
		<pubDate>Tue, 30 Jan 2007 19:42:52 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Product design]]></category>

		<guid isPermaLink="false">http://www.silverstripesoftware.com/blog/archives/22</guid>
		<description><![CDATA[Theming, the ability to change the look of your product doesn&#8217;t matter. Right? Wrong! In one sense, the ability to change the look of your software, the colours and the graphics and the fonts, is the most frivolous of features. It adds zero functionality to the product. Worse, most users are not designers and end [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F22%2Fthe-power-of-ownership-why-themes-matter&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p>Theming, the ability to change the look of your product doesn&#8217;t matter. Right? Wrong!</p>
<p>In one sense, the ability to change the look of your software, the colours and the graphics and the fonts, is the most frivolous of features. It adds zero functionality to the product. Worse, most users are not designers and end up creating terrible themes. Why allow the users to mess it up when you could get your team of ultra-talented desingers to create a look that works for everyone?</p>
<p><span id="more-22"></span></p>
<p>Because software is used by humans, not machines, and humans have a craving for personalisation. Personalisation allows the user to feel like the software is theirs.</p>
<p>A lot of people have figured this out for consumer software. I can <a title="Windows XP themes" href="http://www.google.co.in/search?q=windows+xp+themes&#038;start=0&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-a&#038;rls=org.mozilla:en-US:official">theme my GUI</a>, <a title="Windows shells" href="http://shells.loose-screws.com/">change my shell</a>, even <a title="The microwave PC" href="http://www.engadget.com/2005/04/18/the-microwave-pc/">mod my PC</a>. And dont even get me started on mobile phones. Did you know that people actually pay money to change the way their phone rings? Of course you did. <a title="Ring tone market note" href="http://www.caslon.com.au/ringtonesnote.htm">A few billion dollars worth of money</a>. Just to change the way it sounds when a call comes in. Then add in all the other non-tech stuff that people like to personalise, <a title="Chip Foose" href="http://www.chipfoose.com/">like cars</a>, <a title="Interior decoration" href="http://www.google.co.in/search?q=interior+decoration&#038;start=0&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-a&#038;rls=org.mozilla:en-US:official">homes</a>, and even their <a title="Tattoo" href="http://en.wikipedia.org/wiki/Tattoo">own bodies</a>.</p>
<p>So people love to personalise. It could be something as simple as ringtones or as complex as the case mods. The product looks the way we want it to look, it reflects our identity. Personalisation at any level allows us to feel a connection to the product we use. Ultimately, a positive connection between user and product is what keep the user feeling happy about using the product. Any feature that creates this positive response is a feature worth having, and personalisation is one of those.</p>
<p>All that is great for consumer software, I hear you say. What about business software? Traditional thinking is that business software should be functional, not aesthetic. When we think about business, the words that come to mind are  &#8220;boring&#8221;, &#8220;uniform&#8221;, &#8220;standard&#8221;. As a result, business software is usually just that. Boring, uniform and standard. But you know what? Business software is also used by&#8230; humans! Admittedly to do boring business tasks, but that&#8217;s no reason for business software to be faceless. Why can&#8217;t the software wear the company colours? Why can&#8217;t the software look different for evey team? Why is it so damn difficult to theme most business software?</p>
<p>Maybe one day we will have business software that can be easily themed. Business software that we feel is ours. Business software that we fell that we own. Business software that is actually fun to use. Maybe one day.</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/22/the-power-of-ownership-why-themes-matter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Long Tail of Features: Why you should make your product hackable</title>
		<link>http://toolsforagile.com/blog/archives/21/the-long-tail-of-features-why-you-should-make-your-product-hackable</link>
		<comments>http://toolsforagile.com/blog/archives/21/the-long-tail-of-features-why-you-should-make-your-product-hackable#comments</comments>
		<pubDate>Thu, 18 Jan 2007 10:31:40 +0000</pubDate>
		<dc:creator>siddharta</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Long Tail]]></category>
		<category><![CDATA[Product design]]></category>

		<guid isPermaLink="false">http://www.silverstripesoftware.com/blog/archives/21</guid>
		<description><![CDATA[Simple or feature rich? Usable or complex? It&#8217;s time to address a most perplexing question — Should you make your product simple and usable or feature rich and complex? On one side are companies like Apple and 37Signals. Give the users simplicity, they say. On the other, Microsoft and most Linux apps. Give the user [...]]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ftoolsforagile.com%2Fblog%2Farchives%2F21%2Fthe-long-tail-of-features-why-you-should-make-your-product-hackable&amp;layout=standard&amp;show_faces=no&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:25px"></iframe><p><a title="Getting Real: The problem with preferences" href="http://www.37signals.com/svn/archives2/getting_real_the_problem_with_preferences_interface_design_and_the_customer_experience.php">Simple</a> or <a title="Joel; Strategy Letter IV" href="http://www.joelonsoftware.com/articles/fog0000000020.html">feature rich</a>? Usable or <a title="Don Norman: Simplicity Is Highly Overrated" href="http://www.jnd.org/dn.mss/simplicity_is_highly.html">complex</a>? It&#8217;s time to address a most perplexing question — Should you make your product simple and usable or feature rich and complex?</p>
<p>On one side are companies like <a title="Apple homepage" href="http://www.apple.com">Apple</a> and <a title="37 signals" href="http://www.37signals.com">37Signals</a>. Give the users simplicity, they say. On the other, <a title="Microsoft" href="http://www.microsoft.com/">Microsoft</a> and most Linux apps. Give the user features, is their motto. And I? I say, <a title="Long tail blog" href="http://longtail.typepad.com/">hurrah for the long tail</a>.</p>
<p><span id="more-21"></span></p>
<p>You see, both are right in their own way. Users want simplicity. Users want tons of features too, even if they arent going to use them all. Also, every user has a different ton of features that they want. Like Joel says, everyone wants 20% of the features, but each want a different 20%. So how do we go about solving this dilemma?</p>
<p><img id="image20" alt="The long tail of features" src="http://www.silverstripesoftware.com/blog/wp-content/uploads/2007/01/long-tail.png" /></p>
<p>Above is a diagram that many of you might recognise as the Long Tail power curve. On the X axis are different features. It&#8217;s shown as a continuous axis for convenience. On the Y axis is the number of users using that feature. Its sorted such that more popular features are on the left. In red is what I will call the &#8220;hit&#8221; features that everyone will use. In yellow are the &#8220;niche&#8221; features that a small number of people will use.</p>
<p>The Apple philosophy is to have only the red, &#8220;hit&#8221; features that most want and leave out the rest to enable simplicity. The Microsoft philosophy is to have both &#8220;hit&#8221; and some &#8220;niche&#8221; features. They can serve more users this way, but compromise on simplicity. You see, unlike book or music sales, having more features has a side-effect on usability, so its not a simple question of just having more features.</p>
<p>Thats why your product must be hackable. I&#8217;m talking about hackable in the sense of extensible, of leaving room in the product to do things that it was not initially designed to do.</p>
<p>You can now design your product to implement the hit features, but leave it hackable so that the community can implement the niche features. Suddenly, your product can handle both. Not only that, users happy with the features in the product will be happy with the usability of the core product. Users wanting to get their hands dirty can do that too.</p>
<p>An example: <a title="Catalyst" href="http://www.silverstripesoftware.com/blog/archives/15">I wrote before</a> that Catalyst does only project management. Thats the simple and usable part. <em>But Catalyst also has a REST based web API through which you can access the data in scripts outside the tool</em>.</p>
<p>Someone asked me if Catalyst can integrate with source control. I was thinking about it when I realised that <a title="SVN Book - Pre &#038; Post commit hooks" href="http://svnbook.red-bean.com/en/1.1/ch05s02.html">SVN has pre- and post-commit hooks</a>. What if you could write a script which looks at the log message and if it found the text &#8220;Fixed Bug#xx&#8221;, took the Catalyst data via the API and set the corresponding task to done. How cool would that be? This is something that would be hard to do as a core feature, and will almost definately impact usability, but is great as a hack. And it wouldn&#8217;t be possible without leaving the data open for access via the API.</p>
<p>Another example: Export. The problem with export is that every tool has its own import format. Should we export to CSV? XML? Excel? There is no standard format that other tools can read. One solution is to implement a host of export formats for each tool. But using the API, you can write a script to get the data and save it in whatever format you want. What if you cannot write such scripts? Thats where the community comes into play. Only one person needs to create the hack and everyone else can use it.</p>
<p>Most companies attack users for using the product in ways it was not designed to be used. This is unfortunate because these are very passionate users. Don&#8217;t do it. Go a step further and make your product hackable. That way you can provide a great core experience and have the community extend it with cool hacks.</p>
<p>With all that, I&#8217;m happy to announce that once the beta period starts, I will be adding a hacks section to the site to document some of the cool stuff you can do with Catalyst. Happy hacking!<br />
<em><br />
</em>PS: In this article, I&#8217;m talking about hacking, not cracking. Dont confuse one for the other.</p>
]]></content:encoded>
			<wfw:commentRss>http://toolsforagile.com/blog/archives/21/the-long-tail-of-features-why-you-should-make-your-product-hackable/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

