<?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>Tyner Blain &#187; Agile Project: Ratings</title>
	<atom:link href="http://tynerblain.com/blog/category/software-development/agile/ap-ratings/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:38:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Nexus Friday Favorites</title>
		<link>http://tynerblain.com/blog/2007/06/15/nexus-friday-favorites-1/</link>
		<comments>http://tynerblain.com/blog/2007/06/15/nexus-friday-favorites-1/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 04:32:16 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[managing data]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/06/15/nexus-friday-favorites-1/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F15%2Fnexus-friday-favorites-1%2F", "style": "big", "title": "Nexus Friday Favorites" }); Each Friday, we highlight some of our favorite articles, bundles or reviews that people have submitted to nexus. Check out this week&#8217;s Friday Favorites&#8230; Here are my favorites from the latest articles submitted at nexus. Check them out, rate them, review them. Rules of Thumb [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F06%252F15%252Fnexus-friday-favorites-1%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20Friday%20Favorites%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F15%2Fnexus-friday-favorites-1%2F", "style": "big", "title": "Nexus Friday Favorites" });</script></div>
<p><img alt="nexus logo" title="nexus logo" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<p>Each Friday, we highlight some of our favorite articles, bundles or reviews that people have submitted to nexus.  Check out this week&#8217;s Friday Favorites&#8230;</p>
<p><span id="more-518"></span></p>
<p>Here are my favorites from the latest articles submitted at nexus.  Check them out, rate them, review them.</p>
<p><strong><a title="process improvement article" href="http://tynerblain.com/nexus/article/show/68-rules-of-thumb-the">Rules of Thumb &#8211; the three boxes</a></strong>, submitted by nilsdavis under <a title="product management articles at nexus" href="http://tynerblain.com/nexus/article/product_management/latest">product management</a>.<br />
To be successful, a product must not only do a better job on the process than what it is replacing (by a factor of 10 in some dimension), but also connect to the preceding and following processes without an impedance mismatch.</p>
<p><strong><a title="problem solving meetings" href="http://tynerblain.com/nexus/article/show/57-process-for-problem-solving-meetings">Process for Problem-Solving Meetings</a></strong>, submitted by rcauvin under <a title="latest project management articles" href="http://tynerblain.com/nexus/article/project_management/latest">project management</a>.</p>
<p>In <em>How to Make Meetings Work</em>, Michael Doyle and David Straus detail a process for solving problems in meetings.  This blog entry from the Cauvin blog summarizes the process and draws parallels to the product development process.</p>
<p><strong><a title="workflow testing approaches" href="http://tynerblain.com/nexus/article/show/69-four-implementation-styles-for-workflow">Four Implementation Styles for Workflow Tests</a></strong>, submitted by scott.sehlhorst under <a title="latest testing articles at nexus" href="http://tynerblain.com/nexus/article/testing/latest">testing</a>.</p>
<p>Article compares different approaches to testing the workflow of an application &#8211; specifically a web application.  Detailed analysis of the maintenance &#038; skill level tradeoffs for each approach.  Also touches on Selenium and Watir approaches.</p>
<p><strong><a title="contextual analysis of searching" href="http://tynerblain.com/nexus/article/show/49-four-modes-of-seeking-information">Four Modes of Seeking Information and How to Design For Them</a></strong>, submitted by scott.sehlhorst under <a title="latest interaction design articles" href="http://tynerblain.com/nexus/article/interaction_design/latest">interaction design</a>.</p>
<div class="body">
<div id="abstract_49" class="abstract">Good information architecture article by Donna Maurer.Donna characterizes information seeking as happening in one of four modes (from the perspective of the seeker)</p>
<ol>
<li>Known-item</li>
<li>Exploratory</li>
<li>Don&#8217;t know what you need to know</li>
<li>Re-finding</li>
</ol>
</div>
</div>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+Friday+Favorites+http%3A%2F%2Fbit.ly%2FfvsbnO+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/06/15/nexus-friday-favorites-1/&amp;t=Nexus+Friday+Favorites" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/06/15/nexus-friday-favorites-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Launches!</title>
		<link>http://tynerblain.com/blog/2007/06/11/nexus-launches/</link>
		<comments>http://tynerblain.com/blog/2007/06/11/nexus-launches/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 03:55:47 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/06/11/nexus-launches/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F11%2Fnexus-launches%2F", "style": "big", "title": "Nexus Launches!" }); We&#8217;ve launched nexus today! We also fixed a big security hole and added the last of our early features. New Feature We added RSS feeds to nexus today. You can subscribe via the links in the sidebar for a feed of the latest articles, latest bundles, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F06%252F11%252Fnexus-launches%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20Launches%21%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F11%2Fnexus-launches%2F", "style": "big", "title": "Nexus Launches!" });</script></div>
<p><img alt="nexus logo" title="nexus logo" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<p>We&#8217;ve launched <a title="nexus home page" href="http://tynerblain.com/nexus/">nexus</a> today!  We also fixed a big security hole and added the last of our early features.</p>
<p><span id="more-514"></span></p>
<h2>New Feature</h2>
<p>We added RSS feeds to nexus today.  You can subscribe via the links in the sidebar for a feed of the latest articles, latest bundles, or latest reviews.  The RSS feeds work just like the ones for your favorite blogs.</p>
<p>We&#8217;ve also added a help topic showing how to submit new articles, as well as a topic showing how to report bugs or request features (send an email to nexus at tynerblain.com).</p>
<p>We&#8217;ve also made a couple UI tweaks &#8211; the main one being that the drag-and-drop images now only appear for items in a bundle when the user is authorized to re-order the items.</p>
<h2>Security Hole Plugged</h2>
<p>There was a big giant security hole in nexus &#8211; anyone could delete items from bundles.  Not just the item owner, or the bundle owner, or even registered users &#8211; anyone.  Thanks to whoever it was that uncovered that bug for us.  In the future &#8211; I&#8217;d rather get an email about a security hole than discover it &#8220;the hard way.&#8221;  Nonetheless, the hole is closed now (I think).</p>
<h2>Next for Nexus</h2>
<p>There are no current plans to add updates to nexus &#8211; but we&#8217;re opening the doors to user requests.  I will continue to add content to nexus, as will you, hopefully.  As requests come in to make updates we will accommodate them as best we can.  Please let us know (in comments on this article, or via email) what else you would like to see in nexus.</p>
<h2>Next for the Tyner Blain Blog</h2>
<p>Over the last two months, we&#8217;ve blogged solely about the nexus project &#8211; and that has been very successful from our perspective.  We&#8217;ve had a lot of involvement from readers helping us to design nexus.  I&#8217;ve made some great contacts and had some great conversations with people.  And our subscriber base has continued to grow (over 10% since this project started).</p>
<p>Now that we have nexus available as a mechanism for <em>everyone</em> to promote great content, we&#8217;re going to switch back to the style of blogging we had been doing before.  One thing I would like to do is dedicate one post per week to showcasing my favorite finds from nexus.  I&#8217;ve subscribed to the <a title="latest articles at nexus - rss feed" href="http://feeds.feedburner.com/LatestNexusArticles">article feed at nexus</a>, which will help me stay on top of what&#8217;s happening.</p>
<p>I&#8217;m way overdue to respond to several &#8220;please look at this&#8221; emails including some site reviews and announcements that people have requested.  I intend to cover these amidst other &#8220;classic&#8221; Tyner Blain articles.  And I&#8217;m excited to get back to the more regular writing.</p>
<h2>Next for Tyner Blain</h2>
<p>We&#8217;re starting a new project this week, but it isn&#8217;t one that we&#8217;ll be sharing in the same way as nexus.  We&#8217;re continuing to learn from the nexus project and applying that learning to our new projects moving forward.</p>
<p>Thanks again to everyone who has helped make nexus a reality &#8211; especially the most vocal contributors and early adopters.  If you haven&#8217;t been using nexus because you were waiting for it to &#8220;stabilize&#8221; &#8211; wait no longer &#8211; <a title="nexus signup page" href="http://tynerblain.com/nexus/account/signup">sign up today</a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+Launches%21+http%3A%2F%2Fbit.ly%2Fgu9yAS+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/06/11/nexus-launches/&amp;t=Nexus+Launches%21" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/06/11/nexus-launches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Make a Wish For What You Want</title>
		<link>http://tynerblain.com/blog/2007/06/06/nexus-make-a-wish/</link>
		<comments>http://tynerblain.com/blog/2007/06/06/nexus-make-a-wish/#comments</comments>
		<pubDate>Thu, 07 Jun 2007 04:08:46 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/06/06/nexus-make-a-wish/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F06%2Fnexus-make-a-wish%2F", "style": "big", "title": "Nexus - Make a Wish For What You Want" }); Today we did a little refactoring of code, but otherwise took a quick break from development of nexus. If you&#8217;ve ever had writer&#8217;s block, or struggled with a tough programming or representational problem, you know that one way to [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F06%252F06%252Fnexus-make-a-wish%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Make%20a%20Wish%20For%20What%20You%20Want%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F06%2Fnexus-make-a-wish%2F", "style": "big", "title": "Nexus - Make a Wish For What You Want" });</script></div>
<p><img title="make a wish" alt="make a wish" src="http://sehlhorst.smugmug.com/photos/160331059-M.jpg" /></p>
<p>Today we did a little refactoring of code, but otherwise took a quick break from development of <a title="nexus home page" href="http://tynerblain.com/nexus/">nexus</a>.</p>
<p>If you&#8217;ve ever had writer&#8217;s block, or struggled with a tough programming or representational problem, you know that one way to make progress is to walk away and then walk back.  We did that today and reached a couple conclusions.</p>
<p><span id="more-512"></span></p>
<h2>Evaluating the Goals Behind Nexus</h2>
<p>When we identified our <a title="corporate goal definition" href="http://tynerblain.com/blog/2007/04/19/apr-corporate-goals/">corporate goals for nexus</a>, one goal was technology evaluation.  We&#8217;re comfortable that we know enough about Ruby on Rails to make informed decisions about using it in future projects.  In short, we like the technology a lot.  There is enough of a community of developers to get help when we need it.  The deployment of updates to a working site is just fantastic.  The language (Ruby) and framework (Rails) are easy to learn.  This goal has been met &#8211; and while additional learning is required, we have enough experience now to know that we like the technology.</p>
<p>The other goal is to make it easier for people to find great content.  One thing We&#8217;ve stressed at Tyner Blain when defining requirements and solutions is that the solution isn&#8217;t always best done with software.  Making nexus better may mean adding more capabilities to the site.  It may mean adding more content.  It may mean promotion.</p>
<h2>Taking A Step Back</h2>
<p>Today&#8217;s question looking for an inspiring answer was &#8220;What else does nexus need before the beta release?&#8221;  There was an obvious answer of &#8220;visual design work, and possibly interaction design improvements.&#8221;  But what about additional capabilities?   If you could make a wish for what you want at nexus, what would it be &#8211; new capabilities, new content?</p>
<p>Roger suggested earlier in the project that we should focus on the area of greatest risk.  My intuition is that the challenge now is to achieve a critical mass of community for nexus to become a vibrant and dynamic place to find great stuff.</p>
<p>We currrently have 18 users who have collectively read 33 articles 184 times, submitting 63 ratings and writing 16 reviews.  This is a great start for a self-professed <em>alpha</em> product/site.  My intuition is that we need <strong>five times those numbers</strong> at a minimum to achieve the scale we need for people to actively seek out the nexus as a place to find and contribute great content.</p>
<p>To that end, as a product-manager / dictator, I intend to focus my energies for the rest of the week on growing the content base and trying to get more people to rate and review articles.  We will also fill out the rest of the help documentation and work on minor improvements to the user interface.  If all goes well, we&#8217;ll remove the &#8220;alpha&#8221; label and become a beta (or &#8220;real&#8221; site).</p>
<h2>Any Last Requests?</h2>
<p>Before we issue a &#8220;feature complete&#8221; fiat, we want to hear back from you &#8211; what else do you think we need to have before we consider nexus to be complete enough to launch?</p>
<p>Comment on this article and lets get the discussion started!</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Make+a+Wish+For+What+You+Want+http%3A%2F%2Fbit.ly%2FeYKITC+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/06/06/nexus-make-a-wish/&amp;t=Nexus+%E2%80%93+Make+a+Wish+For+What+You+Want" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/06/06/nexus-make-a-wish/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Help Documents</title>
		<link>http://tynerblain.com/blog/2007/06/05/nexus-help-documents/</link>
		<comments>http://tynerblain.com/blog/2007/06/05/nexus-help-documents/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 04:55:57 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/06/05/nexus-help-documents/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F05%2Fnexus-help-documents%2F", "style": "big", "title": "Nexus - Help Documents" }); Nexus Help Document System Operational Today we fixed a couple bugs, tweaked the UI a little, and implemented the functionality to support help documentation. Help Documents We&#8217;ve implemented a simple help document system &#8211; both for creation/maintenance and presentation of help documents. The screenshot [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F06%252F05%252Fnexus-help-documents%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Help%20Documents%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F05%2Fnexus-help-documents%2F", "style": "big", "title": "Nexus - Help Documents" });</script></div>
