<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Scott Burkett&#039;s Pothole on the Infobahn &#187; RAD</title>
	<atom:link href="http://www.scottburkett.com/tag/rad/feed" rel="self" type="application/rss+xml" />
	<link>http://www.scottburkett.com</link>
	<description>Blogging, opining, ruminating, and pontificating on entrepreneurship, venture capital, process improvement, technology, online communities, business networking, IT Management, online social networking, and other things that melt in the warm Atlanta sun.</description>
	<lastBuildDate>Tue, 07 Feb 2012 16:09:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<copyright>2006-2007 </copyright>
	<managingEditor>scott@incursio.com (Scott Burkett&#039;s Pothole on the Infobahn)</managingEditor>
	<webMaster>scott@incursio.com (Scott Burkett&#039;s Pothole on the Infobahn)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://www.scottburkett.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Scott Burkett&#039;s Pothole on the Infobahn</title>
		<link>http://www.scottburkett.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Blogging, opining, ruminating, and pontificating on entrepreneurship, venture capital, technology, online communities, business networking, IT Management, online social networking, and other things that melt in the warm Atlanta sun.</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Scott Burkett&#039;s Pothole on the Infobahn</itunes:author>
	<itunes:owner>
		<itunes:name>Scott Burkett&#039;s Pothole on the Infobahn</itunes:name>
		<itunes:email>scott@incursio.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.scottburkett.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>JAD: Creating a Functionality Matrix</title>
		<link>http://www.scottburkett.com/process-improvement/jad-creating-a-functionality-matrix-107.html</link>
		<comments>http://www.scottburkett.com/process-improvement/jad-creating-a-functionality-matrix-107.html#comments</comments>
		<pubDate>Wed, 08 Nov 2006 13:54:10 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[facilitation]]></category>
		<category><![CDATA[facilitators]]></category>
		<category><![CDATA[functionality_matrix]]></category>
		<category><![CDATA[functional_requirements]]></category>
		<category><![CDATA[IT-Management]]></category>
		<category><![CDATA[JAD]]></category>
		<category><![CDATA[joint_application_design]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[rapid_application_development]]></category>
		<category><![CDATA[requirements_gathering]]></category>
		<category><![CDATA[Software-Process-Improvement]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/process-improvement/2006-04-10/jad-creating-a-functionality-matrix.html</guid>
		<description><![CDATA[As promised in the recent article on JAD Facilitation Basics, this article will focus on the steps needed to create a viable functionality matrix, which will serve to summarize and prioritize the functionality for a proposed software system.<p class="read-more"><a href="http://www.scottburkett.com/process-improvement/jad-creating-a-functionality-matrix-107.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img border="1" align="right" style="margin-left: 10px" id="image141" title="matrix_small.gif" src="http://www.scottburkett.com/wp-content/uploads/2006/01/matrix_small.gif" />As promised in my previous article on JAD Facilitation Basics, this article will focus on the steps needed to create a viable functionality matrix, which will serve to summarize and prioritize the functionality for a proposed software system. Thanks to the recent reader who reminded me that this post was long overdue!</p>
<p><span id="more-107"></span></p>
<p>As a quick refresher, in a JAD context, the functionality matrix represents a prioritized collection of the major functional components of a proposed system.  These functional areas were, hopefully, agreed to by all relevant stakeholders who attended the JAD session(s) that went into its creation.</p>
<p>Before we go further, it is important to point out something.  As much as it pains me to say this, my way is not the only way, nor is it necessarily the best way.  It has worked for me consistently in the past, however.  Hopefully, at a bare minimum, this article will at least give you a framework on which to build your own method(s), or at least spark your imagination a bit.</p>
<p>Before creating the functionality matrix, I recommend having the scribe, or some other able-bodied person, take the controls of a laptop and fire up Microsoft Excel.  Excel represents a fast and easy way to collect and tabulate data.  Excel will become even more important later on, when we begin doing some calculations.  If at all possible, I would recommend being in a room where the laptop can be projected onto the wall.  By doing so, everyone in the room can participate in the creation of the functionality matrix.</p>
<p>At some point during the JAD session, you, as the facilitator, will lead the group through a series of exercises in order to capture the broad requirements of the system. For many new facilitators, this part is the hardest, however, it doesn&#8217;t have to be.  It really, truly is amazing what happens when you simply ask &#8220;ok, what, at a high level, does this system need to do?&#8221; The general flow will be as follows:</p>
<ol>
<li>Brainstorm ideas</li>
<li>Streamline the ideas by grouping or removing</li>
<li>Go to step #1 and repeat as needed</li>
<li>Prioritize the final list of requirement categories</li>
<li>For each high level requirement area, go to step #1 and repeat as many times as necessary (to capture the detailed requirements).</li>
</ol>
<p>When brainstorming requirements, it is important to capture <em>each and every</em> idea.  Some ideas will be great.  Some will be so-so.  A few will be completely worthless in the end.  But capture them <em>all</em>.  By doing so, you are guaranteeing that every voice is behind heard; at least once. <em><strong>Many JAD sessions fail because consensus was not attained, or voices go unheard</strong><strong>.</strong></em></p>
<p align="center"><!--adsense--></p>
<p>The process of <em>brainstorming</em> is used to quickly and efficiently capture a stream of ideas.  It is not a time for discussion, and certainly not the time to argue one&#8217;s case.  If you catch your participants doing this, it is imperative that you remind them of this!  Capture first, discuss later.</p>
<p>It is practically impossible to instruct someone how to conduct a brainstorming session.  The easiest way to learn is to participate in one.  However, here is a small sample of the general flow of a session:</p>
<p><strong>Facilitator</strong>: Ok, we are now ready to capture the high-level requirements of this new system.  We are using a brainstorming session, which means no discussions, only ideas!  We have 10 minutes for this, so just blurt them out.  As you call them out, I will write them up here on the whiteboard. Mike, our scribe, will also capture all of the ideas on his laptop for use later on.  Ready? Begin.</p>
<p><strong>John</strong>: The system should offer basic RFQ functionality for our buyers.</p>
<p><strong>Facilitator</strong>: Ok, good one (writes it on whiteboard).</p>
<p><strong>Susan</strong>: We also need a more in-depth set of RFP functionality.</p>
<p><strong>Facilitator</strong>: Ok, very good.</p>
<p><strong>Roger</strong>: But aren&#8217;t those things sort of the same thing?</p>
<p><strong>Facilitator</strong>: Maybe, maybe not.  Let&#8217;s focus on gathering the rest of the requirements, then we&#8217;ll discuss the merits of each of them in turn.</p>
<p><strong>Jane</strong>: We&#8217;ll need a news portal.</p>
<p><strong>Facilitator</strong>: Got it.</p>
<p><strong>Jane</strong>: And we&#8217;ll also need an online supplier directory.</p>
<p><strong>Facilitator</strong>: Very good.  Let&#8217;s keep going. Faster, if we can.</p>
<p><strong>John</strong>: Permission marketing.</p>
<p><strong>Susan</strong>: Invoicing and billing.</p>
<p><strong>Randy</strong>: Broker integration.</p>
<p><strong>Roger</strong>: Contract management.</p>
<p><strong>Facilitator</strong>: Great! Let&#8217;s keep those ideas flowing!</p>
<p>and so on &#8230;</p>
<p>If you get the team working in a rapid-fire mode, you will be completely <em>amazed</em> at the sheer number (and quality!) of ideas that come forth.</p>
<p>As a footnote here, it may be helpful to have the team &#8220;practice&#8221; a brainstorming session first.  First, pick some arbitrary inane topic.  For example &#8220;the best way to hand wash a car,&#8221; or &#8220;we are building a house, let&#8217;s talk about what features this house needs to have in it.&#8221;  Allocate 5 minutes to the brainstorming session, and let them go through it.  This is a good ice-breaker as well. Give them some feedback on their brainstorming techniques at the end, and then move into the real session.</p>
<p>Once the time limit has expired (the time limit is completely arbitrary, although I recommend keeping it to 10 or 15 minutes at the most), and you have &#8220;broadly&#8221; captured the first round of requirements, it is then time to examine them in turn. Of course, anything the group feels is out of place, or nonessential, can be easily removed from the list.</p>
<p>Frankly, the easiest way to examine the requirements is to simply ask the group to comment openly on the generated list.  Most of the time, they will logically begin funneling similar requirements into broader groupings, which is the ideal scenario.  For example, RFQ, RFP, and contract management functionality might all end up in a bucket called &#8220;transactional requirements.&#8221;  Things like &#8220;receiving&#8221; and &#8220;shipping&#8221; could be logically grouped into a broader &#8220;logistics&#8221; category.  It is up to the group, through your leadership, to determine what the best number and type of categories to use.</p>
<p>Ultimately, you want to have a nice list of 5-10 (or even a dozen) high level areas, with each of them having perhaps a few sub areas within them.  Once you&#8217;ve done this, you should start a second round of brainstorming.  This time, however, the goal is to provide ideas around the current list of functional areas.  We do this for several reasons, but the primary reason is that by seeing the list up on the wall, the participants will naturally begin to expound upon those ideas, and come up with even newer ones &#8230; or things that perhaps were overlooked in the first round of brainstorming.</p>
<p align="center"><!--adsense--></p>
<p>Once this 2nd round has concluded, you should again lead the group through an open discussion of the requirements.  Again, the priority here is to streamline the list &#8211; grouping and removing as needed.  You can theoretically repeat this process any number of times, although generally speaking, 2 or 3 times is sufficient.</p>
<p>Once you&#8217;ve done this, you should now be in possession of the broad, high-level requirement areas for this system.  You are now ready to move into the prioritization phase. We will brainstorm the <em>detailed requirements</em> shortly, but for now, let&#8217;s focus on the the high level requirement areas.</p>
<p>Remember in the previous article where I mentioned that having several thousand dollars in fake money would come in handy?  Well, we&#8217;ve arrived at that discussion!  There are lots of ways to lead a group through a prioritization exercise, but I am partial to what is known as the &#8220;$20 method&#8221;.  In this model, the facilitator gives each participant $20 in singles.  You can also do this without using actual physical fake money, but it is more fun to do it this way.  Each participant can &#8220;spend&#8221; their $20 on whatever functionality they desire.  The more money they spend on an area, the more important that area is to them.  At its core, this is a simple exercise in &#8220;weighting&#8221;.</p>
<p>If John spends $8 on &#8220;logistics&#8221;, and $3 on &#8220;transactional functionality&#8221;, then that means John places a higher value on the logistics functionality within the newly proposed system.  At the end of the exercise, it is interesting to see what areas people spend their money on.  Often times, their areas align politically with their vested interests &#8211; so keep this in mind.</p>
<p>As you can see in this partial screenshot of our Excel model (click image to expand), the business side of the equation was represented by three people (John, Susan, and Mike).  The technical team had 4 members present (Jeff, Roger, Jane, and Jill).  They each spent $20 on the various high-level functional areas (Transaction, Workflow Management, etc.)  You can also see some additional statistics to the right, such as simple summations and averages.  Of note are the color coded cells to the far right, which indicate which control group favored a particular area &#8211; for instance, the technology team spent more money (on average) on Workflow Management than the business team.<br />
<a title="priority1.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.gif" /></p>
<p><a title="priority1.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.gif"> </a><a title="priority1.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.gif"> </a><a title="priority1.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.gif"> </a><a title="priority1.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.gif"> </a></p>
<div style="text-align: center"><a target="_blank" title="priority1.gif" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.gif"><img width="128" height="47" alt="priority1.gif" id="image147" src="http://www.scottburkett.com/wp-content/uploads/2006/01/priority1.thumbnail.gif" /></a></div>
<p>I should point out that all of the functional areas are &#8220;important&#8221; if they&#8217;ve made the final list.  Just because one area doesn&#8217;t get as much attention as the others, doesn&#8217;t mean it isn&#8217;t critical to the system.  It is also important to point out that the final functionality matrix is not necessarily set in stone.  Even though we&#8217;ve applied some basic statistical methods to capturing, grouping, and prioritizing the requirements, in the end, the business drivers may screen that a certain requirement be bumped up the list, or bumped down.  Common sense, of course, should prevail.  The functionality matrix is simply a streamlined viewpoint into the system requirements.</p>
<p>The same weighting method can be applied to the requirements under each major category.  I generally use a separate Excel sheet for this.  As you can see from the screenshot below, the four requirement areas under the larger &#8220;transaction&#8221; category are also prioritized.<br />
<a title="priority2.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.gif" /></p>
<p><a title="priority2.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.gif"> </a><a title="priority2.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.gif"> </a><a title="priority2.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.gif"> </a><a title="priority2.gif" class="imagelink" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.gif"> </a></p>
<div style="text-align: center"><a title="priority2.gif" target="_blank" href="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.gif"><img width="128" height="77" alt="priority2.gif" id="image148" src="http://www.scottburkett.com/wp-content/uploads/2006/01/priority2.thumbnail.gif" /></a></div>
<p>You&#8217;ll also notice that at the top of the sheet, there is a small decision matrix.  This  four quad matrix compares technical complexity on the vertical axis, and business benefit on the horizontal axis. The four quadrants break down as follows:</p>
<ul>
<li>Upper left quadrant (high technical complexity, but low business benefit): Definitely not in phase one</li>
<li>Bottom right quadrant (low technical complexity, but high business benefit): Definitely in phase one</li>
<li>Lower left quadrant (low technical complexity, and low business benefit): Examine options &#8211; Risk averse approach</li>
<li>Upper right quadrant (high technical complexity, and high business benefit): Examine options &#8211; Risk taker approach</li>
</ul>
<p>Hopefully, this is self-explanatory.  The idea is to figure out which quadrant each subfunctional area falls within. To do this, we need to establish some cutoff values. At the top left is a smaller version of the matrix with &#8220;cutoff&#8221; values in it.  These values represent the cutoff values that affect the conditional shading of the cells in the main content area.  The idea is that you should be able to quickly scan the content area to see which functional areas fall within each quadrant of the decision matrix.  For example, the &#8220;contract management&#8221; functional area (under the larger &#8220;Transaction&#8221; category) has a business benefit value of 47.92%.</p>
<p>We got that by taking the average for that line item (10.00 + 8.75 + 10.00) and dividing that number by the total points spent (20, as in $20).  That gives us a simple percentage.  47.92% of the business teams money went into the &#8220;contract management&#8221; functional area.  Since our cutoff value is 30%, the shaded color is green (which according to the decision matrix, would indicate that the business folks feel that this functional area should be in phase one of the system). This area clearly has a high business benefit!</p>
<p>However, the technical team&#8217;s score is 45.83% &#8211; which is over the cutoff value of 25%.  This means that developing this functional area will come with a high level of technical complexity (meaning risk!).</p>
<p>So now we have a situation where both sides of the equation (business and technology) feel that this area has a high value.  This would push us to the upper right quadrant (shaded yellow).   I know this all sounds a bit complicated &#8211; and it is.  But hopefully this all makes some sense to you.</p>
<p>This post has run a bit long (okay, way long.)  I will save the final bit (where we dive into the detailed requirements and finalize things) for another post.  I&#8217;ll also provide some Excel templates for you to use as well.</p>
<p>Cheers, and happy JAD&#8217;ing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/process-improvement/jad-creating-a-functionality-matrix-107.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JAD: Facilitation Workshop Basics</title>
		<link>http://www.scottburkett.com/process-improvement/jad-facilitation-workshop-basics-122.html</link>
		<comments>http://www.scottburkett.com/process-improvement/jad-facilitation-workshop-basics-122.html#comments</comments>
		<pubDate>Mon, 13 Mar 2006 11:00:08 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[facilitation]]></category>
		<category><![CDATA[facilitators]]></category>
		<category><![CDATA[functional_requirements]]></category>
		<category><![CDATA[IT-Management]]></category>
		<category><![CDATA[JAD]]></category>
		<category><![CDATA[joint_application_design]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[rapid_application_development]]></category>
		<category><![CDATA[requirements_gathering]]></category>
		<category><![CDATA[Software-Process-Improvement]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/process-improvement/2006-03-13/jad-facilitation-workshop-basics.html</guid>
		<description><![CDATA[This article will take a more hands-on look at conducting JAD workshop sessions. While there is no single best way to accomplish JAD objectives, I will try to present a format that has worked nicely for me in the past, in the hopes that it will give you some ideas as to how best to structure your own sessions.<p class="read-more"><a href="http://www.scottburkett.com/process-improvement/jad-facilitation-workshop-basics-122.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p></p>
<div style="text-align: center"><img width="128" height="11" alt="divider.png" id="image163" src="http://www.scottburkett.com/wp-content/uploads/2006/01/divider.png" /></div>
<p align="left"><img hspace="10" align="right" id="image123" title="facilitation.gif" src="http://www.scottburkett.com/wp-content/uploads/2006/01/facilitation.gif" />As promised in my post on <a href="http://www.scottburkett.com/index.php/archives/112">IT Facilitation Skills</a>, this article will take a more &#8220;hands-on&#8221; look at conducting JAD workshop sessions. While there is no single &#8220;best&#8221; way to accomplish JAD objectives, I will try to present a format that has worked nicely for me in the past, in the hopes that it will give you some ideas as to how best to structure your own sessions.<span id="more-122"></span></p>
<p>JAD (Joint Application Design), is a software design process which attempts to bring together various business stakeholders (most likely users) and IT professionals in a highly focused workshop environment.   Why do we prefer this format?  Well, in the old days (gee, all of 10 or 15 years ago) most sets of functional requirements were cobbled up by business analysts and &#8220;tossed&#8221; over the wall to the software engineers, whereupon we were supposed to plop a handful of arcane ingredients into a big pot, mutter a few incoherent passages from Ken Thompson&#8217;s <em>UNIX Philosophy</em> and stir until some magic software solution poofed out of it. Alas, the road to JAD is paved with the morasses of projects past that have stemmed from poor requirements gathering.</p>
<p>Of course, the problem with this is obvious &#8211; business analysts are generally not technologists, and vice-versa. Business personnel are not necessarily adept at taking into account technical constraints/limitations, best practices, or the newest innovations. Likewise, technologists have not historically been overly proficient at cobbling together business requirements.   It has been unequivocally proven that by bringing both sides of the house together to define the requirements that a vast majority of common problems and misunderstandings can be dealt with up front (where they cost $1,000), rather than in the 47th week of the project (where they cost $1.3M).</p>
<p>Make no mistake, JAD is not the panacea for software development, or even requirements gathering, for that matter.  It can, however, provide a pretty good path of least resistance.  Theoretically speaking, the big advantage of JAD is <em>accuracy</em>, or the ability to deliver a system with the functionality that is actually needed.  In addition, JAD affords you with a dramatic shortening of the time it takes to complete a project (due to having tighter functional specs up front). Of course, your mileage may vary &#8211; I have found that having a very experienced facilitator goes a long way toward determining the eventual impact of the session(s). The use of JAD also improves the quality of the final product by focusing on the gathering of accurate requirements, thus reducing the likelihood of errors that are expensive to correct later on.</p>
<p>Much of this information is taken from &#8220;consulting 101&#8243; &#8211; if you have some business background, a lot of the initial concepts may be familiar to you.  But keep reading &#8211; we&#8217;ll get vertical soon enough. I apologize in advance for this article&#8217;s length, but I don&#8217;t believe in &#8220;blogging for blogging&#8217;s sake.&#8221;  I prefer my blog entries to have substance and value.  I hope you will agree!</p>
<p><strong>Workshop Preparation</strong></p>
<p>As any experienced facilitator will tell you, quite a bit of the work effort you will put in will occur well before the sessions even begin.</p>
<p>The very first thing that the facilitator needs to do is to ensure that he/she fully understands the context of the business problem being addressed. Note that I did not say that &#8220;granular industry knowledge&#8221; was necessary, nor did I mention anything about the facilitator having technical prowess.  The focus here should be on  understanding the context of <em>the business problem</em>.</p>
<p><em>What </em><em>is the problem we are dealing with here?  Who is affected by it? What are we trying to accomplish.  What stakeholders will be affected by this system, and how many of them will attend the session(s)?</em></p>
<p>Once you have a grasp of the breadth of things, you will be in a position to direct the subject matter experts to drill down vertically into the problem. Interviewing various stakeholders is a good way to cobble up the knowledge that you need &#8211; this can usually be done pretty quickly.</p>
<p>Don&#8217;t be surprised, however, if you get to day one of the session and realize that you overlooked an important aspect of the group dynamic or the business problem.  This can (and will) happen.  Just prepare yourself as best as you can up front, and be prepared to augment that knowledge with things you pick up on-the-fly during the session.</p>
<p>As far as physical, tangible items goes, here is a list of items that I have found to be helpful during a JAD session:</p>
<ol>
<li>Large whiteboard (preferrably mounted on wall), markers, eraser</li>
<li>Large Post-it style easel pads</li>
<li>Projector (for use with workshop slides)</li>
<li>Laptop with Microsoft Office suite (Word, Excel, etc.), or some other set of tools (Corel Office, Appleworks, Lotus Smart Suite, OpenOffice/StarOffice, etc.)</li>
<li>Several thousand dollars in fake money (I&#8217;ll explain later &#8211; ha!)</li>
</ol>
<p align="center"><!--adsense--></p>
<p><strong>Workshop Agenda</strong></p>
<p>As a starting point, I like to break down requirements gathering into two distinct phases &#8211; both phases consisting of facilitated JAD sessions.  In the first JAD session, we will gather very high-level requirements and funnel them into what I call a <em>prioritized functionality matrix</em>.  In the second session, we take that functionality matrix and generate draft use-cases from them.</p>
<p>For the first session, which I think is the most critical, I tend to follow a high-level agenda similar to the following:</p>
<ul>
<li>Introductions:</li>
<ul>
<li>Session Roles</li>
<li>Ground Rules</li>
<li>Objectives</li>
</ul>
<li>Reaffirm:</li>
<ul>
<li>Vision</li>
<li>Business Drivers</li>
<li>Business Context</li>
</ul>
<li>Baseline Functionality Matrix</li>
<li>Wrap up</li>
</ul>
<p>We will discuss each of these items in more detail below.</p>
<p>For the second session, the agenda would look something like this:</p>
<ul>
<li>Quick Review of Functionality Matrix</li>
<li>Use Case Mini-Tutorial (to educate the stakeholders)</li>
<li>Use Case Identification</li>
<li>Draft Use Cases</li>
<li>Wrap Up</li>
<li>Questions</li>
<li>Next Steps</li>
</ul>
<p><em>NOTE: We&#8217;ll cover the detailed creation of the functionality matrix and use cases in separate articles.<br />
</em></p>
<p><strong>Session Roles</strong></p>
<p>Before beginning your session, the facilitator should work with the various stakeholder participants to identify those individuals who will fill certain critical session-specific roles.  These roles are discussed briefly below, but it is incredibly important that these people be identified in advance, and are not surprised by their assignments on the day of the session!</p>
<p><em>The Facilitator:</em> This is the easy one.  This is the person leading (facilitating!) the session.  For more info, see my article on <a href="http://www.scottburkett.com/index.php/archives/112">IT facilitation skills</a>.</p>
<p><em>Timekeeper:</em> Simply put, this person is responsible for watching the clock and alerting the facilitator when sessions (or segments of a session) are approaching the pre-determined cutoff point.  For example, the facilitator may decide to give the group 5 minutes to brainstorm solutions to a particular problem.  The timekeeper might alert the facilitator when the clock hits 4 minutes (1 minute warning), and then once it hits the 5 minute limit. This can be done silently by a nod of the head or raising of the hand, or even verbally. Maintaining adherance to a time schedule will help keep people focused, and assist in keeping things rolling along.</p>
<p><em>Scribe:</em> Outside of the facilitator, this person probably has the most instrumental role in the success of a session.  The scribe is essentially the secretary &#8211; they keep track of all major outcomes of the session.  This is similar to meeting minutes, but is more detailed. This can be done via pen and paper, but in most cases, it is probably best done on a laptop, where the person can switch around between Excel, Word, and other applications.  Depending upon the makeup of the stakeholder groups in the room, this person may also be the one responsible for drafting the functionality matrix (in real-time, with input from others).</p>
<p><em>Parking Lot Attendant:</em> Invariably, things are going to arise that are out of the scope of the session&#8217;s guidelines.  In order to keep from getting off track and derailing the session, the facilitator may reserve the right to &#8220;park&#8221; those issues or questions in the &#8220;parking lot&#8221; so that they may be addressed later.  I generally like to address the parking lot issues list at the end of the session (or at the end of each day, if the session will span multiple days).</p>
<p><em>SMEs/Participants/Devil’s Advocates:</em> Everyone in the room, including the people filling the roles above.  Remember, the more valued input you have, the more productive your session will be!</p>
<p>You may decide to come up with other ancillary responsibilities and roles &#8211; this is your discretion as the facilitator.  Just be careful not to over-delegate to the participants &#8211; you want the principal parties to be focused on the task at hand, and not immersed in some other duties that will detract from this.</p>
<p><strong>A Bit on Brainstorming<br />
</strong></p>
<p>For those of you who may be new to the concept of brainstorming, I will simply refer you to the great entry over at <a target="_blank" title="_blank" href="http://en.wikipedia.org/wiki/Brainstorming">WikiPedia</a>. However, I will state that I am a big fan of whiteboards, and an even bigger fan of the big Post-It easel style pads.  Those are great for capturing ideas quickly, ripping them off, sticking them on the wall, and moving along to the next idea.</p>
<p><strong>Ground Rules</strong></p>
<p>It always pays to lay out the ground rules up front, so that everyone is on the same page from the beginning of the session.  What these rules are, in the end, is up to you as the facilitator.  In general, I like to use these as a starting point:</p>
<ul>
<li>Stay focused</li>
<li>Be honest</li>
<li>Respect opinions</li>
<li>Stay on time</li>
<li>Use the parking lot</li>
<li>Brainstorming rules</li>
<ul>
<li>There are no bad ideas</li>
<li>No criticism of an idea</li>
<li>Strive for quantity, not quality</li>
<li>Strive for creativity, think out of the box</li>
<li>Build on the ideas of others</li>
</ul>
</ul>
<p>After I explain these rules to the group, I generally ask if anyone else in the room has any other ideas for ground rules to add to the list for the session.  Occasionally, someone will throw something out there (no checking email during the session, turn off cell phones, etc.). Calling for other ground rules is a great way to begin empowering the participants, and to set the tone for the session.</p>
<p><strong>Objectives</strong></p>
<p>Once the session roles and ground rules have been announced, I like to immediately state what the official &#8220;objectives&#8221; of the JAD session are.  You would be amazed on the first day at how many people actually proclaim things such as &#8220;oh, I thought that JAD meant we were going to build the application together&#8221; or &#8220;I thought we were just going to talk about the need for the project, I didn&#8217;t know we were designing it!&#8221;  The objectives I usually use as a starting point are:</p>
<ul>
<li>Define the system scope</li>
<li>Draft use case models for primary scenarios</li>
<li>Define the domain model/glossary</li>
</ul>
<p>The &#8220;system scope&#8221; is going to be defined largely by our functionality matrix (deliverable from the 1st session), whereas the use case models and domain model/glossary are going to be outputs from the 2nd session.</p>
<p>You may feel the urge to add additional objectives to this list.  My only advice to you here would be to make sure to tie any new objectives to specific deliverables that will come out of your session(s).</p>
<p><strong>Reaffirmations<br />
</strong></p>
<p>I like to go through a series of &#8220;reaffirmations&#8221; before I lead the group into unchartered waters.  I want everyone in the room, from the lowliest coder to the most senior executive, to understand <em>why</em> we are building this product, <em>who</em> it will affect and benefit, and <em>what</em> value it will bring to the market or stakeholders.</p>
<p>Reaffirming the <em>vision</em> of the project is first on the list.  The &#8220;vision&#8221; could be anything, really, but it should be related in some way to the project.  If your organization is following a PMI style project plan, then this is probably the project charter.  If you are building a software platform for a startup company, then this is probably the actual vision statement of the company itself.</p>
<p>Next, I like to reaffirm the <em>business drivers </em>and <em>business context</em>.  <em>Why</em> are we doing all of this again? What business problem will this project solve? How big is the market we are talking about here? What is the value proposition?</p>
<p>Let&#8217;s state all of this as a matter of fact &#8211; level the playing field by educating (or-re-educating) everyone in the room.</p>
<p><strong>Critical Success Factors</strong></p>
<p align="left">At this stage in the game, we really haven&#8217;t done <em>anything</em> toward the actual design of the system.  This is a good thing.  All of this groundwork will serve us well as we move further into the process.</p>
<p align="left">After the reaffirmations, I like to do a quick 5-10 minute brainstorming session where the group throws out potential <em>critical success factors </em>(CSFs).  This allows the stakeholders to identify very succinctly those things that will make or break this project or product.</p>
<p align="left">Consider these examples:</p>
<ul>
<li>Head of Marketing: <em>&#8220;It is imperative that we have 24&#215;7 uptime &#8211; availability will be critical to our customers!&#8221;</em></li>
<li>Lead Developer: <em>&#8220;We should implement this system using an open architecture in order to easily integrate new technologies or functionality in the future.&#8221;</em></li>
<li>Business Analyst: <em>&#8220;It is important that we have executive buy-in and participation from our key industry design partners.&#8221;</em></li>
</ul>
<p>You get the idea.  Don&#8217;t camp out in this stage &#8211; this should be quick, but also helpful in setting everyone&#8217;s expectations and understandings.</p>
<p><strong>Current Processes (As-Is) / </strong><strong>Future Processes (To-Be)</strong><strong><br />
</strong></p>
<p>Once we&#8217;ve identified the CSFs, I like to do a very brief &#8220;as-is/to-be&#8221; analysis.  This may or may not be something that every project will use, but I do find them useful in two cases. If you are designing a new product (or working with a startup company), then the &#8220;as-is&#8221; will probably represent the current state of the industry.    If you are doing business process reengineering, and your software product will be a part of the future processes, then the &#8220;as-is&#8221; will probably represent the current business environment.</p>
<p>In either event, the questions you will ask will be the same:</p>
<ul>
<li>What are the major flows of information?</li>
<li>Who is involved?</li>
<li>How are stakeholders doing business now?</li>
<li>What do those processes look like?</li>
<li>What technologies do they use?</li>
<li>What tools do they use now?</li>
</ul>
<p>Additionally, in either event, the &#8220;to-be&#8221; part represents the deliverables/outcomes of the project itself.</p>
<p>Why do we spend time on this?  I have found that if all of the stakeholders, including the development team, have an understanding of where we&#8217;re going, and what things look like in the current state of affairs, the end result is a much more cohesive and functional product.</p>
<p>I usually spend 45 minutes on the &#8220;as-is&#8221; area, and another 45 minutes or so on the &#8220;to-be&#8221; area.  I would recommend a break in between!</p>
<p><strong>Assumptions</strong></p>
<p>Getting weary yet? Don&#8217;t fret, as we&#8217;re nearly done with laying the groundwork!  Only one last item remains.  The final area that I like to touch on before leading the team into the design process is the generation of relevant <em>assumptions</em>.  These are generated via a short (10-minute) brainstorming session.  These should represent things that the project design team are assuming to be true, or in place.  Generally, they represent inputs to the system, or owners of certain things. I like to brainstorm these up front, so that the group doesn&#8217;t keep disclaiming things all throughout the session.<br />
Examples:</p>
<ul>
<li>&#8220;Our major design partners will be responsible for content management within the product catalog.&#8221;</li>
<li>&#8220;The initial database content will be provided by Acme Corporation, one of our key partners.&#8221;</li>
<li>&#8220;Marketing will provide a list of 10 qualified beta customers before we launch.&#8221;</li>
</ul>
<p>One caveat here.  If you sense that the group is starting to &#8220;haggle&#8221; or argue over the assumptions, then they apparently are not assumptions to begin with.  In such cases, either choose to put the issue in the parking lot, or make a note to revisit it at a later time during the session, where it can be discussed in a more streamlined manner.</p>
<p><strong>Functionality Matrix</strong></p>
<p>Congratulations, you&#8217;ve made it through all of the groundwork exercises.  We&#8217;re ready to begin taking all of the information from the brains of the participants and funneling them into a prioritized functionality matrix.</p>
<p>The functionality matrix is essentially a prioritized grid of the major functional areas within the proposed system.  The matrix can be developed using whatever tools you wish, although I recommend Excel, as I find its ability to do quick calculations for me (important later on) and conditionally formatting cell colors to be handy.</p>
<p>However, given the sheer scope of what is involved in creating a functionality matrix, I will save it for a separate article.  Don&#8217;t worry, that article has already been written &#8211; it will publish a week from the date of publication on this article, so be sure to check in then for a more detailed walkthrough. In that article, I&#8217;ll also share with you the reasons for bringing several thousand dollars in fake money to your JAD session. :)</p>
<p align="center"><!--adsense--></p>
<p><strong>Wrap-Up</strong></p>
<p>Hopefully, the functionality matrix came together in short order.  Even the most demanding set of requirements should be able to be pulled together in no more than 2 days (but most often in an afternoon).  Don&#8217;t forget to address any issues that were plopped into the &#8220;parking lot&#8221; before going home!</p>
<p><strong>Next steps: Use Cases</strong></p>
<p>Let the participants know that all of their hard work is about to be funneled into the <a href="http://www.scottburkett.com/index.php/process-improvement/2006-11-08/jad-creating-a-functionality-matrix.html">next phase</a>, where the individual use-cases will be developed.  These will provide the &#8220;substance&#8221; behind the functionality matrix.</p>
<p><strong>My final thoughts<br />
</strong></p>
<p>I know this was a lot of information, and if you&#8217;ve made it this far, then I commend you!  While I think all of these ideas are a fantastic way to approach your JAD sessions, I would like to say again, however, that these are not the only areas that you can explore.  Use your imagination!  Every session will be different, because every project is different.  Just follow your instincts, and I&#8217;m sure you&#8217;ll do fine.</p>
<p>In order to make things a little easier for you, I am including a bare-bones Powerpoint presentation that lays out the flow of this type of JAD session (coming later this week!).</p>
<p>Cheers, and happy JAD&#8217;ing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/process-improvement/jad-facilitation-workshop-basics-122.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
			<enclosure url="http://www.scottburkett.com/audio/podcast_13_MAR_2006.mp3" length="31873985" type="audio/mpeg" />
		<itunes:duration>0:33:12</itunes:duration>
		<itunes:subtitle>This article will take a more hands-on look at conducting JAD workshop sessions. While there is no single best way to accomplish JAD objectives, I will try to present a format that has worked nicely for me in the past, in the hopes that it will give[...]</itunes:subtitle>
		<itunes:summary>This article will take a more hands-on look at conducting JAD workshop sessions. While there is no single best way to accomplish JAD objectives, I will try to present a format that has worked nicely for me in the past, in the hopes that it will give you some ideas as to how best to structure your own sessions.</itunes:summary>
		<itunes:author>scott@incursio.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
	</item>
		<item>
		<title>JAD: Facilitation Skills</title>
		<link>http://www.scottburkett.com/process-improvement/it-facilitation-skills-112.html</link>
		<comments>http://www.scottburkett.com/process-improvement/it-facilitation-skills-112.html#comments</comments>
		<pubDate>Mon, 06 Mar 2006 11:00:54 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[facilitation]]></category>
		<category><![CDATA[facilitators]]></category>
		<category><![CDATA[functional_requirements]]></category>
		<category><![CDATA[JAD]]></category>
		<category><![CDATA[joint_application_design]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[rapid_application_development]]></category>
		<category><![CDATA[requirements_gathering]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/112</guid>
		<description><![CDATA[Gathering functional requirements is a fundamental part of any software development methodology, yet many IT leaders seem to avoid honing their facilitation skills, something I consider to be a critical tool in this process. This is the first in a series of in-depth articles on conducting JAD sessions.<p class="read-more"><a href="http://www.scottburkett.com/process-improvement/it-facilitation-skills-112.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p></p>
<div style="text-align: center"><img width="128" height="11" id="image163" alt="divider.png" src="http://www.scottburkett.com/wp-content/uploads/2006/01/divider.png" /></div>
<p><img style="margin-left:10px" align="right" id="image113" src="http://www.scottburkett.com/wp-content/uploads/2006/01/facilitation_lrg.jpg" /></p>
<p>As Napoleon Bonaparte once quipped, &#8220;<em>there is somebody wiser than any of us, and that is all of us</em>.&#8221;   Gathering functional requirements is a fundamental part of any software development methodology, yet many IT leaders seem to avoid honing their <em>facilitation skills</em>, something I consider to be a critical tool in this process.<span id="more-112"></span></p>
<p>IT leaders spend quite a bit of time (hopefully) focusing on process improvement and methodology.  They spend a substantial portion of their time focusing on things such as Six Sigma, Agile, waterfall, RUP, SCRUM, eXtreme Programming (XP), and  and a host of other silly-sounding names.  However, even the most robust software development methodology will not save a project wherein the requirements have not been adequately defined. The process of facilitation is the linchpin on which the vast majority of current IT buzzwords and acronyms solidly relies upon, therefore it is in the best interest of the modern IT leader to examine and refine this aspect of their responsibilities.</p>
<p>Additionally, we hear so much buzz about IT leaders who can &#8220;bridge the gap&#8221; between the business drivers and the technology which brings it all to life.  Sadly, too many people throw this jargon around loosely, without realizing that ramping up one&#8217;s facilitation skills is one of the best (and easiest!) ways to achieve this.</p>
<p><em>Facilitation</em> is described by the Merriam-Webster dictionary as simply &#8220;to make easier&#8221; or &#8220;to help bring about.&#8221;  The act of facilitation in a business context generally refers to the process of designing and running a successful meeting of some sort.</p>
<p>Specifically, facilitation concerns itself with all of the tasks needed to run a <em>productive </em>and <em>impartial </em>meeting, while serving the &#8220;needs of the group&#8221;.  In the real IT world, the &#8220;needs&#8221; of the group will most often focus around some sort of business objective, such as gathering functional requirements for a software project or determining the best place to install a new data center. Typically, this is done by conducting a <a target="_blank" title="_blank" href="http://www.credata.com/research/jad.html">JAD</a> requirements gathering session. I will most likely address the area of how to actually conduct a JAD session in a later article.  In this piece, however, I&#8217;d like to spend our time sharing my thoughts on facilitation &#8220;soft&#8221; skills themselves.</p>
<p>Taking the lead in this process is the <em>facilitator</em>, whose primary job is to create and maintain the proper <em>circumstances </em>for discussion. In addition to monitoring and enforcing the discussion rules, the facilitator must make a decision every time a participant speaks. What do I say next? What if this current idea runs to a logical conclusion? Where will we go next?  Should I call on another person to provide an alternative viewpoint?  Should I stop this person from dominating the conversation? And so forth.</p>
<p>At the end of the day, the facilitator can choose to <em>ask questions</em> of the participants, <em>make statements </em>concerning the progress of the session, or simply <em>remain silent</em>. Questions are asked for the obvious reason. By asking questions, the facilitator is able to elicit responses, redirect the conversation (if it is going into a nontargeted or unproductive area), or to help the participants clarify, elaborate, or justify their statements.</p>
<p>By making statements of their own, the facilitator is able to invite questions, share thoughts, or to summarize things that have been said during the session (which benefits everyone).  I can&#8217;t tell you how many times that potential problems have been avoided by the facilitator simply attempting to restate what has been said.  It&#8217;s like that old game where you say the same thing to a room full of people, and ask them to then write it down.  You always seem to end up with a variety of twists on the same story. It is probably meaningful if everyone understands that we are expecting to process 10,000 transactions a day from 100 customers, rather than 10,000 customers with 100 transactions each.</p>
<p>Perhaps the most important aspect of being a good facilitator is the concept of <em>neutrality</em>.  It is imperative that the facilitator remain a neutral party throughout the lifetime of the session(s).  As you can imagine, this is not always an easy thing to do, especially if your development team is on one side of the table, and your business leaders or clients are on the other.  Nevertheless, be sure to introduce yourself at the beginning of the session, <em>clearly</em> define your role up front, and make an explicit agreement with the group that you will make every effort not to manipulate the discussions or become embattled at the detail level.</p>
<p>The group <em><strong>must </strong></em>have the understanding that you are there to serve them.  If this trust level is breached, then the validity and integrity of the session could be in jeopardy.   Don&#8217;t hesitate to <em>ask the group</em> how you are doing from time to time.  Are things moving too slowly? too quickly? Are the discussions remaining on-topic, or can you do a better job keeping things together? Don&#8217;t get me wrong, you don&#8217;t want to do this at the end of every segment. However, there is certainly nothing wrong with this practice, and it will reinforce for the group your sense of command, accountability, and desire to remain neutral.</p>
<p>Verbal involvement on the part of the facilitator is used to keep the discussion moving along its intended path.  The level of verbal involvement by the facilitator will vary from one session to the next, due primarily to the changing needs, personalities, and group dynamic of the participants.  However, the facilitator should be careful to balance his/her verbal participation with that of the group.  If the facilitator is talking <em>too much</em>, then chances are, not enough content is flowing into the discussion from the relevant parties, and the right opinions are probably not surfacing.  If the facilitator sits in the corner and <em>says very little</em>, then the session runs the risk of spiraling out of control, with off-topic discussions, lack of consensus-building, and so forth, eventually devolving into a full-fledged goat rodeo.</p>
<p>So how do you strike the right balance of verbal involvement? For starters, the facilitator should listen closely to the participants, and ensure that <em>they </em>are listening to <em>each other</em>. This will have the desired outcome spurring on conversation. Unless your participants are openly communicating with one another, then the session is a bust.</p>
<p>It is possible that not everyone in the room will <em>want</em> to participate.  I recalled this one particular JAD session that I conducted a few years back within the radio industry.  One of the stakeholder groups represented in the session were some folks whose jobs would be eliminated by the software solution we were designing.  Suffice it to say, they weren&#8217;t necessarily forthcoming with ideas during the meetings.</p>
<p>Nevertheless, as a facilitator, you should encourage each participant to contribute to the dialogue.  In situations where you have potentially adversarial groups in the room, you may need to take measures to protect certain participants from personal criticism. You may also need to prevent the focus from being on personalities, and concentrate everyone&#8217;s attention on the issues at hand.</p>
<p>Occasionally, the facilitator may walk into a situation where he or she needs to protect the group from one person&#8217;s dominance, or the dominance of a particular faction within the room. This is especially critical, given the overarching goal of soliciting as many ideas and as much feedback as possible, from all stakeholders in the room.  In extreme instances, the facilitator may need to pull the offending person(s) aside during a break, and discuss the need for other views to be heard. Generally, though, this sort of thing can be avoided by simply calling out to other people in the room, to give them a chance to be heard.</p>
<p>Sometimes,  you may sense that a particular person or stakeholder group is not being as participative as you&#8217;d like.  These &#8220;silent&#8221; players often hold the key to breaking through an impasse, or bringing the convergence of ideas to life.  Many of them <em>want </em>to be heard, but lack the courage, or desire to speak up on their own. You should respect their silence, but only to a point.  After all, if a stakeholder is just sitting in the room and not adding value, then it is a wasted seat.  The facilitator should provide logical &#8220;openings&#8221; for such people to insert themselves into the discussion.  If you sense that someone has something to say, but for whatever reason, is biting their tongue, call &#8216;em out gently, and see where it takes you.</p>
<p>Remember to be an <em>energizer</em> for the discussion.  Get &#8216;em fired up.  Hopefully, the participants are all there to find help in solving problems or addressing the issues at hand.  They are relying on you, as the facilitator, to assist them in navigating the waters and obstacles that lie ahead. If you lead by example, and set a positive tone for them, your session should go smoothly.</p>
<p>Click here for part two in this series: <a href="http://www.scottburkett.com/index.php/archives/122">JAD Facilitation Workshop Basics</a><br />
Cheers, and happy JAD&#8217;ing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/process-improvement/it-facilitation-skills-112.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<enclosure url="http://www.scottburkett.com/audio/podcast_06_MAR_2006.mp3" length="15940861" type="audio/mpeg" />
		<itunes:duration>0:16:36</itunes:duration>
		<itunes:subtitle>Gathering functional requirements is a fundamental part of any software development methodology, yet many IT leaders seem to avoid honing their facilitation skills, something I consider to be a critical tool in this process. This is the first in a s[...]</itunes:subtitle>
		<itunes:summary>Gathering functional requirements is a fundamental part of any software development methodology, yet many IT leaders seem to avoid honing their facilitation skills, something I consider to be a critical tool in this process. This is the first in a series of in-depth articles on conducting JAD sessions.</itunes:summary>
		<itunes:keywords>Podcasts</itunes:keywords>
		<itunes:author>scott@incursio.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
	</item>
		<item>
		<title>SPIN: Pitfalls of Iterative Development</title>
		<link>http://www.scottburkett.com/process-improvement/spin-tbd-137.html</link>
		<comments>http://www.scottburkett.com/process-improvement/spin-tbd-137.html#comments</comments>
		<pubDate>Thu, 02 Mar 2006 22:00:10 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[iterative_development]]></category>
		<category><![CDATA[process_improvement]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[SPIN]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/137</guid>
		<description><![CDATA[Lois Zells, an international author, lecturer, and business consultant, will be presenting at our Atlanta SPIN (Software Process Improvement Network) meeting on Wednesday, March 14th, at 6:30pm. This will be a combined meeting with the AQAA (Atlanta Quality Assurance Association), and will be held at the Dunwoody Public Library. The topic will be &#8220;Still Searching &#8230;<p class="read-more"><a href="http://www.scottburkett.com/process-improvement/spin-tbd-137.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img hspace="10" align="right" title="zells.jpg" id="image138" src="http://www.scottburkett.com/wp-content/uploads/2006/01/zells.jpg" />Lois Zells, an international author, lecturer, and business consultant, will be presenting at our Atlanta SPIN (Software Process Improvement Network) meeting on Wednesday, March 14th, at 6:30pm. This will be a combined meeting with the AQAA (Atlanta Quality Assurance Association), and will be held at the Dunwoody Public Library.</p>
<p>The topic will be &#8220;Still Searching For the Silver Bullet: Pitfalls of RAD, Agile/XP and Other Forms of Iterative Development&#8221;<br />
<span id="more-137"></span></p>
<p><strong> Abstract:</strong> In our never-ending search for faster, as well foolproof, ways of doing development, we continue to chase after promises that often fall short of expectations. Come hear Lois Zells give a brand new presentation about the project management pros and cons of RAD (Rapid Application Development,) Agile/XP, Evolutionary Development, Iterative Development, and Prototyping. Hear the latest on why these types of projects are still failing and how to avoid the pitfalls. Have a common sense discussion of how to manage realistic expectations before projects go awry. This session is apropos for all levels of the IS organization from analyst/programmer to CIO, from business unit user to business unit project participant, from project lead to program manager, albeit technical or non-technical..</p>
<p><strong> Bio:</strong> Lois Zells is an international author, lecturer, and business consultant, specializing in software engineering consulting. A popular speaker at European and United States conferences, she has spoken at the American Society for Quality Control, The Quality Assurance Institute, the Association for Computing Machinery, the Institute of Electrical and Electronic Engineers, the Cap Gemini Institute, the Association for Systems Management, the Berlin COMPAS Expo, ComputerWorld Germany Software Forum For Europe, PC Expo, Cap Gemini London, Technology Transfer Institute America, Technology Transfer Italy, IBM&#8217;s Users Groups: Guide and Share, the Data Processing Financial Management Association, the Canadian Information Processing Society, the Project Management Institute, the Data Processing Management Association, the Federal Computer Conference, the Structured Development Forum, the Structured Techniques Association, the National Computer Conference, the AFIPS Office Automation Conference, the Year 2000 Conference &#038; Expo, and Brainstorm Group’s Y2k Conference.</p>
<p>Ms. Zells is the Co-founder and Past Executive Advisory Chair for the 20,000-member Information Systems Specific Interest Group of the Project Management Institute, a worldwide organization of 80,000 plus members. She was honored as a PMI woman of the Year in 1993; and is co-honoree of the PMI Wilson/Zells Scholarship Fund.</p>
<p>Because of her acknowledged expertise in software engineering and project management, Ms. Zells frequently serves as an expert witness in multi-million dollar software litigations. She has also served as an examiner for the Arizona Statewide Baldridge Award and served for several years on the review committee for the revision of ISO 9000-3 (International Standard ISO/IEC 12207.)</p>
<p>Ms. Zells was also on the Advisory Board for PC Expo, one of the two largest PC conferences in the world. She has also served on the Board of Governors of the Brainstorm Group. Ms. Zells is the author of (and consultant in) several popular management workshops in strategic planning, project management, total quality management, strategic systems planning, process maturity assessments, systems development methodologies and techniques, business process re-engineering, and systems maintenance.</p>
<p>She has authored the best seller, “Managing Software Projects” and has published many articles in the major periodicals of the industry. For several years, Ms. Zells was a contributing editor for “Application Development Trends.” She is also the developer of the Total Quality Management seminar series &#8220;Software Excellence Through Total Quality Management.” Her most popular seminar series is the totally-integrated, three-tier learning program on software engineering project management called “Successful Projects: The Common Sense Approach.” Ms. Zells has written the introductory chapter for “Total Quality Management for Software,” published by Van Nostrand Reinhold and the information systems chapter for the AMA&#8217;s “Program and Project Handbook.” She is now also working on her second book: “The Practical Guide To Successful Projects.”</p>
<p>Ms. Zells has been a significant contributor and participant in a long-range strategic planning innovation search—sponsored by the Advanced Systems Concepts Office of the U.S. Army Information Systems Command and jointly managed by SRI International and Mandex, Inc.</p>
<p>Ms. Zells&#8217; other clients range from the Fortune 100 firms to new start-up ventures and are spread across a broad array of industries. She has worked with a large international computer manufacturer, a major international steel manufacturer, several large nationwide insurance companies, an international telecommunications company, a major food processor, a large health-care provider, a major aerospace manufacturer, and two international electronics firms—in helping them to turn around and improve their software engineering processes, by defining their requirements for achieving software maturity and creating an environment conducive to successful high-quality projects, by also developing their software engineering and project management programs and seminars, and by consulting on several significant projects.</p>
<p>Highly specialized in Structured Analysis, Structured Design, and Structured Programming, she taught these subjects for five years at Phoenix College as well as for three and a half years with Yourdon, Inc. (an international seminars/consulting firm), where she also developed their popular project management curriculum, the Project Planning and Control Workshop. During this time, she was personally trained as a disciple of Ed Yourdon, Tom DeMarco, and Tim Lister: the leaders in the field. She has also used the structured techniques and various CASE tools on many projects that she either participated in, consulted on, or managed.</p>
<p>Ms. Zells graduated Summa Cum Laude in Data Processing Management from the University of Baltimore and did her master’s studies in Computer Sciences at Johns Hopkins University and Arizona State University.</p>
<p>Having served as consultant, department manager, project manager, systems analyst, operating systems programmer, and applications programmer/analyst, Ms. Zells has over twenty-five years in data processing. With many years of job-related experience in hospital applications, manufacturing applications, banking and finance, and with also 17 and 1/2 years in systems management consulting for the banking, insurance, and manufacturing industries as well as the government, she has managed the implementation of an in-house end-user time sharing company, office automation, strategic systems planning, business process re-engineering, a multimillion dollar client/server processing system, an interactive project control system, an automated teller machine network, a 100 station local and remote distributed customer information and network switching system for charge card data entry and authorizations, entree into charge card duality for MasterCard and Visa, and a patient billing system.</p>
<p>Ms. Zells has also managed the development of standards in project management, programming, documentation, change management, planning, prioritizing, and quality control. She has developed project estimates of time, resources, and dollars for small projects with a few hundred tasks to large projects with many thousands of tasks. Ms. Zells has worked extensively with a telecommunications company in helping them to turn around their declining business position by guiding them through an innovative strategic planning process and then repositioning their product distribution channels.</p>
<p>Ms. Zells has presented seminars in systems management for the personnel department of a large state agency, so that they could rewrite their existing job descriptions. She has also served on a federal government committee that was established for the purpose of evaluating job classifications as well as to aid in enlisting and keeping exceptional workers in government.</p>
<p><em>Publications</em></p>
<p>Ms. Zells is the author of (and consultant in) several popular management workshops in strategic planning, project management, contingency planning, litigation planning, total quality management and quality assurance, MIS planning for the corporate executive, software process maturity assessments, product development, business process re-engineering, selecting and implementing systems development methodologies and techniques, managing client-server development, managing emerging technologies, and systems maintenance.</p>
<p>Her most recent efforts include the new Managing Emerging Technologies and the Total Quality Management seminar series Excellence Through Performance and Excellence Through Total Quality Management. She has also authored the popular, totally-integrated, three-tier learning program on software engineering project management called Successful Projects: The Common Sense Approach.</p>
<p>She has authored the best seller, Managing Software Projects: Selecting And Using PC-Based Project Management Systems published by QED Information Sciences. Ms. Zells has written the introductory chapter for Total Quality Management for Software, published by Van Nostrand Reinhold and has contributed a chapter on Information Systems Project Management to The Program and Project Handbook, published by the American Management Association.</p>
<p>She has contributed to and published many articles in the major periodicals and proceedings of the industry such as Investor’s Business Daily, ComputerWorld, the National Computer Society Proceedings, the PMI National Symposia, PMI’s PMNet Journal, The Structured Techniques Association, ProjExpo, ACR’s Managing System Development, IEEE’s Software Process Improvement Conference Proceedings, The Federal Systems Journal, and Application Development Trends.</p>
<p><a target="_blank" href="http://www.atlantaspin.org/">http://www.atlantaspin.org</a></p>
<p>See you there!</p>
<p>Cheers.<strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/process-improvement/spin-tbd-137.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Executive Briefing: Ruby on Rails</title>
		<link>http://www.scottburkett.com/technology/executive-briefing-ruby-on-rails-161.html</link>
		<comments>http://www.scottburkett.com/technology/executive-briefing-ruby-on-rails-161.html#comments</comments>
		<pubDate>Mon, 30 Jan 2006 11:00:58 +0000</pubDate>
		<dc:creator>Derek Haynes</dc:creator>
				<category><![CDATA[Executive Briefings]]></category>
		<category><![CDATA[Guest Bloggers]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CIO]]></category>
		<category><![CDATA[CTO]]></category>
		<category><![CDATA[executive_briefing]]></category>
		<category><![CDATA[highgroove_studios]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby_on_rails]]></category>
		<category><![CDATA[web_development]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/161</guid>
		<description><![CDATA[According to Derek Haynes of Highgroove Studios, CIOs that don't investigate Ruby on Rails could be missing out on the holy grail of web application development - faster development, cheaper development, and vastly more usable applications. As our guest blogger this week, Derek provides a nice executive overview into this fascinating technology platform.<p class="read-more"><a href="http://www.scottburkett.com/technology/executive-briefing-ruby-on-rails-161.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><em><img hspace="10" align="right" style="margin-left: 10px" title="rails.gif" id="image162" alt="rails.gif" src="http://www.scottburkett.com/wp-content/uploads/2006/01/rails.gif" /></em></p>
<p>According to Derek Haynes of Atlanta-based Highgroove Studios, CIOs &#038; CTOs that don&#8217;t investigate Ruby on Rails could be missing out on the holy grail of web application development &#8211; faster development, cheaper development, and vastly more usable applications.  As our guest blogger this week, Derek provides a nice executive overview into this fascinating technology platform.<br />
<span id="more-161"></span></p>
<div style="text-align: center"><img width="128" height="11" id="image163" alt="divider.png" src="http://www.scottburkett.com/wp-content/uploads/2006/01/divider.png" /></div>
<p><em>&#8220;Mom &#8211; is my bedroom still available? I&#8217;ve run into some financial  difficulties.&#8221;</em></p>
<p>It sounds over dramatic to talk about a web application framework as a life-changing experience on par with marriage, college graduation, and the birth of a child, but <a title="http://www.rubyonrails.org" target="_blank" href="http://www.rubyonrails.org/">Ruby on Rails</a> (Rails) has had more of an  impact on my professional career than any other event.</p>
<p>In the spring of  2005, I was reluctantly leaving a startup I co-founded where an application  built with Java 2 Enterprise Edition (J2EE) formed the basis of our business.  Development was a nightmare. Besides being slow and overly complex, it wasn&#8217;t  fun. If starting a car was like building a J2EE application, I&#8217;d have to spend  10 minutes configuring the engine before I even started the car. It doesn&#8217;t  matter how nice the car is &#8211; if it takes me 10 minutes to start it, I&#8217;m not  driving it.</p>
<p>The J2EE development experience could lead a person to swear off technology, purchase a hotdog cart, and head down to Atlantic Station.<br />
As I&#8217;ve never been much of a cook and I lack street-vendor-hawking skills, I decided to give up on that idea.</p>
<p>Luckily, the story gets better. If you have an iPod around, go ahead  and cue your favorite &#8220;I was down but now I&#8217;ve risen&#8221; song. Reading about Rails  for the first time was like walking out of an evangelization camp where 2 people  were cured of cancer and a third was cured of blindness. I was re-energized &#8211;  ready to take on web applications with a framework that looked like it was the  freakishly perfect child born from Google and Apple. Development was fast and  fun and the code was amazingly readable. If Valentine&#8217;s Day hadn&#8217;t already  passed, I might have asked my significant other if I could bring my laptop and  reserve another seat at the dinner table for my Rails application.</p>
<p>Today,  my relationship with Rails is even better, and instead of sleeping in a twin bed  in my childhood bedroom, I lead <a title="http://www.highgroove.com" target="_blank" href="http://www.highgroove.com/">Highgroove Studios</a>, a growing web  development studio with locations in Atlanta, GA and San Mateo, CA. Largely  because of Rails, we&#8217;re delivering applications on-time and on-budget, while  creating pieces of work that literally change our clients&#8217; views of what a web  application can do. While I&#8217;ve seen how Ruby on Rails can impact my services  firm, I&#8217;m also witnessing how it can change larger organizations. CIOs &#038; CTOs that  don&#8217;t investigate Ruby on Rails could be missing out on the holy grail of web  application development &#8211; faster development, cheaper development, and vastly  more usable applications.</p>
<p>I&#8217;m going to cover Rails at a higher-level in  this article and talk about some of the great side effects of Rails development.  I&#8217;ll cut out the discussion on moving to Rails and the technical differences  between Rails and other frameworks as plenty of resources covering these topics  already exist. There&#8217;s a great article on  <a title="_blank" target="_blank" href="http://rewrite.rickbradley.com/pages/moving_to_rails/">migrating enterprise development to Rails</a> by Rick Bradley, a project manager  who is doing just that. <a target="_blank" title="_blank" href="http://www-128.ibm.com/developerworks/java/library/wa-rubyonrails/index.html">IBM  also has a solid piece</a> on the technical differences between Rails and  J2EE.</p>
<p><span style="font-weight: bold"><span style="font-weight: bold">Rails </span>In a Nutshell<span style="font-weight: bold"> </span></span></p>
<p>The goal of Ruby on Rails is to  make web development simpler. It&#8217;s fairly new, having recently reached version  1.0, and is an alternative to building applications in J2EE, .NET, PHP, or any  of the other web frameworks and languages. Rails, built on the Ruby programing  language, makes it vastly more productive to write web applications &#8211; <a target="_blank" title="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html" href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html">as much as 10X  faster than J2EE</a>. Besides the productivity increases, Rails also has the  best support of the for mentioned frameworks for implementing <a target="_blank" title="http://www.adaptivepath.com/publications/essays/archives/000385.php" href="http://www.adaptivepath.com/publications/essays/archives/000385.php">AJAX</a>  technologies. AJAX allows a web page to change state (for example, adding a  message to a page without reloading). Web applications that utilize AJAX can  blur the line between a desktop application and a web application.</p>
<p><span style="font-weight: bold">Why Rails</span></p>
<ol>
<li><span style="font-style: italic">Time is Money</span><br />
While 10X  productivity increases might only apply to specific projects, I haven&#8217;t worked  on a web application that could be developed faster in a framework other than  Rails. <a target="_blank" title="http://www.relevancellc.com/blogs/?p=92" href="http://www.relevancellc.com/blogs/?p=92">Other knowledgeable people  agree</a>. With Rails, there&#8217;s basically no configuration within an application.  All of the needed components are available when you start your project. There&#8217;s  also zero turn-around time to view changes in code (Ruby is a scripted language,  which means you don&#8217;t need to recompile code to view changes in your web  browser). I&#8217;ve found that &#8220;<a target="_blank" title="http://www.theserverside.com/news/thread.tss?thread_id=35538" href="http://www.theserverside.com/news/thread.tss?thread_id=35538">zero  turnaround time</a>&#8221; is one the best ways to encourage developers to write more  maintainable code. With J2EE, developers might avoid refactoring bad code as the  time to recompile and restart the web server serves as a major deterrent. With  Ruby, it takes seconds to view the changes.</li>
<li><span style="font-style: italic">Rails&#8217; earliest detractors have become it&#8217;s  biggest supporters</span><br />
This may be the greatest sign &#8211; an acknowledgement  by many of the leaders in the Java community that Rails has really gotten to the  root of the web development problem. Many people who have a  considerable investment in Java <a title="_blank" target="_blank" href="http://jroller.com/page/dgeary?entry=tipping_rails">are endorsing Rails</a>. In the words of Levar  Burton of &#8220;Reading Rainbow&#8221; fame, don&#8217;t take my word for it&#8230;</li>
<li><span style="font-style: italic">Smaller Teams = Better  Projects</span><br />
Small teams can accomplish a lot with Rails &#8211; and <a target="_blank" title="http://www.37signals.com/svn/archives2/googles_bet_on_small.php" href="http://www.37signals.com/svn/archives2/googles_bet_on_small.php">there are  few arguments against small teams</a> in development projects. Instead of  delegating work to a development team, I can personally lead and develop our  applications (while doing it profitably), and I can afford to hire a few of the  best instead of a lot of the rest.</li>
<li><span style="font-style: italic">The Rails community is the cream of the  crop</span><br />
Developers who use Rails do it because they recognized there must  be a better way &#8211; I&#8217;d argue they have a much better sense of the pieces needed  to complete a successful project than a &#8220;heads down&#8221; coder. &#8220;Big Picture&#8221; coders  need less management attention, which again leads to more successful small  teams.</li>
<li><span style="font-style: italic">&#8230;and it&#8217;s easy to switch if you don&#8217;t  have Rails experience</span><br />
While the number of Ruby developers pales in  comparison to other languages, it is an extremely easy language to pickup. I  have few reservations about hiring a developer without Ruby experience as they  don&#8217;t need to know a lot of details about the framework &#8211; they just need to be  good coders.</li>
<li><span style="font-style: italic">When usability matters (and when doesn&#8217;t  it?)</span><br />
Many people associate Rails with great-looking applications.  Because Rails has fantastic AJAX support &#8211; implementing AJAX is becoming  trivially easy &#8211; the framework works great with small teams that have the  ability to work on the interface design and the backend functionality. Usability  is more important than ever &#8211; people have less and less patience for tedious  applications today, and Rails gives developers the tools to make applications  easier for its users.</li>
<li><span style="font-style: italic">Higher Quality</span><br />
We&#8217;re not perfect,  but the amount of broken code that&#8217;s been rolled out in our Rails projects is  far less than the number of bugs I&#8217;ve experienced in applications with other  frameworks. This is largely because it is far easier to implement unit testing  in Rails as compared to other frameworks. Unit Testing is a way of automating tests &#8211; developers  write scripts to test out parts of an application, and can then run these at  anytime in the future. Just added a new feature and not sure if it will break  other parts of the application? Simply run the tests and see if they all pass.</li>
<li><span style="font-style: italic">But can it scale?</span><br />
One of the  major items of concern raised by those in the Java community is whether Rails  can scale. The bottom line: there&#8217;s no reason why it can&#8217;t do it better (and  cheaper) than Java. However, there hasn&#8217;t been an eBay-like application written  in Rails to prove this theory (but there haven&#8217;t been a lot of new eBay-like  applications as a whole either). <a target="_blank" title="http://www.jroller.com/page/obie?entry=massive_scalability_and_fast_cars" href="http://www.jroller.com/page/obie?entry=massive_scalability_and_fast_cars">Scaling  is never simple</a>, but <a target="_blank" title="http://www.loudthinking.com/arc/000479.html" href="http://www.loudthinking.com/arc/000479.html">there&#8217;s no reason why it  would be any harder in Rails</a>.</li>
</ol>
<p>As the framework has matured,  it has become more and more difficult for Rails developers to cite cases where  Ruby on Rails development should not be the framework-of-choice for web  applications. As it grows, some of the framework&#8217;s relative weaknesses, like a  lack of internationalization (support for multiple languages) and a complicated  server setup are fading.</p>
<p>I&#8217;ll leave with a quote by <a target="_blank" title="http://jroller.com/page/dgeary" href="http://jroller.com/page/dgeary">David  Geary</a>, the author of Core JavaServer Faces and a Java-to-Rails  convert:</p>
<div style="margin-left: 40px">&#8220;Will Rails hit a tipping point and become widely  adopted in the near future? I am certain of it.&#8221;</div>
<p><strong>Biography</strong></p>
<p><a target="_blank" title="_blank" href="http://www.highgroove.com"><img hspace="10" border="0" align="right" title="Highgroove Studios" id="image167" alt="Highgroove Studios" style="margin-left: 10px" src="http://www.scottburkett.com/wp-content/uploads/2006/01/highgroove_logo.gif" /></a>Derek Haynes is the founder of <a title="_blank" target="_blank" href="http://www.highgroove.com">Highgroove Studios</a>, a web  applications studio specializing in building elegantly simple Web 2.0  applications. Before starting Highgroove Studios, Derek worked in a variety of  industries &#8211; from sales in a Fortune 100 company to software development in a  6-person firm. Graduating with High Honors from Georgia Tech, Derek bleeds black  and gold.</p>
<div style="text-align: center"><img width="128" height="11" id="image163" alt="divider.png" src="http://www.scottburkett.com/wp-content/uploads/2006/01/divider.png" /></div>
<p>A special thanks to Derek Haynes of Highgroove Studios for serving as our guest blogger this week. Great job, Derek! As IT leaders, we should always strive to explore new efficiencies, and how they might fit into our strategic technology plans.</p>
<p><em>Have an opinion on a topic relating to technology, leadership, venture capital, entrepreneurship, business networking, or the Atlanta business scene? If you or someone from your organization would like to participate as a guest blogger here on The Pothole, by all means let me know! This is a great way to get your message out into the blogosphere without necessarily having to create and maintain your own daily blog.</em></p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology/executive-briefing-ruby-on-rails-161.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

