<?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; Software-Process-Improvement</title>
	<atom:link href="http://www.scottburkett.com/tag/software-process-improvement/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>Off-shoring Assurance: Making It Work</title>
		<link>http://www.scottburkett.com/process-improvement/off-shoring-assurance-making-it-work-462.html</link>
		<comments>http://www.scottburkett.com/process-improvement/off-shoring-assurance-making-it-work-462.html#comments</comments>
		<pubDate>Tue, 14 Nov 2006 02:02:29 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[atlanta]]></category>
		<category><![CDATA[Michael-Yudanin]]></category>
		<category><![CDATA[offshoring]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software-Process-Improvement]]></category>
		<category><![CDATA[SPIN]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/process-improvement/2006-11-13/off-shoring-assurance-making-it-work.html</guid>
		<description><![CDATA[This is a bit late as far as notice goes, but if you will be in the Atlanta area this Wednesday evening (11/15), you can attend the monthly meeting of the Atlanta Software Process Improvement Network (SPIN) and hear Conflair founder Michael Yudanin deliver a presentation entitled &#8220;Off-shoring Assurance: Making it work.&#8221; Abstract: Off-shoring of &#8230;<p class="read-more"><a href="http://www.scottburkett.com/process-improvement/off-shoring-assurance-making-it-work-462.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img align="right" style="margin-left: 10px" src="http://www.scottburkett.com/wp-uploads/spinlogo.jpg" />This is a bit late as far as notice goes, but if you will be in the Atlanta area this Wednesday evening (11/15), you can attend the monthly meeting of the Atlanta Software Process Improvement Network (SPIN) and hear Conflair founder Michael Yudanin deliver a presentation entitled &#8220;Off-shoring Assurance: Making it work.&#8221;<br />
<span id="more-462"></span></p>
<p><strong>Abstract:</strong> Off-shoring of software development, maintenance and support activities is an established means of driving down costs and improving a company&#8217;s competitive position in the market. However, many off-shoring efforts fail to fulfill the promise of low costs and high quality, due to unexpectedly high setup and operational costs, massive rework and low quality.</p>
<p>Off-shoring poses all the familiar challenges of building a new software development organization &#8211; challenges which, despite significant research, decades of experience and countless papers, are still causing many companies grave problems. In the case of off-shoring, all these challenges are amplified by geography, cultural differences, infrastructure complications&#8230;</p>
<p>As with many other challenges, there could be multiple keys for off-shoring success. This presentation explores a number of them:</p>
<ul>
<li>Defining your needs and criteria for success: why do you need off-shoring? Is the major goal cost reduction? Improving time to market? What are the criteria for success?</li>
<li>Off-shoring model selection: will a group of developers out there be an integral part of your organization or a separate organizational entity? Which one is better for your company? What are the criteria for making the right decision?</li>
<li>Planning for off-shoring: how to prepare? What do you need to change in your organization to make off-shoring successful? What processes should be changed/ developed to make off-shoring successful?</li>
<li>Solution Development: how do you translate the plans into action? and specifically:</li>
<ul>
<li>Selecting an off-shore entity</li>
<li>Streamlining your existing software life cycle</li>
<li>Tracking progress and quality by process and product metrics</li>
<li>Defining and implementing management controls</li>
<li>Creating efficient quality assurance mechanisms</li>
</ul>
</ul>
<p><strong>Bio:</strong> Michael Yudanin&#8217;s area of expertise is software processes assurance. Translated into practice, it means creating life cycle models that fit organizations&#8217; needs and constraints, establishing verification and validation activities throughout the software life cycle, off-shoring process and product assurance, logo certification testing, test automation, organizing and managing testing efforts for new development and implementation, designing software processes to fit CMMI® and ISO requirements, as well as other applications of quality in information technology.</p>
<p>Michael is a founder of Conflair &#8211; an IT Solutioning Company. IT Solutioning is an operational philosophy that emphasizes development and implementation of custom client-centric solutions rather than provision of a number of well-defined services certain company knows how to do well. Throughout his career Michael worked with a large number of companies, among them: Centers for Disease Control and Prevention, United Parcel Service, Sage Accounting, Ceridian, Comverse, Georgia Department of Transportation, Tennessee Valley Authority. Michael Yudanin is a Certified Software Quality Engineer by the American Society for Quality since 1999.</p>
<p>Check the <a title="_blank" target="_blank" href="http://www.atlantaspin.org/">Atlanta SPIN web site</a> for the latest details and directions. Come out for some great networking with some of Atlanta&#8217;s top software development professionals. The free pizza is a bonus!</p>
<p>See you there!</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/process-improvement/off-shoring-assurance-making-it-work-462.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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>
	</channel>
</rss>