<p><img alt="nexus logo" title="nexus logo" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<h2>Nexus Help Document System Operational</h2>
<p>Today we fixed a couple bugs, tweaked the UI a little, and implemented the functionality to support help documentation.</p>
<p><span id="more-511"></span></p>
<h2>Help Documents</h2>
<p>We&#8217;ve implemented a simple help document system &#8211; both for creation/maintenance and presentation of help documents.</p>
<p><img alt="nexus help system" title="nexus help system" src="http://sehlhorst.smugmug.com/photos/160046164-M.jpg" /></p>
<p>The screenshot (of the live site) shows the first help item expanded.  Each help document is written either in terms of &#8220;<em>how do I &#8230;</em>&#8221; or &#8220;<em>why can&#8217;t I &#8230;</em>&#8221;  this goal-directed form of help documentation makes it easy for people to understand how to interact with the site.  [Note: most of the content is "tbd" at the time of this article, but will be updated asap.]</p>
<h2>Maintenance</h2>
<p>The maintenance aspect of the help system leverages two pieces of functionality that were already in place within the site.</p>
<p>First, we used the drag and drop re-ordering of bundle items technique to make it easy for an admin to re-order the help documents.  Second, we leveraged the rich-text editor already in place to allow for more consumable help documents.  We extended it with the ability to display images (like this blog), to be able to make the help docs even more useful.</p>
<h2>Design For The Future</h2>
<p>One thing we did in the design was allow for multiple users to create and modify help documents.  We implemented this by creating <em>versioned</em> help documents.  We currently prevent this from happening by only allowing a site adminstrator to edit the documents.  The versioning will allow us to &#8220;roll back&#8221; to a previous version of any help document if we accidentally lose the contents of a document.</p>
<p>The help documents can also support user ratings and categorization by experience level &#8211; but both of those features are disabled right now.  They can easily be enabled if we feel they will become valuable in the future.</p>
<h2>Change to the Navigation</h2>
<p>The <em>Top Users</em> item was removed from the navigation bar, based on some private user feedback expressing concern that some people might not want to have their &#8220;scores&#8221; displayed.  Since this screen doesn&#8217;t really provide much value, it has just been disabled.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Help+Documents+http%3A%2F%2Fbit.ly%2Ffz0ZBD+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/06/05/nexus-help-documents/&amp;t=Nexus+%E2%80%93+Help+Documents" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/06/05/nexus-help-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Minor Updates</title>
		<link>http://tynerblain.com/blog/2007/06/04/nexus-minor-updates/</link>
		<comments>http://tynerblain.com/blog/2007/06/04/nexus-minor-updates/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 04:19:49 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/06/04/nexus-minor-updates/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F04%2Fnexus-minor-updates%2F", "style": "big", "title": "Nexus - Minor Updates" }); In the announcement last week about the third release of the nexus alpha, we mentioned that we would focus on minor improvements, refactoring, and content this week. Here&#8217;s an update about what we did today &#8211; we pushed two updates to the site &#8211; [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F06%252F04%252Fnexus-minor-updates%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Minor%20Updates%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F04%2Fnexus-minor-updates%2F", "style": "big", "title": "Nexus - Minor Updates" });</script></div>
<p><img alt="front loader" title="front loader" src="http://sehlhorst.smugmug.com/photos/159694368-M.jpg" /></p>
<p>In the announcement last week about the <a title="announcing nexus" href="http://tynerblain.com/blog/2007/06/01/nexus-alpha-3-release/">third release of the nexus alpha</a>, we mentioned that we would focus on minor improvements, refactoring, and content this week.</p>
<p>Here&#8217;s an update about what we did today &#8211; we pushed two updates to the site &#8211; one this morning, and one this evening.</p>
<p><span id="more-510"></span></p>
<h2>Morning Updates of Nexus</h2>
<p>This morning we pushed some bug fixes to the site.</p>
<ol>
<li>When logging out, immediately after viewing an &#8220;off-site&#8221; article, the nexus page would immediately navigate to that off-site article and re-load it.  This has been fixed.  Nexus will now take the user to the main page on logout.</li>
<li>When adding an empty (placeholder) item to a bundle that already had items, at least one of which was already associated with an article, the new item would also be automatically associated with the last article in the list.  This has been resolved, and new &#8220;empty&#8221; items can be added to bundles.</li>
<li>The list of items in a bundle can be re-ordered.  Only the creator/owner of a bundle should be able to re-order the items.  Any user (even unregistered users) could re-order the items in a bundle.  This has been fixed.  Now, only the owner of a bundle can re-order the items in it.  There is still a low-priority bug in that the &#8220;<a title="using drag and drop to re-order a list on nexus" href="http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/">re-ordering handles</a>&#8221; are still visible, even when a user is not allowed to re-order a bundle.</li>
<li>When assigning an article to a placeholder item in an existing bundle, there was a rendering error that caused text on the page to be improperly formatted (rendering javascript as raw text).  This has been fixed.</li>
<li>The stylesheet for formatting the rich-text editing windows was not being properly referenced, so text within that control was unduly small (even though it was &#8220;normal sized&#8221; after saving.  This was caused by the differences between the dev box (windows) and the server (linux) using different directory mechanisms.  This has been resolved.</li>
</ol>
<h2>Afternoon Updates of Nexus</h2>
<p>I added four more articles to nexus, focusing on project management.</p>
<p>While adding those articles and validating the bug-fixes from the morning, I concluded that the need for having help documents for users had reached &#8220;critical mass.&#8221;  The easiest implementation of help documents (balancing speed of help-doc creation with time spent to write the code, if any, to display them) requires the site to allow only a single user (me) to be able to add help documents.  A role-based authorization approach to this would make it simple, and would also allow me to implement the &#8220;delete an article&#8221; functionality that we have known was needed for a while.</p>
<p>During the afternoon, I implemented a simple role-based authorization model and made my account an administrator.  I also enabled the deletion functionality (which was previously written, but not exposed) for users with the admin role.  In the future, this will be easily extensible to a &#8220;moderator&#8221; role, when the site grows to the point that additional people are needed to help with this.  The deletion was implemented such that it suppresses articles that are &#8220;deleted&#8221; from display and search, instead of literally deleting them from the database.  This allows the possibility of future &#8220;undelete&#8221; capabilities, and also enforces the &#8220;unique URL&#8221; rule for articles &#8211; users will not be able to submit an article that was previously deleted.</p>
<h2>Other Activities</h2>
<p>I also reviewed the RSS 2.0 specifications for generating a subscribable feed.  A standard feed would be straightforward to create, and would work just like the feeds you normally get from blogs or news sites.  I also explored the RSS extensions that Google Base has created and the SSE extensions created by Microsoft.  Neither offers a compelling technical opportunity for nexus at this time.</p>
<p>I&#8217;ve also been studying more Ruby on Rails, to get better at implementation and to be able to identify weaknesses in the current solution.</p>
<h2>Next for Nexus</h2>
<p>The next step for nexus will be to implement the help-documentation functionality and begin creating <a title="Writing goal-directed docs" href="http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/">goal-directed help documents</a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Minor+Updates+http%3A%2F%2Fbit.ly%2FgE0LKN+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/06/04/nexus-minor-updates/&amp;t=Nexus+%E2%80%93+Minor+Updates" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/06/04/nexus-minor-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Alpha Release 3 Goes Live</title>
		<link>http://tynerblain.com/blog/2007/06/01/nexus-alpha-3-release/</link>
		<comments>http://tynerblain.com/blog/2007/06/01/nexus-alpha-3-release/#comments</comments>
		<pubDate>Sat, 02 Jun 2007 03:17:18 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/06/01/nexus-alpha-3-release/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F01%2Fnexus-alpha-3-release%2F", "style": "big", "title": "Nexus - Alpha Release 3 Goes Live" }); Release 3 of nexus just went live! Our initial alpha release was on May 17th after one month of requirements, design, implementation and testing. The next release of nexus was on May 22nd after five days of implementation and minor tweaks [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F06%252F01%252Fnexus-alpha-3-release%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Alpha%20Release%203%20Goes%20Live%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F06%2F01%2Fnexus-alpha-3-release%2F", "style": "big", "title": "Nexus - Alpha Release 3 Goes Live" });</script></div>
<p><img title="nexus logo" alt="nexus logo" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<h2>Release 3 of <a title="nexus main page" href="http://tynerblain.com/nexus/">nexus</a> just went live!</h2>
<ul>
<li>Our <a title="nexus first alpha release" href="http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/">initial alpha release</a> was on May 17th after one month of requirements, design, implementation and testing.</li>
<li>The <a title="nexus Second Release announcement" href="http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/">next release of nexus</a> was on May 22nd after five days of implementation and minor tweaks to prioritization.</li>
<li>This release of nexus took ten days, and included significant functionality &#8211; as much or more than the first release.</li>
</ul>
<p>Read on to get a quick overview of the changes.</p>
<p><span id="more-508"></span></p>
<h2>New capability for nexus users</h2>
<p>The primary thrust of this release was support for <a title="Third release agile prioritization" href="http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/">the creation of bundles of articles</a>.  The secondary goal was to set up <a title="what is rss?" href="http://www.copyblogger.com/what-the-heck-is-rss/">RSS feeds</a> for the articles.  We have released support for bundle creation and management, but not RSS feeds.</p>
<h2>New Features now live in nexus</h2>
<p>As part of implementing the <a title="nexus use case examples" href="http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/">bundle-creation and consumption use cases</a>, we implemented several features.  We also re-factored some of the code as part of our implementation, and re-factored some design elements as well.  Here&#8217;s a list of the features that have been added (and things that have been noticeably changed) since the second release.  A brief description accompanies each feature.</p>
<ul>
<li>The main navigation bar now has links for articles and bundles, as well as a &#8216;your page&#8217; where you can keep track of the content you submit and create.  Previously there were two links for articles (latest first and sorted by rating).</li>
<li>The <a title="faceted navigation" href="http://tynerblain.com/blog/2007/05/16/apr-ia-faceted-navigation/">faceted navigation bars</a> have been generalized.  Previously, they were used to filter and sort articles.  Now they can be used for articles and bundles.  They are also available for managing the content that you create.</li>
<li>Bundles can be created and edited by users.  Those bundles can be identified as <em>allowing</em> or <em>disallowing</em> other registered users to contribute to them.  When other <a title="nexus registration" href="http://tynerblain.com/nexus/account/signup">registered users</a> are allowed to contribute, they can add items to your bundle, associate articles with those items, and delete those items.  Other users can not otherwise edit the bundle.  Note: anyone can currently re-order the items in any bundle &#8211; that slipped through the cracks for this release.</li>
<li>Registered users can create items for bundles.  Those items can be created for any bundle that the user created, or any bundle that allows collaboration.  The items have subjects and descriptions.</li>
<li>Registered users can associate articles with items from any screen that displays articles, without leaving the screen.  Whenever an article is displayed, a link is presented to registered users to <em>add this article to a bundle</em>.  When the user clicks on that link, a set of controls are presented to them without leaving the page.  The user can select to add the article to any item that they have created, or to add a new item to an existing bundle with the article automatically associated, or to create a new bundle.</li>
<li>A bundle can hold any number of items, with or without associated articles.  This design should support people who use an &#8220;outline first&#8221; approach to creating bundles.  People will be able to create items that act as placeholders for each article they want to include, and later associated articles with those items.  Or they can create a bundle, and add articles (automatically creating items) as they go.</li>
<li>A user can also very easily change the article associated with a particular item.  If you create a bundle and link to several articles, then decide to replace those articles with better ones, it is trivially easy.</li>
<li>All of the &#8220;long text entry&#8221; fields in nexus now support a rich text editor.  These are fields like the description of a bundle, or the abstract of an article.  Now you can format your text with bold, italic, and indented text &#8211; or create bulleted or numbered lists.</li>
<li><em />A few <em>editing</em> functions now take place immediately within the page you are on to improve usability by maintaining context and improving perceived performance.  For example, editing the contents of an item happens within the page for viewing the bundle that the item is in.</li>
<li>Login / Logout navigation has been improved.  You should now be able to stay on the page you were viewing after logging in.  Several other small (automatic) navigation changes were made.</li>
<li>User scoring has been modified to give credit for rating and reading articles and creating bundles.</li>
<li>Nexus now enforces that the URL for submitted articles must be unique.</li>
</ul>
<h2>What&#8217;s Next for nexus?</h2>
<p>Next week will initially focus an iteration of &#8216;pure improvement.&#8217;  Increased test coverage, UI refinement, minor feature additions, and content additions will be the goal.  The site truly has enough functionality to be compelling &#8211; it needs some TLC before announcing a beta release.  Next week, while making these improvements, we&#8217;ll also be exploring new ideas and prioritization &#8211; to see if we can identify ideas that should be present before a beta (e.g. public) release.<br />
So submit some great articles, and create some bundles.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Alpha+Release+3+Goes+Live+http%3A%2F%2Fbit.ly%2FeLlC0Z+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/06/01/nexus-alpha-3-release/&amp;t=Nexus+%E2%80%93+Alpha+Release+3+Goes+Live" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/06/01/nexus-alpha-3-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Drag and Drop</title>
		<link>http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/</link>
		<comments>http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/#comments</comments>
		<pubDate>Thu, 31 May 2007 04:16:50 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[design ideas]]></category>
		<category><![CDATA[drag and drop affordance]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F30%2Fnexus-drag-and-drop%2F", "style": "big", "title": "Nexus - Drag and Drop" }); Implementation continues on nexus, and we&#8217;ve re-factored the way that items in a bundle are ordered, as mentioned in our earlier post. We talk a little about affordance, and show a couple screen shots. Drag and Drop Affordances An affordance, to oversimplify, is [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F30%252Fnexus-drag-and-drop%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Drag%20and%20Drop%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F30%2Fnexus-drag-and-drop%2F", "style": "big", "title": "Nexus - Drag and Drop" });</script></div>
<p><img title="drag" alt="drag" src="http://sehlhorst.smugmug.com/photos/157993584-M.jpg" /><img title="drop" alt="drop" src="http://sehlhorst.smugmug.com/photos/157993625-M.jpg" /></p>
<p>Implementation continues on nexus, and we&#8217;ve re-factored the way that <a title="more progress on nexus" href="http://tynerblain.com/blog/2007/05/29/nexus-more-progress/">items in a bundle are ordered</a>, as mentioned in our earlier post.  We talk a little about affordance, and show a couple screen shots.</p>
<p><span id="more-507"></span></p>
<h2>Drag and Drop Affordances</h2>
<p>An affordance, to oversimplify, is an appearance of an object that causes users to intuitively know how to interact with it.  We found a couple good articles on this challenge and posted them to <a title="nexus main page" href="http://tynerblain.com/nexus/">nexus</a>.</p>
<p>Drag and drop user interface elements are becoming more common on the web.  The challenge is that many implementations do not make it obvious to users that the elements can be dragged and dropped.  In the best case, users are missing out on powerful functionality.  In the worst case, the user interface is frustratingly unusable.  Here are the nexus links for the two articles we liked.  Please read them, rate them, and comment on them.</p>
<ul>
<li><a title="drag and drop controls" href="http://tynerblain.com/nexus/article/show/29-drag-and-drop-controls">Drag and Drop Controls</a></li>
<li><a title="Drag and drop article" href="http://tynerblain.com/nexus/article/show/28-drag-n-drop-is-invisible">Drag &#8216;n Drop is Invisible to Users</a></li>
</ul>
<h2>Nexus Design Choices</h2>
<p>The design decisions that we came away with from reading these articles were</p>
<ol>
<li>Include a text explanation like &#8220;drag to re-order&#8221; so that people would know that it was an option.</li>
<li>Create an image that conveys the ability to drag to re-order the items.</li>
</ol>
<p>Here are the screen shots of what we came up with for our first usable iteration on the task of re-ordering items in a bundle:</p>
<p>1. Two items, in order.</p>
<p><img title="before" alt="before" src="http://sehlhorst.smugmug.com/photos/157996582-M.jpg" /></p>
<p>2. Dragging one of the items to re-order them.</p>
<p><img title="during" alt="during" src="http://sehlhorst.smugmug.com/photos/157996593-M.jpg" /></p>
<p>3. The two items, in the new order.</p>
<p><img title="after" alt="after" src="http://sehlhorst.smugmug.com/photos/157996605-M.jpg" /></p>
<p>The design element we created is a double-headed arrow, with some cross-bar lines that give it a tactile feel.  When you drag one element past another, the second element moves into the space previously occupied by the first element.  Screenshots don&#8217;t do it justice.  It is really cool.  Effectiveness will be determined by you &#8211; but I believe it will work.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Drag+and+Drop+http%3A%2F%2Fbit.ly%2Ff6MFdD+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/&amp;t=Nexus+%E2%80%93+Drag+and+Drop" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; More Progress on Implementation</title>
		<link>http://tynerblain.com/blog/2007/05/29/nexus-more-progress/</link>
		<comments>http://tynerblain.com/blog/2007/05/29/nexus-more-progress/#comments</comments>
		<pubDate>Wed, 30 May 2007 03:25:24 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project experiment]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[bundles]]></category>
		<category><![CDATA[items]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/29/nexus-more-progress/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F29%2Fnexus-more-progress%2F", "style": "big", "title": "Nexus - More Progress on Implementation" }); Hope you all had a great holiday weekend (or a great weekend even if not a holiday where you are). The implementation is moving forward for the bundles. The pending release now allows me to add, delete, re-order and edit items within [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F29%252Fnexus-more-progress%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20More%20Progress%20on%20Implementation%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F29%2Fnexus-more-progress%2F", "style": "big", "title": "Nexus - More Progress on Implementation" });</script></div>
<p><img title="under the hood" alt="under the hood" src="http://sehlhorst.smugmug.com/photos/148366828-M.jpg" /></p>
<p>Hope you all had a great holiday weekend (or a great weekend even if not a holiday where you are).  The implementation is moving forward for the bundles.  The pending release now allows me to add, delete, re-order and edit items within a given bundle.  The re-ordering is not good &#8211; you have to manually change the &#8220;position&#8221; of each item.  While functional, this isn&#8217;t good enough to release &#8211; so I will be refactoring this tomorrow.</p>
<p><span id="more-506"></span></p>
<h2>Progress Update</h2>
<p>The following items (from <a title="nexus implementation update" href="http://tynerblain.com/blog/2007/05/24/nexus-implementation-update/">our previous update</a>) have a first implementation complete:</p>
<ul>
<li>Each bundle is created by an individual (Paul the program manager).</li>
<li>Each bundle has a subject and description (”Intro to Use Cases” and “A tutorial that is designed…”).</li>
<li>Each bundle is composed of multiple items, and the items have an order (1,2,3,…).</li>
<li>Each item is created by an individual.</li>
<li>Bundles may allow for collaboration (multiple people submitting / editing items).</li>
<li>Bundles have categories and experience levels (”Testing,…” and “Beginner”).</li>
</ul>
<p>The following items have not yet been implemented:</p>
<ul>
<li>Each item can point to / represent / contain a single article, or it can be “empty”.</li>
<li>Bundles can be rated and reviewed by users.</li>
<li>Bundles may allow for collaboration (multiple people submitting / editing items).</li>
</ul>
<h2>How You Can Help</h2>
<p>Bundles will demonstrate their power by providing <em>vetted</em> collections of articles on a single topic.  You can help by starting to populate nexus with articles that you might want to combine into bundles.  Or you can help by submitting articles about use cases &#8211; anything to do with use cases.  The first bundle that I am going to create will be a &#8220;how to write use cases&#8221; bundle.  Many of the articles that I believe I will include are articles that I&#8217;ve written over the last 18 months.  I would <em>love it</em> if I could include other articles by other authors.</p>
<p>So &#8211; our team goal is to get a critical mass of articles about use cases &#8211; how to write them, how to use them, manage them, whatever.  Submit some articles today.  If you only submit one, that still helps a lot.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+More+Progress+on+Implementation+http%3A%2F%2Fbit.ly%2FhaPw7Z+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/29/nexus-more-progress/&amp;t=Nexus+%E2%80%93+More+Progress+on+Implementation" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/29/nexus-more-progress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Implementation Update</title>
		<link>http://tynerblain.com/blog/2007/05/24/nexus-implementation-update/</link>
		<comments>http://tynerblain.com/blog/2007/05/24/nexus-implementation-update/#comments</comments>
		<pubDate>Fri, 25 May 2007 04:34:17 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/24/nexus-implementation-update/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F24%2Fnexus-implementation-update%2F", "style": "big", "title": "Nexus - Implementation Update" }); This is a quick update on the implementation progress for the third release of nexus. For this release, we are focused on the creation and consumption of bundles of articles. Completed Work We defined an object model for representing the bundles. Bundles can be [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F24%252Fnexus-implementation-update%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Implementation%20Update%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F24%2Fnexus-implementation-update%2F", "style": "big", "title": "Nexus - Implementation Update" });</script></div>
<p><img alt="under the hood" title="under the hood" src="http://sehlhorst.smugmug.com/photos/148366828-M.jpg" /></p>
<p>This is a quick update on the implementation progress for the third release of <a title="nexus product management articles" href="http://tynerblain.com/nexus/">nexus</a>.  For this release, we are focused on the <a title="nexus use cases" href="http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/">creation and consumption of bundles of articles</a>.</p>
<p><span id="more-504"></span></p>
<h2>Completed Work</h2>
<p>We defined an object model for representing the bundles.  Bundles can be described as follows:</p>
<ul>
<li>Each bundle is created by an individual (Paul the program manager).</li>
<li>Each bundle has a subject and description (&#8220;Intro to Use Cases&#8221; and &#8220;A tutorial that is designed&#8230;&#8221;).</li>
<li>Each bundle is composed of multiple items, and the items have an order (1,2,3,&#8230;).</li>
<li>Each item is created by an individual.</li>
<li>Each item has a subject and description (&#8220;Writing Use Case Names&#8221; and &#8220;Explaining how to&#8230;&#8221;).</li>
<li>Each item can point to / represent / contain a single article, or it can be &#8220;empty&#8221;.</li>
<li>Bundles can be rated and reviewed by users.</li>
<li>Bundles may allow for collaboration (multiple people submitting / editing items).</li>
<li>Bundles have categories and experience levels (&#8220;Testing,&#8230;&#8221; and &#8220;Beginner&#8221;).</li>
</ul>
<p>Several of the implementation steps are complete:</p>
<ul>
<li>The database work to represent bundles and items and other relationships (ratings, etc).</li>
<li>The initial bundle-creation UI elements are complete.</li>
<li>Sorting and filtering of bundles is working (same as with articles).</li>
</ul>
<h2>In Design</h2>
<p>One thing that has jumped out in each design sketch of a user interface is that people will need to search for articles to add to the bundle, while still thinking about the bundle.  There are three ways we&#8217;re exploring to make this happen.</p>
<ol>
<li>Embed an &#8220;article search&#8221; screen within the &#8220;bundle creation&#8221; screen.</li>
<li>Embed some &#8220;add to bundle&#8221; widget(s) within the existing article navigation screens.</li>
<li>Create a view that displays both bundle-creation and article-exploration interfaces at the same time.</li>
</ol>
<p>I&#8217;m personally leaning towards the #2 approach.  I think that cognitively, people will put the &#8220;bundle thoughts&#8221; on hold during the &#8220;where&#8217;s that article on X&#8221; sub-task.  So leveraging the existing article-exploration setup will not only be fastest to implement, but possibly the most effective.</p>
<p>The &#8220;Items&#8221; notion above is an interesting one &#8211; it essentially exposes an implementation artifact.  We need to be able to say that an article should be in position 3 for bundle A, and position 5 for bundle B.  We also want to have placeholders for &#8220;missing articles&#8221; in someone&#8217;s series or concept.  And within a bundle, someone may describe the articles differently (in context) than the descriptions of the articles (out of context).  So the &#8220;item&#8221; is basically a wrapper and a placeholder.  It will be a design challenge to hide the <em>item</em> objects, while exposing the capabilities (ordering of articles, contextual descriptions, placeholders).</p>
<h2>In Progress</h2>
<p>The implementation of the bundle creation and editing interface/forms is currently underway.  The barebones &#8220;create a bundle&#8221; UI is done.  And a prototype for editing &#8220;in place&#8221; has shown some promise.  In-place editing allows you to change the value(s) of a given field without navigating away from your current view to an &#8220;edit form.&#8221;  Rails makes this super easy for text fields.  But not for the selection and multi-select fields we also use to specify experience level and categories.  I&#8217;ve learned enough to know that this is possible to do, and will take (me) a lot of time to learn how to do.</p>
<p>Tomorrow morning, I will explore a way to achieve a similar goal (make changes without losing context) with a different approach.  Tomorrow afternoon I&#8217;ll be immersed in <em>Pirates of the Caribbean 3</em> with half-a-dozen mutinous middle-schoolers.  And we get to see it on a DLP digital projection system at the local theater!   Aarggh!  So have a great weekend!</p>
<p>Let us know if you have any thoughts about the design approaches and decisions that have been built on the use cases.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Implementation+Update+http%3A%2F%2Fbit.ly%2FesrLJ7+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/24/nexus-implementation-update/&amp;t=Nexus+%E2%80%93+Implementation+Update" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/24/nexus-implementation-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Use Case Definition for Bundles</title>
		<link>http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/</link>
		<comments>http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/#comments</comments>
		<pubDate>Wed, 23 May 2007 23:54:31 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[use case briefs]]></category>
		<category><![CDATA[use case definition]]></category>
		<category><![CDATA[use cases]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F23%2Fnexus-bundle-use-cases%2F", "style": "big", "title": "Nexus - Use Case Definition for Bundles" }); Yesterday, we identified the high priority goal for the third release of nexus to be supporting creation of bundles of articles. In this article, we will define the use cases we need to support. Defining The Use Cases The first step [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F23%252Fnexus-bundle-use-cases%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Use%20Case%20Definition%20for%20Bundles%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F23%2Fnexus-bundle-use-cases%2F", "style": "big", "title": "Nexus - Use Case Definition for Bundles" });</script></div>
<p><img alt="bundle of books" title="bundle of books" style="width: 250px; height: 187px" src="http://sehlhorst.smugmug.com/photos/155645464-M.jpg" /></p>
<p>Yesterday, we identified the <a title="Prioritizing nexus use cases" href="http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/">high priority goal for the third release of nexus</a> to be supporting creation of <em>bundles </em>of articles.  In this article, we will define the use cases we need to support.</p>
<p><span id="more-503"></span></p>
<h2>Defining The Use Cases</h2>
<p>The <a title="How to start use cases" href="http://tynerblain.com/blog/2007/03/28/how-to-start-use-cases/">first step in defining the use cases</a> is to review the<a title="Defining the nexus scope and vision" href="http://tynerblain.com/blog/2007/04/20/apr-scope-and-vision-vote-1/"> scope and vision for the product</a>.  Once we&#8217;re sure we&#8217;re operating within the scope, we review the goals of <a title="Defining the nexus personas" href="http://tynerblain.com/blog/2007/04/23/apr-persona/">our personas</a>, and then we <a title="Defining use case names" href="http://tynerblain.com/blog/2007/04/23/apr-use-case-names/">define the use case names</a>.  The next iteration of the use cases is in the form of <a title="nexus use case briefs" href="http://tynerblain.com/blog/2007/04/24/apr-use-case-briefs/">use case briefs</a>.  And finally informal use cases.  This <a title="Agile use case development" href="http://tynerblain.com/blog/2007/04/02/agile-development-of-use-cases/">agile approach to use case definition</a> seems like a lot of work, but the mechanics don&#8217;t take very long &#8211; most of the time is actually productive time spent thinking about the use cases.  And the effort of writing a few things down introduces some implicit refactoring and editing.  An <a title="Stakeholder Analysis" href="http://tynerblain.com/blog/2007/03/13/visualize-stakeholder-analysis/">analysis of the stakeholders</a> at this stage will help identify any missing use cases &#8211; it helped us identify a missing one, as we&#8217;ll see below.</p>
<h2>Scope and Vision Analysis</h2>
<p>We reviewed the scope and vision yesterday as part of defining the goal for the release.  The goal of bundles is to leverage the effect that <em>the whole is greater than the sum of the parts</em> to leverage articles from nexus to create valuable <em>meta-artifacts</em> that combine articles into cohesive collections, designed to achieve particular objectives.  At a sound-bite level, people combine articles into bundles, and people will consume the collections of articles found in a bundle.</p>
<h2>Persona Goals</h2>
<p>We initially focused on <a title="nexus Use Case Names and practical goals" href="http://tynerblain.com/blog/2007/04/23/apr-use-case-names/">Paul the product manager&#8217;s goal</a> of sharing ideas, and started sketching out some design concepts based on how Paul might want to create his bundles.  Those sketches helped keep us on target as we moved forward on use cases.  From a classical requirements definition perspective, they were a bit of a segue.  From an interaction design perspective, they were important embodiments of the ideas.</p>
<p>We actually missed a persona goal, until we did a quick stakeholder analysis.  Until we reviewed the stakeholders, we completely forgot about consumption of the bundles &#8211; we had focused only on their creation.</p>
<p>All of our personas would be consumers of the bundles, with the possible exception of Brian the blogger, who is focused more on getting information out to others than pulling information in.  Brian may be a bundle creator &#8211; he probably already creates summary-posts on his blog that collect multiple articles together.  He can use bundles as a secondary means to organize his articles, or to combine his thoughts with others.</p>
<h2>Use Case Names</h2>
<p>The use case names we initially defined for the bundle-creators are</p>
<ul>
<li>Create a Bundle of Articles.</li>
<li>Update a Bundle of Articles.</li>
</ul>
<p>After reviewing the needs of other stakeholders, we added</p>
<ul>
<li>Study a Bundle of Articles.</li>
</ul>
<p>Considering both the consumption and creation of bundles will definitely affect how we design the interactions and the implementation.</p>
<h2>Use Case Briefs</h2>
<p><strong>Create a Bundle of Articles</strong> (Paul the product manager is the primary user, Jill the business analyst is secondary)<br />
Paul defines the topic and a brief explanation of the goal of the bundle (to teach a new product manager how to write use cases).  Paul creates an outline of the topics to cover in the bundle, organizing his thoughts and the topics.  Paul then begins inserting existing nexus articles into the bundle at each point in the outline.  Alternately, Paul may need to submit some articles to nexus in order to include them in the bundles.</p>
<p><strong>Update a Bundle of Articles</strong> (Paul the product manager is the primary user, Jill is secondary)</p>
<p>Paul returns to an existing bundle, and adds new articles to it.  Alternately, Jill adds an article to a bundle that she is studying to &#8220;complete&#8221; it from her perspective.<br />
This raises an interesting question &#8211; should people collaborate on bundles?  Or should it be single-author?  I&#8217;m leaning towards collaboration, or an implementation that allows people to control it (e.g. make a bundle &#8220;open&#8221; for anyone to edit, or closed).</p>
<p><strong>Study a Bundle of Articles</strong> (Jill and Ellen are primary, Paul is secondary)</p>
<p>Jill browses the available bundles in a particular topic area, and finds one that looks interesting.  The bundle is a tutorial on how to write use cases for a project.  She starts by reading the first articles, leaves nexus, and returns later.  On each visit to the site she gradually reads the articles, occasionally rating the articles and providing feedback on them.  Jill also provides feedback about ways to improve the bundle.</p>
<p>This use case would be greatly facilitated if there were a way to manually or automatically track which articles Jill has already read.</p>
<h2>Stakeholder Analysis</h2>
<p>Stakeholder analysis is important because it identifies who cares about a particular feature or functionality.  It can be very effective for finding missing use cases &#8211; usually because of a focus on the indirect users of a product.  For example, an accountant may generate reports with a product, which are then delivered to a regional manager.  Although the regional manager does not use the software, her needs must be addressed when generating the report.</p>
<p>In the analysis of bundles, we initially overlooked the consumption of bundles.  This was immediately obvious when we started to think through how they would be used.  We went back and added the <em>Study a Bundle</em> use case.  We also uncovered the possibility of a consumer becoming a collaborator on a bundle.</p>
<h2>Summary</h2>
<p>This analysis of use cases presents us with the inputs we need for designing the interactions, and defining the specifications for the bundles.  The &#8220;under the hood&#8221; implementation will probably be very straightforward, while the user interface work will be more significant.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Use+Case+Definition+for+Bundles+http%3A%2F%2Fbit.ly%2FeVhspW+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/&amp;t=Nexus+%E2%80%93+Use+Case+Definition+for+Bundles" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/23/nexus-bundle-use-cases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Third Alpha Release Prioritization</title>
		<link>http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/</link>
		<comments>http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/#comments</comments>
		<pubDate>Wed, 23 May 2007 03:02:41 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[prioritizing requirements]]></category>
		<category><![CDATA[requirements prioritization]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F22%2Fnexus-third-release-prioritization%2F", "style": "big", "title": "Nexus - Third Alpha Release Prioritization" }); The second release of nexus went live today (build 127). It included the top features from our prioritized list published yesterday. This enabled the next use case from our first prioritized list of use cases &#8211; searching the articles. We also took [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F22%252Fnexus-third-release-prioritization%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Third%20Alpha%20Release%20Prioritization%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F22%2Fnexus-third-release-prioritization%2F", "style": "big", "title": "Nexus - Third Alpha Release Prioritization" });</script></div>
<p><img title="allen wrench" alt="allen wrench" src="http://sehlhorst.smugmug.com/photos/155324242-M.jpg" /></p>
<p>The second release of <a title="Product Management Document Nexus" href="http://tynerblain.com/nexus/">nexus</a> went live today (build 127).  It included the top features from our <a title="prioritized feature list" href="http://tynerblain.com/blog/2007/05/21/nexus-next-round-of-prioritization/">prioritized list</a> published yesterday.  This enabled the next use case from our <a title="Prioritizing Nexus Use Cases" href="http://tynerblain.com/blog/2007/04/25/apr-prioritizing-use-cases-1/">first prioritized list of use cases</a> &#8211; searching the articles.  We also took this opportunity to refactor part of the user interface &#8211; adding pagination of articles and search results, and reworking the presentation of the article content based on user feedback.</p>
<p>In this article we look at the content of the third alpha release of nexus.</p>
<p><span id="more-502"></span></p>
<h2>Alpha Beta</h2>
<p>Alpha and Beta have become part of the <em>web 2.0</em> lexicon for releases.  The way many sites use the terms, it seems that <em>alpha</em> means &#8220;incomplete&#8221; while <em>beta</em> means &#8220;complete but needs work.&#8221;  We&#8217;re taking a similar approach here.  We know we are releasing incrementally increasing functionality.  The early releases are driving usage and feedback.  The insights we gain as we&#8217;re building also allow us to prioritize what people want as we go.  When we think the functionality is <em>sufficiently complete</em>, we&#8217;ll move to <em>beta</em> status.  I don&#8217;t expect to be in beta for long.  With a website, I believe it is completely reasonable to continue adding functionality after a site goes live (post-beta).  I think beta is a good label for &#8220;improve performance, enhance experience, validate existing value&#8221; activities.  Since we&#8217;ll be doing that all along during the alpha releases, that should be a short cycle.</p>
<p>This begs the question &#8211; why not just call it a beta now?  Because we don&#8217;t want to set the expectation that things are remotely complete at this point.  There&#8217;s a lot of things people will be able to do with nexus that aren&#8217;t implemented yet.</p>
<h2>De-prioritizing Support for a Use Case</h2>
<p>In our initial prioritization of use cases listed broadcasting of nexus content as a high priority for the second release.  This is an important behavior for Paul the Product Manager, <a title="nexus persona development" href="http://tynerblain.com/blog/2007/04/23/apr-persona/">one of our personas</a>.  We still believe broadcasting is important to Paul.  However, we believe the cost of making it <em>easier</em> for him is not justified.</p>
<p>Paul can easily send an email, instant message, <a title="twitter" href="http://twitter.com/">twitter</a> tweat, <a title="jaiku" href="http://www.jaiku.com/">jaiku</a> update, cocktail napkin, blog post, or other message to people about an article at nexus.  All he has to do is cut and paste the URL for that article.  Ideally, he will cut and paste the nexus URL, encouraging people to rate the article and join our community.  Or he may just find the article on nexus, and send the link to the original article.  That won&#8217;t directly help us, but it will still help him achieve his goals.</p>
<p>Anything we do to facilitate this communication for Paul will at best take the same amount of effort for him, and most likely take more effort (and constrain his means of communication).  And for marginal gain on our part.  And there&#8217;s no way to assure that Paul will use our embedded implementation &#8211; he may still just cut and paste.  Based on the non-zero cost of implementing, and the near-zero benefit (to Paul) of implementing support for his broadcasting, we won&#8217;t be implementing that within nexus.  Hopefully Paul will tell people about nexus when he tells them about the article that they should read.</p>
<h2>Thoughts About Capabilities</h2>
<p>With the current functionality, nexus can become what it needs to become &#8211; a repository of validated content.  With the ability to submit, rate, and review articles, we can collect the needed resources.  With the ability to search,  browse, and filter, people can use the site to find the content they are interested in.  We can refactor the interface to make this easier &#8211; but the base functionality and presentation are in place.</p>
<p>One very powerful idea that came up during the evolution of use cases and design approaches was the notion of creating collections of articles that can be used together to achieve a learning objective (or a teaching objective).  We think this may very well be the killer feature that makes nexus <em>the</em> place people go to understand a topic in our niche.  Many companies succeed by combining available components and bundling them together for sale &#8211; the whole is greater than the sum of the parts.  This is true of ideas as well.</p>
<p>In effect, each bundle of articles can be the equivalent of a multi-author book, or multi-instructor training curriculum.  There are some other interesting <em>unintended</em> uses that could arise &#8211; bundles of articles where the goal is a shoot-out between several similar treatments of the same topic.  People might create bundles of articles by their favorite authors.  Training curricula could be formed in a general way (Learn to do Use Cases) or for very specific circumstances (Learn how to manage risks and schedules for projects at company X).</p>
<h2>Prioritized Goals</h2>
<p>Based on the above, and other similar analysis, here are the goals for the third release of nexus.</p>
<ol>
<li>High Priority.  Support for creation, editing, scoring and reviewing of bundles of articles. (Must have)</li>
<li>Medium Priority.  Publish an RSS feed of newly created articles to which people can subscribe. (More is better)</li>
</ol>
<p>There are also some low-priority goals, basically tweaking the presentation layer.  These will be (possibly) addressed as targets of opportunity during implementation of other goals.</p>
<h2>Next Steps</h2>
<p>The two things we need to do next are develop the use case(s) for bundle interactions, and work on some design ideas.  If you think we should be taking a different prioritization approach, please join the discussion on this article.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Third+Alpha+Release+Prioritization+http%3A%2F%2Fbit.ly%2FfaR9We+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/&amp;t=Nexus+%E2%80%93+Third+Alpha+Release+Prioritization" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/22/nexus-third-release-prioritization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus &#8211; Next Round of Prioritization</title>
		<link>http://tynerblain.com/blog/2007/05/21/nexus-next-round-of-prioritization/</link>
		<comments>http://tynerblain.com/blog/2007/05/21/nexus-next-round-of-prioritization/#comments</comments>
		<pubDate>Mon, 21 May 2007 12:43:03 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/21/nexus-next-round-of-prioritization/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F21%2Fnexus-next-round-of-prioritization%2F", "style": "big", "title": "Nexus - Next Round of Prioritization" }); The next build of nexus starts today as our agile project continues. Let us know what stuff you think is most important for this release, as part of our prioritization. Already Scheduled Work We already know that we&#8217;re going to focus on [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F21%252Fnexus-next-round-of-prioritization%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Next%20Round%20of%20Prioritization%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F21%2Fnexus-next-round-of-prioritization%2F", "style": "big", "title": "Nexus - Next Round of Prioritization" });</script></div>
<p><img title="remote control" alt="remote control" src="http://sehlhorst.smugmug.com/photos/154773170-M.jpg" /></p>
<p>The next build of <a title="nexus home page" href="http://tynerblain.com/nexus/">nexus</a> starts today as <a title="open agile project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">our agile project</a> continues.  Let us know what stuff you think is most important for this release, as part of our prioritization.</p>
<p><span id="more-501"></span></p>
<h2>Already Scheduled Work</h2>
<p>We already know that we&#8217;re going to focus on a couple items for this release of nexus.  These items represent, as Roger put it in recent comments, areas of <em>highest risk</em>.  Our interpretation &#8211; risk is the risk that the site won&#8217;t gain critical mass and become the valuable tool that it can be.</p>
<ul>
<li>Searching Articles.  This is one of the <a title="Prioritizing Use Cases for Nexus" href="http://tynerblain.com/blog/2007/04/25/apr-prioritizing-use-cases-1/">previously identified use cases</a> &#8211; also previously targeted for the second release.</li>
<li>Pagination of Articles.  While not a requirement per se, we are introducing this <em>refactoring</em> of the design as the most significant usability concern that has arisen.  There are currently only 18 articles on nexus &#8211; and when you view an unfiltered list of the articles, you see all 18.  When this list is 50 or 100 items strong &#8211; which should be this week &#8211; pagination will have a significant impact on usability and adoption.  So this is on the top of our list for refactoring.</li>
</ul>
<p>As an interesting aside &#8211; these are both technically challenging activities too &#8211; so they also represent two of the higher technical risks.</p>
<h2>Other Possibilities</h2>
<p>Here&#8217;s a quick list of other items, not in priority order, that we may work on this week.  We will look at prioritization of them as early as later today &#8211; and as late as the completion of pagination and a first version of search.</p>
<ul>
<li>Broadcasting an Article &#8211; notifying someone who isn&#8217;t a registered nexus user about an article.</li>
<li>Creating a Mashup &#8211; allowing users to create collections of articles that can be used for organizing ideas that span articles.</li>
<li>Suggestion of Articles &#8211; provide article <em>suggestions</em> based upon the scores that you and others have given to articles on the site.</li>
<li>Allowing article deletion/moderation &#8211; give <em>moderators</em> the ability to suppress articles that don&#8217;t contribute to the community.</li>
<li>Allowing review suppression &#8211; give <em>registered users</em> the ability to suppress reviews that detract from the experience for people.</li>
<li>Present a feedback form / suggestion box &#8211; allow users to make suggestions about how to improve the site.</li>
<li>Enforce article uniqueness by URL &#8211; prevent duplicate submissions.</li>
<li>Create an about-page for nexus &#8211; explaining the purpose of the site beyond the snippet in the sidebar.</li>
<li>Create help documents &#8211; explaining how to accomplish goals with nexus.</li>
<li>Create a subscription service &#8211; allow people to subscribe to notifications when articles are submitted to nexus.</li>
<li>Allow users to edit their info &#8211; change password, email address, other data.</li>
<li>Refactor the presentation of articles &#8211; time-box 2 hours for a redesign / treatment of presentation.</li>
</ul>
<h2>Your Suggestions</h2>
<p>And any suggestions that y&#8217;all want to make at this time.  Maybe some of the ideas above either inspired you to suggest new ideas.  Maybe you have thoughts about the approach to implementing any of the above.  Please share them in the discussion on this article.  If you feel strongly about any of the above &#8211; either for inclusion or exclusion (or delay) &#8211; please share that input in the discussion below.  And remember, you can subscribe to the comments for individual articles &#8211; so do that if you want to track this discussion as it unfolds.  We&#8217;ll take all of the inputs into account when prioritizing these efforts for the current release.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Nexus+%E2%80%93+Next+Round+of+Prioritization+http%3A%2F%2Fbit.ly%2FfWVmvO+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/21/nexus-next-round-of-prioritization/&amp;t=Nexus+%E2%80%93+Next+Round+of+Prioritization" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/21/nexus-next-round-of-prioritization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>APR: Process Deviation?</title>
		<link>http://tynerblain.com/blog/2007/05/18/apr-process-deviation/</link>
		<comments>http://tynerblain.com/blog/2007/05/18/apr-process-deviation/#comments</comments>
		<pubDate>Fri, 18 May 2007 16:03:50 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/18/apr-process-deviation/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F18%2Fapr-process-deviation%2F", "style": "big", "title": "APR: Process Deviation?" }); Rolf presented a valid critique and some questions on our previous article announcing the launch of nexus. I started writing a long response, and realized it would work well as an article for analysis of our process over the last month. Here it is. Rolf&#8217;s [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F18%252Fapr-process-deviation%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Process%20Deviation%3F%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F18%2Fapr-process-deviation%2F", "style": "big", "title": "APR: Process Deviation?" });</script></div>
<p><img alt="double parking sign" title="double parking sign" src="http://sehlhorst.smugmug.com/photos/153820196-M.jpg" /></p>
<p>Rolf presented <a title="Rolf's comment in context" href="http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/#comment-97795">a valid critique and some questions</a> on our previous article announcing <a title="alpha release announcement for nexus" href="http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/">the launch of nexus</a>.  I started writing a long response, and realized it would work well as an article for analysis of our process over the last month.  Here it is.</p>
<p><span id="more-499"></span></p>
<h2>Rolf&#8217;s Critique and Questions</h2>
<p>Here&#8217;s the critique/question part of Rolf&#8217;s comment:</p>
<blockquote><p>However, allow me to comment on the agile project experiment (no offense intended !).<br />
For me, in an agile project there’s no room for “Bonus Features -<br />
a couple other things implemented early while we were there”. I’d like to see us come back to the original idea of prioritization (which can mean a change of priorities with the help of the users).</p>
<p>All new ideas or things we stumble upon should undergo the same persona/usecase/priorities analysis as the original ideas did. Otherwise this project leans over to hacking. (However, I respect your dictator role, Scott.) This should be done for the purpose of the experiment reader’s (and my) education and their chance of gaining insight. I know that it is easier to skip these things, but that is not what we are preaching in agile/lean product development classes/articles/books.</p>
<p>On the other hand, can the “change of plan” be interpreted as an experience with agile projects? Can we deduct that it is more important to have a strong product manager than to have a clear process for transforming ideas into products? (or even further, that projects should be created so, that a product manager can implement his own vision ;-)<br />
This would be very interesting knowledge I gain from the experiment.</p>
<p>I’d love to know what YOU are thinking about the project’s process. Why did we deviate?</p></blockquote>
<p>Hey Rolf, first &#8211; thanks for the help on the project, I&#8217;m looking forward to more as we go.  Second &#8211; thanks for the spot-on critique of the &#8220;bonus features.&#8221;</p>
<p>It is definitely not agile.  Can I plead temporary insanity?  I cite as evidence the &#8220;ideas&#8221; section in the previous article.  That is definitely the right way to do it from an agile standpoint &#8211; throw ideas into the prioritization mix.  I would also add that there is an element of dictatorial product management in the mix.  We can walk through each of the <em>bonus features</em> and see what we think&#8230;</p>
<p>Here&#8217;s how I would categorize the &#8216;bonus features&#8217; above:</p>
<ul>
<li><strong>Faceted navigation &#038; URLs</strong> &#8211; an <em>interaction design</em>-driven part of the implementation approach.  I would contend that this is orthogonal to the prioritization process.  This is getting good ideas at a lower level, into implementation.  I think this was wholly appropriate and not subverting the process.  Maybe it feels clunky trying to mix it into the other discussions, but I didn&#8217;t view it as &#8220;implement and refactor without reprioritization.&#8221;  I felt that the &#8216;out of the box&#8217; routing (/nexus/article/show/12) was sophomoric, and the implementation of the first version of page navigation (specifically for browsing) <em>required</em> some form of IA implementation and solution in order to create the nav-bars.  So this was the first proposed solution for browsing &#8211; just with user feedback.</li>
<li><strong>Having reviews in the first public release</strong>.  I would say that this was just bad form on my part.  A sign of weak project management.  The product manager (me) knew it was important &#8211; it was scheduled for the second release.  The developer (me) knew it was relatively easy &#8211; what I had just learned as part of implementing article-submission made it easy to extend to reviews.  The project manager (me) was still busy freaking out about the risk of XSS attacks and was distracted by the demands from the President (me) that the site not go live until acceptable security measures were in place.  The developer (me again) and product manager (me) snuck it into the first release.  We occasionally show disdain for me in this way.</li>
<li><strong>Rating a Review</strong> &#8211; I put this in the dictatorial product manager bucket.  I felt that it was important (as part of allowing comment/reviews) to the notion of credibility and trust, that we have this feature.  Especially since to make it happen required 30 minutes of learning/refactoring the existing rating implementation to apply it to reviews as well as articles.</li>
<li><strong>User Page</strong> &#8211; hmm.  Don&#8217;t really know if I can sneak this in as design or dictatorship.  Just seemed like the right thing to do.  Wasn&#8217;t in any of the mockups either &#8211; just appeared during development.</li>
<li><strong>Calculating a User Score</strong> &#8211; OK, so this one is definitely a violation of prioritization.  And it probably took a couple hours to figure out and implement.  I did get some feedback offline on the design and approach, but will it demonstrate value &#8211; maybe.  No way to describe this one as anything other than &#8220;not following process.&#8221;  Slapping myself on the wrist now.</li>
</ul>
<h2>Drawing Conclusions</h2>
<p>Getting back to Rolf&#8217;s question &#8211; &#8220;Can we deduct that it is more important to have a strong product manager than to have a clear process for transforming ideas into products?&#8221;</p>
<p>I think people trump process any day.  But a good process makes people better.  So process is worth pursuing.  I have a struggle on this project, wearing dev/design/product&#038;project management hats.  Plus I have the dictator-card.  And blogging about the project as we go, while really useful info for learning, is also a form of <em>inappropriate, low level marketing announcements</em>.  We&#8217;re essentially broadcasting very prematurely, about every move we make and when we&#8217;ll make it.  So this study is a bit polluted.  By watching the process, we modify the process.  Good thing this isn&#8217;t a quantum mechanics experiment.</p>
<p>I think design inputs are valid elements of the implementation (faceted navigation as an implementation choice for browsing).  I think a process that prevents convenient low-hanging fruit (rating  the quality of reviews) is a bad process.</p>
<p>Also, I think we made a mistake in including reviews in the first release <em>without re-prioritizing first</em>.  In my defense, the <em>security-thing</em> threw me for a bit of a loop, and reviews were not part of the <em>very-first</em> release (which was shared with the Austin on Rails developers).  I probably should have just addressed security and released without reviews.  As a developer, I needed some occasional breaks and accomplishments to make the days of reading about XSS and SQL-injection solutions more fun.  And that&#8217;s what I ended up doing.  Probably shouldn&#8217;t have.</p>
<p>We did get some good user feedback about reviews being more important than numerical ratings for some people.  So it was easy to &#8220;cheat.&#8221;  I think the dictator philosophy is actually a good one &#8211; listen to your customers &#8211; absolutely.  But that doesn&#8217;t mean you do exactly what they say.  You do what they need, to the best of your ability, which is <em>highly aligned</em> with what they say &#8211; but not exactly the same thing.</p>
<h2>What Do You Think?</h2>
<p>What should we do differently next week as part of building out the next release?  Our plan is to start with prioritization of pending / new ideas.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Process+Deviation%3F+http%3A%2F%2Fbit.ly%2FfnISUp+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/18/apr-process-deviation/&amp;t=APR%3A+Process+Deviation%3F" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/18/apr-process-deviation/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>APR: Nexus Alpha Release Announcement</title>
		<link>http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/</link>
		<comments>http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/#comments</comments>
		<pubDate>Fri, 18 May 2007 01:23:46 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F17%2Fapr-nexus-alpha-release%2F", "style": "big", "title": "APR: Nexus Alpha Release Announcement" }); The alpha release of our site/product developed as an open agile project has just gone live! http://tynerblain.com/nexus/ is the home page. More stats and updates below. Time To Market We started the project exactly one month ago today. We defined a vision and [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F17%252Fapr-nexus-alpha-release%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Nexus%20Alpha%20Release%20Announcement%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F17%2Fapr-nexus-alpha-release%2F", "style": "big", "title": "APR: Nexus Alpha Release Announcement" });</script></div>
<p><img title="nexus logo" alt="nexus logo" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<p>The alpha release of our site/product developed as an <a title="open agile project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">open agile project</a> has just gone live!</p>
<p><strong><a title="nexus home page" href="http://tynerblain.com/nexus/">http://tynerblain.com/nexus/</a></strong> is the home page.  More stats and updates below.<br />
<span id="more-498"></span></p>
<h2>Time To Market</h2>
<p>We <strong>started the project <em>exactly</em> one month ago</strong> today.  We defined a vision and scope, target users, use cases, constraints, UI designs and implementation designs.  We also created tests at a specification level (user login ID must be unique, etc).  We designed a logo and worked on information architecture.</p>
<p>We learned Ruby on Rails (learned enough to launch, anyway &#8211; much more to learn) along the way, and had to get some help with setting up our deployment environment.  Now, updates to the site can be pushed to the server with a single command-line.</p>
<p>We spent <strong>somewhere between 160 and 200 man-hours</strong> on this release, across all the different areas, with I believe, the following rough breakout of time:</p>
<ul>
<li>1/3 requirements</li>
<li>1/6 design</li>
<li>1/2 learning</li>
<li>1/6 implementation (and most of that in writing tests)</li>
</ul>
<p>Kevin Rose mentioned that the first version of digg was built by one guy in two weeks &#8211; after giving him a spec.  I think we stayed competitive with that, especially given the time spent learning the language.  Digg was built in php by someone who knew php already.</p>
<h2>Delivered Capabilities</h2>
<p>What can you do with nexus today?  We defined the <a title="priorities for nexus first release" href="http://tynerblain.com/blog/2007/04/25/apr-prioritizing-use-cases-1/">priorities for the first release</a> on April 25th as follows:</p>
<ol>
<li>Browse An Area (Jill &#038; Paul + Ellen).  First. <strong>Done</strong></li>
<li>Suggest An Article [Version 1] (Paul &#038; All). First. <strong>Done</strong></li>
<li>Rate An Article (Jill &#038; All).  First. <strong>Done</strong></li>
<li>Search For A Topic (Jill &#038; Paul + Ellen). Second.</li>
<li>Broadcast An Article (Paul). Second.</li>
<li>Comment On An Article (Paul &#038; All). Second. <strong>Done</strong></li>
</ol>
<p>After getting some great feedback, we recognized that commenting (aka reviewing) an article was also important &#8211; possibly more important than numerical ratings.  When we discovered the <em>security issues</em> that we needed to address, that bought us some time &#8211; it delayed the initial release while we learned and implemented protection.  During that time, we added in the ability to do reviews.</p>
<h2>Some Bonus Features</h2>
<p>We also implemented a couple other things &#8220;early&#8221; while we were there.</p>
<ul>
<li>The ability to rate a review &#8211; is it fair, accurate, misleading?</li>
<li>The ability to view &#8220;my articles&#8221; &#8211; all of the articles you submitted are available on the &#8220;Your Page&#8221; page.</li>
<li>Friendly URLs &#8211; part of this came out of our IA exploration.</li>
<li>A first attempt at &#8220;scoring&#8221; the quality and content that each user contributes.  The scores reflect how many articles you submit and reviews you write.  More importantly, they are driven primarily by the ratings that your articles and reviews receive.</li>
<li>Faceted navigation is in place too &#8211; allowing people to use different browsing approaches.</li>
</ul>
<h2>What&#8217;s Next for Nexus?</h2>
<p>I&#8217;m about to leave for the airport &#8211; my mom is visiting for the weekend, so we won&#8217;t really make any progress tomorrow.  Once we get started again, we&#8217;ll finish up the features for the second release (searching and emailing).  Emailing will be tricky &#8211; we have to prevent spammers from using the site to bombard people with emails.  Searching may be easy, but we have stuff to learn first.</p>
<p>We also have some &#8220;catchup testing&#8221; to write &#8211; there is a tool that provides code-coverage analysis, which we need to install and apply.  So next week will be primarily working on those two features, adding testing, and refactoring.</p>
<h2>Ideas</h2>
<p>I&#8217;ve had a couple ideas this week.</p>
<p>Rolf submitted an article that is in German.  I want to see if there&#8217;s an easy way to leverage Google&#8217;s translation tools to automatically translate the articles (if desired) into the current user&#8217;s language of choice, when the user leaves nexus to visit those articles.</p>
<p>I&#8217;ve also been thinking about &#8220;books&#8221; as peers to &#8220;articles&#8221; &#8211; I want to explore that more, but I still believe it is secondary to at least the already-prioritized features.</p>
<p>I think it might be handy to generate an RSS feed from nexus, so that people can keep track of when new articles are submitted &#8211; both overall, and by category/experience.</p>
<p>I need to see how to make Ruby on Rails perform scheduled tasks (like backing up the database, tracking statistics, etc).  I want to be able to monitor how the site grows over time.  I think it also might be interesting to share that data publicly.  For now, there are some counters in the sidebar that provide real-time data, but no history.</p>
<h2>What Can You Do?</h2>
<p>Sign up, and start submitting, rating, and reviewing articles.  We have to collectively make a push to get enough content (and feedback on content) into the site to make it a useful, then compelling, then necessary resource for people.</p>
<p>Thanks to everyone who has helped so far, and especially to everyone who helps push us to get valuable content up asap.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Nexus+Alpha+Release+Announcement+http%3A%2F%2Fbit.ly%2FfZM199+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/&amp;t=APR%3A+Nexus+Alpha+Release+Announcement" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/17/apr-nexus-alpha-release/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>APR: Information Architecture &#8211; Faceted Navigation</title>
		<link>http://tynerblain.com/blog/2007/05/16/apr-ia-faceted-navigation/</link>
		<comments>http://tynerblain.com/blog/2007/05/16/apr-ia-faceted-navigation/#comments</comments>
		<pubDate>Thu, 17 May 2007 03:23:29 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[ia]]></category>
		<category><![CDATA[information architecture]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/16/apr-ia-faceted-navigation/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F16%2Fapr-ia-faceted-navigation%2F", "style": "big", "title": "APR: Information Architecture - Faceted Navigation" }); In our previous article in the series on the development of nexus, we discussed navigation and information architecture. We identified the challenge of filtering articles by category and by level of experience (beginner / expert), while also viewing the articles along a [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F16%252Fapr-ia-faceted-navigation%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Information%20Architecture%20-%20Faceted%20Navigation%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F16%2Fapr-ia-faceted-navigation%2F", "style": "big", "title": "APR: Information Architecture - Faceted Navigation" });</script></div>
<p><img title="facets" alt="facets" src="http://sehlhorst.smugmug.com/photos/153425154-M.jpg" /></p>
<p>In our previous article in the series on <a title="open agile project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">the development of nexus</a>, we discussed navigation and <a title="nexus information architecture" href="http://tynerblain.com/blog/2007/05/15/apr-information-architecture/">information architecture</a>.  We identified the challenge of filtering articles by category and by level of experience (beginner / expert), while also viewing the articles along a characteristic (most-viewed, highest-rated, etc).  Between both url-creation and visible site-navigation, the challenge we explored was how to present one facet or dimension as primary and others as secondary.</p>
<p>One of our readers presented a third alternative &#8211; faceted navigation.</p>
<p><span id="more-497"></span><a title="Scott's site" href="http://www.scottweisbrod.com/">Scott Weisbrod</a> commented:</p>
<blockquote><p>Have you considered using faceted navigation? Faceted navigation means that level of expertise, category of article, and chosen approach can all live at the same level.</p>
<p>Therefore, as a user, I can pick the facet by which I want to begin navigating the site. For some, level of expertise is the most sensible place to start. Others will want to begin their search by category or even chosen approach.</p>
<p>Why not surface all of them and let your users pick the most appropriate starting place?</p></blockquote>
<p>He also suggested looking at <a title="The Guardian" href="http://browse.guardian.co.uk/search"><em>The Guardian&#8217;s</em> search page</a>.  You get the idea by interacting with the controls in the sidebar &#8211; we&#8217;ll try and explain here with a static image, but go check it out.<br />
<img title="guardian search-browse filter" alt="guardian search-browse filter" src="http://sehlhorst.smugmug.com/photos/153425174-M.jpg" /></p>
<p>The left sidebar shows a list of &#8220;active filters&#8221; (initially empty), and as you click to &#8220;add search filters&#8221; you narrow down the choices.  Amazon.com also uses this approach, for narrowing by product category, price range, supplier, etc.  While it may encourage an element of precedence, it allows users to filter choices in whatever sequence they desire.  This is very cool presentation (in the two-dimensional sense).</p>
<p>When we started exploring our approaches, we were also concerned about how the URL looks, both for providing context to users and for sharing with others.  Unlike the Guardian, this is the main navigation for our site &#8211; not just an admittedly cool way to do browse/search.  If we look at a URL from their site, with facets selected, we see <code>http://browse.guardian.co.uk/search/all/Politics/Labour+party? month=07&#038;lDim=N%3D4294962719%2B4294962540%2B4294963588%2B3098 &#038;year=2002&#038;N=4294962719+4294962540</code>.  Not a very pretty picture [ed: spaces added to line-wrap the URL].  It exposes the implementation (looks like an <a title="olap cubes explained" href="http://en.wikipedia.org/wiki/OLAP_cube">OLAP cube</a> database to me).  More importantly, it would confuse anyone trying to read it, and might even dissuade them from clicking on the link if it were shared in an email.</p>
<h2>Nexus Implementation</h2>
<p>Luckily for us, we did three things today.  First, we decided that we agreed with Bob, at least enough to include the <em>experience level</em> dimension in our initial implementation (it added less than an hour of work).  Second, we took an implementation approach that would actually support this faceted navigation presentation.  Third, while we implemented it with a <em>hierarchical presentation</em>, we stuck to the Ruby on Rails convention of separating the presentation from the implementation.</p>
<p>This affords us the opportunity to refactor the presentation to look more &#8220;faceted&#8221; and less hierarchical.</p>
<p>Here&#8217;s what the navigation elements in the latest version in source control look like:</p>
<p><img title="nexus navigation bars" alt="nexus navigation bars" src="http://sehlhorst.smugmug.com/photos/153430658-M-0.jpg" /></p>
<p>The top bar is clearly a hierarchical parent.  It establishes context (articles or users, or your own page, etc).  It also shows a &#8220;categories first&#8221; navigation bar.  However, that navigation doesn&#8217;t &#8220;reset&#8221; the other choices.</p>
<p>If you&#8217;re looking at <em>beginner</em> product management articles, organized by their ratings, and you click on &#8220;Business Analysis&#8221; &#8211; you will see business analysis articles, <em>for beginners, organized by highest rating</em>.  In effect, we have a faceted navigation implementation under the hood.  We just presented it hierarchically.  Note that we also agreed with Bob, and put <em>experience level</em> filtering &#8220;above&#8221; the organizational sorting (most read, etc) of the articles.</p>
<p>We critiqued <em>The Guardian</em>&#8216;s URL structure.  We should look at ours.  The URL for an example above would be <code>http://tynerblain.com/nexus/business_analysis/beginner/highest_rated/</code>.  Incredibly easy to know exactly what to expect before clicking on that link.  We can also extend this approach in a couple ways &#8211; we can add more skill levels or categories, we can add more sorting options (highest rated reviews, etc), and we can add subcategories (like testing:test-automation).  We won&#8217;t add any subcategories until we have enough articles to warrant it.  I think we can even add sub-categories selectively (have them for testing, but not business analysis, for example).</p>
<h2>Design Conclusion</h2>
<p>I am happy with the <em>under-the-hood</em> design, for both being extensible enough for likely future needs, and being adaptable enough to work with either a hierarchical or faceted presentation.</p>
<p>In order to get the alpha release launched as soon as possible, we will keep the &#8220;hierarchical-looking, faceted navigation&#8221; in place for the first limited release.</p>
<h2>How You Can Help</h2>
<p>In order to really get a feel for the effectiveness of the navigation, we have to have some critical mass of articles on the site &#8211; I would think at least 100.  Please spend a few minutes to queue up some great articles to be reviewed &#8211; and when we release the alpha, submit those articles.  Every page will include an &#8220;article count&#8221; in the sidebar &#8211; and when we get to 100, start evaluating the navigation and let us know how it works for you.</p>
<p>Thanks in advance!</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Information+Architecture+%E2%80%93+Faceted+Navigation+http%3A%2F%2Fbit.ly%2FggN49I+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/16/apr-ia-faceted-navigation/&amp;t=APR%3A+Information+Architecture+%E2%80%93+Faceted+Navigation" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/16/apr-ia-faceted-navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APR: Information Architecture Challenge</title>
		<link>http://tynerblain.com/blog/2007/05/15/apr-information-architecture/</link>
		<comments>http://tynerblain.com/blog/2007/05/15/apr-information-architecture/#comments</comments>
		<pubDate>Wed, 16 May 2007 02:44:19 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[ia]]></category>
		<category><![CDATA[information architecture]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/15/apr-information-architecture/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F15%2Fapr-information-architecture%2F", "style": "big", "title": "APR: Information Architecture Challenge" }); We have an interesting information architecture challenge as part of our agile project. We have talked about browsing and searching articles organized both by category (product management, business analysis, etc) and by level of expertise (beginner, expert). We&#8217;re also rating and reviewing the articles, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F15%252Fapr-information-architecture%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Information%20Architecture%20Challenge%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F15%2Fapr-information-architecture%2F", "style": "big", "title": "APR: Information Architecture Challenge" });</script></div>
<p><img alt="Challenging Architecture" title="Challenging Architecture" src="http://sehlhorst.smugmug.com/photos/153106825-M.jpg" /></p>
<p>We have an interesting information architecture challenge as part of <a title="open agile project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">our agile project</a>.  We have talked about browsing and searching articles organized both by category (product management, business analysis, etc) and by level of expertise (beginner, expert).  We&#8217;re also rating and reviewing the articles, which introduces the ideas of &#8220;latest&#8221;, &#8220;most reviewed&#8221;, &#8220;highest rated&#8221;, etc.</p>
<p>This presents us with a three-dimensional way to approach structuring the information and navigation of the site.</p>
<p><span id="more-496"></span></p>
<h2>Two Areas of Focus</h2>
<p>There are two things we need to address as part of helping people find the articles that they are interested.  Searching, which can bypass this structure, is not in scope for the next release of nexus &#8211; as we are <a title="Prioritizing Use Cases" href="http://tynerblain.com/blog/2007/04/25/apr-prioritizing-use-cases-1/">focusing first on the <em>browsing</em> use case</a>.</p>
<p>The most important element to focus on is the site navigation.  A lesser, but also important element is URL structure.  There are benefits to having consistent and clean URLs that represent the different pages of nexus.  Site navigation is a two-dimensional problem (we have two dimensions within the screen real-estate).  URL-creation is a one-dimensional problem &#8211; each URL (web-page address) is linear, or even serial.  Since URL structure is more constraining, we are tackling this first.</p>
<h2>What Does Browsing Look Like?</h2>
<p>We&#8217;re focusing on URL structure, as it relates to browsing.  How does that perspective apply?</p>
<p>A &#8220;good&#8221; URL will tell us something about the page.  For example: <code>http://tynerblain.com/nexus/testing/highest_rated/beginner/</code>  could represent the list of the highest rated articles about testing, written for beginners.  This approach to URL structure has benefits in that it provides context for users (who can look at a URL and see where they are), makes it easier to share or save a page, and does a good job of setting expectations.<br />
<code>http://tynerblain.com/nexus/?topic=testing&#038;view=highest_rated&#038;expertise=beginner</code> would provide the same benefits &#8211; but it is clunky for people to read, harder to share, and far less memorable.  It also forces the implementation on the users.  Users should not care if &#8220;highest rated&#8221; is a view, or a sort, or whatever.  There are also search-engine benefits to using the clean URL structure.  And luckily, it is actually easy to use the clean structure when working with Ruby on Rails.</p>
<p>When browsing, we have three dimensions:</p>
<ul>
<li>Level of expertise (beginner, expert, both/either/neither)</li>
<li>Category of article (Product Management, Business Analysis, Project Management, Testing, Agile Development, Interaction Design)</li>
<li>A Chosen approach (view the highest rated, most recent, most rated, most reviewed, or most viewed articles)</li>
</ul>
<p>Good design approaches will survive changes to this as well (new categories, etc).</p>
<h2>Which Comes First?</h2>
<p>We can ignore the URL-formatting for a minute, and just think about which sequence makes the most sense.  Here are some examples:</p>
<ul>
<li>beginner -> testing -> most_reviewed</li>
<li>testing -> beginner -> most_reviewed</li>
<li>most_reviewed -> testing -> beginner</li>
<li>most_reviewed -> beginner -> testing</li>
<li>beginner -> most_reviewed -> testing</li>
<li>testing -> most_reviewed -> beginner</li>
</ul>
<p>I believe that the beginner/expert dimension is the <em>least</em> important of the three.  I also think that the category &#8220;filter&#8221; is the dominant element when users are browsing, and the &#8220;<em>let me slice it this way</em>&#8221; dimension of &#8216;chosen approach&#8217; is subordinate.  I would expect a person researching <em>testing</em> articles, for example, to look at both the &#8220;highest rated&#8221; and the &#8220;most reviewed&#8221; views within a single browsing session.  I think it is less common that someone would be viewing &#8220;highest rated&#8221; articles and change category to category as part of the same exercise.</p>
<p>So, we&#8217;re going to start out with <em>category->approach->expertise</em> as the winning information structure for URLs.</p>
<h2>Consistency Matters</h2>
<p>Once we establish a hierarchy of category->approach->expertise in our URL structure, we need to make sure that our site navigation reflects something consistent with this.  Therefore, navigation elements should present category information/filtering in a dominant position, and the chosen approach (most rated, etc) as a subordinate.  The expertise level should be below both of these.</p>
<p>In truly agile fashion, we&#8217;re implementing <em>category->approach</em> first, without mixing in the <em>expertise</em> element into either the URL structure or site navigation.  We are showing it as information.  When this matters more (more than whatever else is being prioritized), we will re-address it.</p>
<h2>Thoughts?</h2>
<p>What do you think?</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Information+Architecture+Challenge+http%3A%2F%2Fbit.ly%2FhqFqJY+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/15/apr-information-architecture/&amp;t=APR%3A+Information+Architecture+Challenge" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/15/apr-information-architecture/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>APR: Naming Our Product</title>
		<link>http://tynerblain.com/blog/2007/05/14/apr-naming-our-product/</link>
		<comments>http://tynerblain.com/blog/2007/05/14/apr-naming-our-product/#comments</comments>
		<pubDate>Tue, 15 May 2007 02:13:16 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[naming]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/14/apr-naming-our-product/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F14%2Fapr-naming-our-product%2F", "style": "big", "title": "APR: Naming Our Product" }); We&#8217;ve come up with a name for the site we&#8217;re creating as part of our agile project. Read on to see our rationale. nexus The dictionary has several definitions of the word nexus. Two of which are &#8220;a connected group or series&#8221; and &#8220;center, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F14%252Fapr-naming-our-product%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Naming%20Our%20Product%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F14%2Fapr-naming-our-product%2F", "style": "big", "title": "APR: Naming Our Product" });</script></div>
<p><img title="nexus logo" alt="nexus logo" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<p>We&#8217;ve come up with a name for the site we&#8217;re creating as part of our <a title="open agile project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">agile project</a>.  Read on to see our rationale.</p>
<p><span id="more-495"></span></p>
<h2>nexus</h2>
<p>The <a title="definition of nexus" href="http://mw1.merriam-webster.com/dictionary/nexus">dictionary </a>has several definitions of the word nexus.  Two of which are &#8220;a connected group or series&#8221; and &#8220;center, focus.&#8221;</p>
<h2>Vision</h2>
<p>In our <a title="nexus vision document" href="http://tynerblain.com/blog/2007/04/26/apr-vision-update-1/">vision document</a>, we defined the following:</p>
<blockquote><p>Create a site that allows people in our niche to help each other find great articles, regardless of who wrote them. People will identify and evaluate (rate/review/score) articles on their merits. People will also categorize (taxonomy/folksonomy) the articles to make it easier for others to find documents that they are looking for at that time. When a person is searching in our space for an article, it is either as a beginner or an expert (on that subtopic). This site should help people filter to look for articles appropriate for the type of search they are doing at that time.</p>
<p>We want to focus on sharing and reputation, while incorporating elements of identity, conversations, and relationships.  We do not want to focus features on groups or presence.</p></blockquote>
<p>Nexus is a great name for realizing that vision.</p>
<h2>Naming</h2>
<p>Naming is a tricky thing.  Roger Cauvin writes about it regularly (and <a title="cauvin on naming" href="http://cauvin.blogspot.com/2006/01/michael-antman-on-naming.html">recently</a>).  There&#8217;s an interesting dichotomy that descriptive names are apparently good for business to business products, yet non-descriptive names have been successful in business to consumer products.  His article links back to others he&#8217;s written on the topic, and they link back to more still.  Check em out.</p>
<p>David Meerman Scott, of <a title="Web Ink Now" href="http://www.webinknow.com/">Web Ink Now</a>, has also influenced our feelings about naming and branding, from too many articles to link to.  You should just read his stuff.  And go buy his new book, <a title="new rules of marketing and pr" href="http://www.webinknow.com/2007/05/thank_you_for_h.html"><em>The New Rules of Marketing &#038; PR</em></a>.  I&#8217;m looking forward to reading an advance copy next week.  Thanks again David!<br />
Nexus is a business to <em>business consumer</em> product.  While our customers will be acquired and retained as consumers, they will be using nexus to help with their business.  As <em>non-experts</em> in branding, we had no idea how to tackle this.  We&#8217;re excited to have a name that is descriptive, while still sharing the single-word, two-syllable, unique/easy-to-remember elements of many non-descriptive names.  I think we dodged a bullet with this name.</p>
<h2>The Logo</h2>
<p>Our logo for nexus</p>
<p><img title="nexus logo again" alt="nexus logo again" src="http://sehlhorst.smugmug.com/photos/151778446-M.png" /></p>
<p>tries to demonstrate the characteristics of the vision:</p>
<ul>
<li>We (the users of the site) are the focus of the site.  This is demonstrated both with the color of and the placement of the &#8220;us&#8221; inside the central hexagon.</li>
<li>Nexus is intended to be the hub into which great content feeds and connects.  The smaller elements represent the individuals who contribute by sharing, reviewing, rating, and writing content.</li>
<li>Nexus will have a compounding effect that helps people follow threads of knowledge and explore and discover new content and new contributors.  This drives the &#8220;second order&#8221; connections to the node on the bottom right.</li>
<li>And the logo is cool.</li>
</ul>
<h2>Feedback Welcome</h2>
<p>Would love any feedback that folks would like to share!</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Naming+Our+Product+http%3A%2F%2Fbit.ly%2FfutueJ+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/14/apr-naming-our-product/&amp;t=APR%3A+Naming+Our+Product" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/14/apr-naming-our-product/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>APR: Security Update</title>
		<link>http://tynerblain.com/blog/2007/05/11/apr-security-update/</link>
		<comments>http://tynerblain.com/blog/2007/05/11/apr-security-update/#comments</comments>
		<pubDate>Sat, 12 May 2007 05:20:08 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[managing data]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/11/apr-security-update/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F11%2Fapr-security-update%2F", "style": "big", "title": "APR: Security Update" }); Earlier this week we iterated on our agile project to assure that we have sufficient application security to meet our user&#8217;s implicit requrements. Read on for updates on our implementation of the security constraints, and progress on the next feature to be implemented. Security Implementation [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F11%252Fapr-security-update%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Security%20Update%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F11%2Fapr-security-update%2F", "style": "big", "title": "APR: Security Update" });</script></div>
<p><img alt="chain" title="chain" src="http://sehlhorst.smugmug.com/photos/151153954-M.jpg" /><br />
Earlier this week we <em>iterated</em> on our <a title="open agile project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">agile project</a> to assure that we have sufficient application security to meet our user&#8217;s implicit requrements.<br />
Read on for updates on our implementation of the <a title="Security Constraints for our project" href="http://tynerblain.com/blog/2007/05/09/apr-security/">security constraints</a>, and progress on the next feature to be implemented.</p>
<p><span id="more-493"></span></p>
<h2>Security Implementation</h2>
<p>In our previous article defining constraints, we fundamentally established a user goal of trust.  Trust that their work would not be misrepresented, and trust that their privacy would not be compromised.  We&#8217;ve implemented the functionality to address these goals &#8211; at least enough for the first public releases.</p>
<p>Ruby on Rails promotes a model-view-controller design approach.  What this means is that different parts of the code do different jobs.  <em>Views</em> present an interface for the users.  Views display information, and allow users to interact.  <em>Controllers</em> are responsible for managing the user interaction requests.   Controllers send users from one view to another, and reject or satisfy requests from users.  <em>Models</em> encapsulate the business rules and functionality of the software.  They do all the real work.</p>
<p>You can imagine the flow of an interaction with a Rails application as follows:</p>
<ol>
<li>User browses to a URL and views a page (View).</li>
<li>The application selectively presents data, and selectively exposes ways for users to interact (View).</li>
<li>User requests an action such as &#8216;write a review of an article&#8217; or &#8216;login&#8217; or &#8216;show me all the articles that I&#8217;ve rated&#8217; (View).</li>
<li>The application rejects or attempts to satisfy the user&#8217;s request (Model).</li>
<li>The application (Model) will provide the service/data/etc to satisfy the user&#8217;s request to the controller (Controller).</li>
<li>The application (Controller) will forward the response from the model to the appropriate view for display (View).</li>
<li>The application (View) will render the results of the user request for the user (User).</li>
</ol>
<p>I mention this flow because this architecture encourages a <em>deep security</em> security model.</p>
<p>All interactions with models (by convention) happen either from controllers, or from other models (classes).  Controllers, in theory, handle requests from views.  Views are the gateway to our application.  Consider the requirement that a user can only view her own email address.  We could satisfy that requirement just by checking to see if the current user (the person at the keyboard) is the user who&#8217;s information is being displayed.  This constraint is necessary but not sufficient.</p>
<p>We can&#8217;t truly validate that all external interactions with controllers come through views.  Software can be written to <em>impersonate</em> an actual user, in order to interact with a website in undesired ways.  So if we only implemented view-level security, we would still have a bug.</p>
<p>Controllers can also be protected, so that they always reject <em>unauthorized</em> requests.  This way, even requests that don&#8217;t come in from one of our views will be protected.  This is essentially protection against unanticipated (but reasonable to expect) interactions with the outside world.</p>
<p>We can&#8217;t add a constraint that a model only &#8220;do the work&#8221; if the current_user is authorized.  Models don&#8217;t know anything about views, so they have to rely on the controllers to only ask for something when it is appropriate.  If there is a better way to approach this in Rails, please let me know.</p>
<p><strong>Deep Security Example</strong></p>
<p>We have a requirement that anonymous users can not submit articles.</p>
<ul>
<li>In the view, we can determine if the user is logged in, and if so, present a link to the action that creates a new article.  If the user anonymous, the link to the action is never rendered.</li>
<li>In the controller, we can determine if the user is logged in, and if not, prevent the controller from creating a new article.</li>
</ul>
<p>We&#8217;ve made several updates to the application to support this type of security around our constraints.</p>
<h2>Next Feature for our Project</h2>
<p>After reviewing the feedback again, we have identified the ability to write reviews of articles to be the next feature to implement.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Security+Update+http%3A%2F%2Fbit.ly%2Ff0fJ3s+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/11/apr-security-update/&amp;t=APR%3A+Security+Update" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/11/apr-security-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APR: Security &#8211; Added Constraint</title>
		<link>http://tynerblain.com/blog/2007/05/09/apr-security/</link>
		<comments>http://tynerblain.com/blog/2007/05/09/apr-security/#comments</comments>
		<pubDate>Wed, 09 May 2007 19:39:52 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sql-injection]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/09/apr-security/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F09%2Fapr-security%2F", "style": "big", "title": "APR: Security - Added Constraint" }); Last night I got some great feedback from the Austin on Rails guys who helped with the deployment technology for our project. I also got a bit of an education about website security. Based on that conversation, I&#8217;m adding a new constraint to [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F09%252Fapr-security%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Security%20-%20Added%20Constraint%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F09%2Fapr-security%2F", "style": "big", "title": "APR: Security - Added Constraint" });</script></div>
<p><img title="lock and chain" alt="lock and chain" src="http://sehlhorst.smugmug.com/photos/151153954-M.jpg" /></p>
<p>Last night I got some great feedback from the Austin on Rails guys who helped with the deployment technology for <a title="Open Agile Project" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">our project</a>.  I also got a bit of an education about website security.  Based on that conversation, I&#8217;m adding a new constraint to our project &#8211; that it be secure.</p>
<p><span id="more-492"></span></p>
<h2>Security Vision And Requirements</h2>
<p>In line with our <a title="Defining Project Scope" href="http://tynerblain.com/blog/2007/04/26/apr-vision-update-1/">project scope and vision</a>, and <a title="Defining Corporate Goals for a Project" href="http://tynerblain.com/blog/2007/04/19/apr-corporate-goals/">corporate goals</a>, we are adding a security constraint for the product.  We believe that having an <em>un-hacked</em> site is important to meeting these goals.</p>
<p>Further, I believe that <a title="How to gather implicit requirements" href="http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/">users <em>impicitly</em> require</a> that there be a level of confidence about the information that they find on the site &#8211; even with entirely user-generated content.  Here&#8217;s a list of what I believe those expectations of trust might be &#8211; would love to know any others that people feel are important.</p>
<ul>
<li>Users expect that their profile information can not be modified by other users.</li>
<li>Users expect that anything they create (an article, review, etc) should not be modifiable by others (at least without attribution and visibility into the changes).</li>
<li>Users expect that article &#8220;scores&#8221; are reflective of the individual scores.  Further, I think users expect to have an understanding of how scores are computed, if not complete transparency (the score might not be a simple average).</li>
<li>Users expect that their private information be secure (e.g. encrypted password if present in database, application logs, etc)</li>
</ul>
<h2>Writing Security Requirements</h2>
<p>Honestly, I&#8217;m not really certain how you would do this in a more significant site.  Perhaps writing requirements around the terms of a service level agreement (SLA) or contract.  We&#8217;ll talk about that more in a second.  For this project, and certainly at this stage, I believe the requirement is &#8220;be prudent to the best of your knowledge about security.&#8221;  That&#8217;s not a good requirement.  But it is good enough for now.</p>
<p>How would you make a security requirement <a title="Testable Requirements" href="http://tynerblain.com/blog/2005/11/30/how-to-deal-with-untestable-requirements-rewrite-them/">measurable and testable</a>?  Hackers just won a $10,000 prize for hacking into a macbook pro a couple weeks ago.  We have no practical way to measure the effectiveness of a security requirement.  &#8220;99% of all hacking attacks must fail&#8221; makes no sense &#8211; there&#8217;s a premise of a predefined amount of hacking activity.</p>
<p>Writing a security specification is the only thing we really can do &#8211; we can only <em>intentionally</em> prevent the types of exploits we know about.  And for me right now, that&#8217;s not very much.  And we can take a design approach / philosophy of deep security in building the product.  But &#8220;Use design approach X&#8221; is not a requirement, it is a constraint.</p>
<h2>Addressing <em>Implicit</em> Requirements</h2>
<p>We can however, address the implicit requirements listed above.  And we can address them with a series of specifications and design constraints:</p>
<ol>
<li>A user shall only be able to view their own private information.</li>
<li>All content attributed to a user shall be created by that user.</li>
<li>User passwords shall be encrypted whenever they are stored.</li>
</ol>
<p>We can also address cross-site scripting (XSS), SQL-injection, and session-fixation attacks with the following:</p>
<ol>
<li>External content must be scrubbed for SQL injection attacks before using it in a database query.</li>
<li>External content must be scrubbed for XSS attacks before displaying it to users.</li>
<li>New sessions must be created whenever a user logs in.</li>
</ol>
<p>These are the attacks that I know about and know how to prevent.  If anyone knows of other attacks (and defenses) that we should incorporate, please let me know via email.</p>
<h2>What About The Prototype?</h2>
<p>I was able to get feedback on the initial prototype from the folks last night without exposing it to attack.  I&#8217;ll be incorporating the above security measures before sharing the prototype with the public at large.  I hope to get that done this week.  Part of the challenge is designing tests that adequately validate the above.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Security+%E2%80%93+Added+Constraint+http%3A%2F%2Fbit.ly%2FfChW6j+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/09/apr-security/&amp;t=APR%3A+Security+%E2%80%93+Added+Constraint" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/09/apr-security/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>APR: Thanks to AustinOnRails Guys!</title>
		<link>http://tynerblain.com/blog/2007/05/08/apr-thanks/</link>
		<comments>http://tynerblain.com/blog/2007/05/08/apr-thanks/#comments</comments>
		<pubDate>Wed, 09 May 2007 04:34:50 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/08/apr-thanks/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F08%2Fapr-thanks%2F", "style": "big", "title": "APR: Thanks to AustinOnRails Guys!" }); Thanks very much to the rock stars who helped us out tonight. Some of these rockstars are former coworkers of mine, and I believe are all active in austinonrails.org. &#8211; next meeting is Tuesday (see the website for more details). In alphabetical order [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F08%252Fapr-thanks%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Thanks%20to%20AustinOnRails%20Guys%21%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F08%2Fapr-thanks%2F", "style": "big", "title": "APR: Thanks to AustinOnRails Guys!" });</script></div>
<p><img title="rock star" alt="rock star" src="http://sehlhorst.smugmug.com/photos/151009987-M.jpg" /></p>
<p>Thanks very much to the rock stars who helped us out tonight.  Some of these rockstars are former coworkers of mine, and I believe are all active in <a title="Austin on Rails" href="http://austinonrails.org/">austinonrails.org</a>. &#8211; next meeting is Tuesday (see the website for more details).</p>
<p>In alphabetical order &#8211; everyone chimed in to fix, coach and teach at one point or another.Thanks very much to&#8230;</p>
<ul>
<li><a title="Internet Bedouin" href="http://damonclinkscales.com/">Damon</a></li>
<li><a title="Collective Insight" href="http://collectiveinsight.net/">David</a></li>
<li><a title="Mars" href="http://marsorange.com/">Mars</a></li>
<li><a title="Used is Better" href="http://www.usedisbetter.com/">Ryan</a></li>
<li><a title="Shad" href="http://www.shadreynolds.com/">Shad</a></li>
<li><a title="Niblets" href="http://niblets.wordpress.com/">Steve</a></li>
</ul>
<p>I hope the links send some visitors your way, and thanks again!</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+APR%3A+Thanks+to+AustinOnRails+Guys%21+http%3A%2F%2Fbit.ly%2Fgbmowp+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/05/08/apr-thanks/&amp;t=APR%3A+Thanks+to+AustinOnRails+Guys%21" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/05/08/apr-thanks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

