<?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; IT Management</title>
	<atom:link href="http://www.scottburkett.com/category/technology-leadership/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>Scaling Your Technology with Your Business</title>
		<link>http://www.scottburkett.com/technology/scaling-your-technology-with-your-business-530.html</link>
		<comments>http://www.scottburkett.com/technology/scaling-your-technology-with-your-business-530.html#comments</comments>
		<pubDate>Mon, 08 Jan 2007 22:00:13 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IT-Management]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/technology/2007-01-08/scaling-your-technology-with-your-business.html</guid>
		<description><![CDATA[I have been advising a local entrepreneur who is building a really interesting new web play. A great guy, but doesn&#8217;t have a deep background in technology. He is starting to see some traction with his service, and is beginning to run into those early scalability hurdles that so many young startups eventually run into. &#8230;<p class="read-more"><a href="http://www.scottburkett.com/technology/scaling-your-technology-with-your-business-530.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img align="right" id="image531" style="border: 1px dotted #a0a0a0; padding: 2px; margin-left: 10px" alt="scalability.jpg" src="http://www.scottburkett.com/wp-content/uploads/2007/01/scalability.jpg" />I have been advising a local entrepreneur who is building a really interesting new web play.  A great guy, but doesn&#8217;t have a deep background in technology. He is starting to see some traction with his service, and is beginning to run into those early scalability hurdles that so many young startups eventually run into.</p>
<p>Our informal discussions around scalability inspired me to jot down some of my thoughts on this issue, and how early-stage entrepreneurs can scale their technology platform from 5 users to millions.<br />
<span id="more-530"></span></p>
<p><strong>Some Simple Rules</strong></p>
<p>There rarely exists a set of rules that, if followed, will result in nirvana &#8211; scalability is no different. Every situation is different.  However, these bullets summarize my general tenets, mantras, and beliefs for scaling a web-based application or system.  The rest of this post will cover these in a bit more detail.</p>
<ol>
<li>Abstract your logical architecture into at least 3 tiers (web, application, and data)</li>
<li>Even if you are only using one or two servers initially, think/design as if you have 50.</li>
<li>Designing with an SOA (services oriented architecture) in mind up front will aid you in scaling down the road.</li>
<li>Don&#8217;t overlook the scalability of your network infrastructure &#8211; your servers may be running at only 25% capacity, but if you don&#8217;t have the throughput and bandwidth to handle large amounts of traffic, those souped up servers won&#8217;t help you.</li>
<li>To help remove common/special cause variation &#8211; move system services such as DNS and e-mail off of production web/app servers and onto other, dedicated servers, and disable all non-essential services.</li>
<li>Scale vertically first, wherever possible, to control costs. But only do so if the benefits are greater than the cost.  Early on, putting extra resources into an existing server is probably cheaper than procuring additional servers.</li>
<li>Scale horizontally when vertical scaling begins to produce diminishing returns</li>
<li>When upgrading/replacing existing servers, replace lesser horsepower ones first &#8211; and cannibalize components wherever possible (to control burn)</li>
<li>Performance tuning is not a one-time activity &#8211; it should be an iterative process</li>
<li>If you don&#8217;t have solid system administration capabilities in-house, outsource it immediately</li>
<li>Daily reporting is a must. You can&#8217;t know when/how to scale if you don&#8217;t know the landscape at any point in time.</li>
</ol>
<p><strong>What is scaling (or scalability)?</strong><br />
Simply put, scalability refers to an system&#8217;s ability to handle increasingly heavier loads from users (activity) without fundamentally breaking the way in which it operates. In other words, as you continue to add new users and expand your business, you want your application or service to be able to easily handle the increase without slowing down, or worse, breaking down completely.</p>
<p>An application (or platform) is considered <em>scalable</em> if it can continue to service additional users, through the deployment of supplemental hardware/software/resources, without seeing any significant performance hit from the user&#8217;s standpoint. Of course, very few systems in their early prototypical states will fit this definition.  Your goal is to get the product to the point where it can be scaled in this manner, while reducing the number of potential bottlenecks.</p>
<p>Unfortunately, for business and IT managers, there is no single way to scale an application.  Ah, if only there were actually a big red &#8220;easy&#8221; button. Each situation is different, given that there are so many factors that need to be taken into account.  To make matters worse, sometimes, an application seems &#8220;infinitely scalable&#8221;, only to have a major bottleneck reveal itself down the road.  This doesn&#8217;t mean the end of the world &#8211; it simply means that you have to adjust accordingly.  The trick is, of course, to reduce the number of &#8220;midcourse corrections&#8221; that you will have to endure.</p>
<p><strong>A Bit About n-Tier Architectures</strong><br />
Before we dive in too deep, I should probably throw out a note or two on n-Tier architectures.  If you are an IT weenie, and understand this concept, skip to the next section.  Otherwise, hang with me.</p>
<p>In the old days, applications were deployed onto servers, and when a bottleneck was encountered, the physical resources in the machines were expanded.  This was the extent of scalability. Then, some bright engineer realized that if you split a system into two &#8220;tiers&#8221;, you could distribute the workload a bit.  Voila &#8211; the birth of the client/server revolution.  Eventually, though, systems began to grow so large that they needed something else in order to break through the inherent bottlenecks of a 2-tier system. An even brighter engineer realized that there was no reason to stop at &#8220;2&#8243; tiers.  You could have an arbitrary number of tiers in your system.  Thus, the birth of the &#8220;n-Tier&#8221; architecture (&#8220;n&#8221; representing some arbitrary number of tiers).</p>
<p>An &#8220;n-tier&#8221; application architecture is characterized by the <em>functional decomposition</em> of applications, service components, and their distributed deployment. By breaking a system down in such a manner, it provides for improved scalability, availability, manageability, and good resource utilization. A &#8220;tier&#8221; itself is nothing more than a functionally separated hardware and software component that performs a <em>specific function</em>.  Whew &#8211; what a mouthful.</p>
<p>Typical &#8220;tiers&#8221; include:</p>
<ul>
<li>Web server tier: provides HTTP protocol support (i.e. handles web requests)</li>
<li>Application server tier: provides support for web services, business logic, etc. (e.g. web services/SOA)</li>
<li>Database tier: provides data storage and retrieval support (e.g. Oracle, MySQL, mainframe/VSAM, etc.)</li>
</ul>
<div style="text-align: center"><img id="image533" alt="basic.gif" src="http://www.scottburkett.com/wp-content/uploads/2007/01/basic.gif" /></div>
<p>Note: don&#8217;t confuse these &#8220;tiers&#8221; with application &#8220;layers&#8221; (presentation layer, data layer, business logic layer, etc.)  Tiers are architectural in nature, whereas &#8220;layers&#8221; are generally code/library specific.</p>
<p>The important thing to know here is that in an &#8220;n-tier&#8221; model, a system has been broken up into various levels of functionality, each capable of some degree of horizontal scaling.  Which brings me to my next point &#8230;</p>
<p><strong>Horizontal vs. Vertical Scaling</strong><br />
When you hear people talk about &#8220;scaling horizontally&#8221; they are essentially referring to the ability to add new servers to a tier to allow it continue to provide uninterrupted service in the face of continuously increasing usage.  For example, your database is chugging hard and heavy, so you can add new servers to the database tier to distribute the workload.  If your web server is bogged down, you can add new web servers to do the same. This also affords you with a nice layer of failover as well.  If one server experiences an issue (even to the point where it crashes), you have other servers online in that particular tier that can still provide service. This concept is becoming increasingly important as more and more systems are being deployed using SOA models (service oriented architectures).</p>
<p>One great example of horizontal scaling can be seen in Amazon&#8217;s new &#8220;<a target="_blank" title="_blank" href="http://ec2.amazonaws.com">Elastic Computing Cloud</a>&#8221; (my old friend <a title="_blank" target="_blank" href="http://www.linkedin.com/profile?viewProfile=&#038;key=2075805&#038;fromSearch=0&#038;sik=1167883664814&#038;split_page=1&#038;rd=in&#038;goback=%2Esrp_1_1167883664814_in">Chris Brown</a> is a patent co-inventor and senior engineer on that project).</p>
<p>Vertical scaling, on the other hand, is where you extend/expand the physical resources in a server itself.  For instance, your database server is getting way overworked, hitting the swap space early and often.  You can &#8220;vertically scale&#8221; that server by simply adding more RAM, faster hard disks, better CPUs, etc.</p>
<p>There are benefits/pros/cons to each type of scaling.  Obviously there is a cost associated with both.  Horizontal scaling is <em>theoretically</em> infinite, whereas vertical scaling has an obvious ceiling (there is only so much horsepower that you can derive from a single server).</p>
<p>Horizontal scaling only makes sense if the service you are attempting to scale was designed to be extended in this manner. For many third-party applications, such as a database server, this will be the case. Of course, if you are designing the software, you will want to take this into account as you build it.</p>
<p>Think of hardware as simply a <em>vehicle (perhaps a bus) </em>for your software, your real service. If the bus gets too crowded, you add another bus to the fleet. However, not all buses will go to the same destination, so those buses need to connect together in order to get information from point A to point B within your architecture. Voila, you have the meager beginnings of a service-oriented-architecture (SOA).</p>
<p><strong>A Scalability Example </strong><br />
Let&#8217;s set the stage with a typical early-stage example, and we&#8217;ll try to scale this application theoretically as the business scales.</p>
<p>John is an aspiring technology entrepreneur who has developed a really great online service called WidgetFire.  WidgetFire is brand new, so there aren&#8217;t many users yet.  John has built this product in his spare time, and is bootstrapping the business via his day job as a software engineer for another company.  To keep his costs down, he has a single web server (built from extra parts), and he has it co-located at a local data center with a basic level of service (1U single rack space, 1Mpbs throughput, unlimited bandwidth, for probably < $100/month). On this single server, he is running Apache and MySQL together, along with the normal services (bind/DNS, sendmail, etc.)</p>
<div style="text-align: center"><img id="image540" alt="1tier.gif" src="http://www.scottburkett.com/wp-content/uploads/2007/01/1tier.gif" /></div>
<p>So far, scalability is not a concern to John.  But that is about to change. In a big way.</p>
<p>Over a period of a few months, John leverages word-of-mouth marketing and manages to aggregate 25,000 registered users for his service.  The server he is running (which he&#8217;s affectionately nicknamed &#8220;Seabiscuit&#8221;) is holding up fine, but is beginning to feel the strains of all of those new sessions and database queries.  Additionally, his automated e-mail notification list is starting to add to the system load, as now the server is sending out thousands of emails a day.</p>
<p>John &#8220;vertically scales&#8221; his server by adding some additional RAM and performing some additional performance tuning to the database.  This buys him time.  But not much.</p>
<p>Then, WidgetFire gets a mention in a prominent tech blog, and the next thing John knows, he has 100,000 registered users for his service.  His server is on its knees, and practically unresponsive.  Sadly, the data center staff isn&#8217;t much help &#8211; after all, he is running under a pretty basic co-located hosting plan &#8211; and they have bigger problems to deal with than the occasionally unresponsive Seabiscuit.</p>
<p>So John then moves to a very rudimentary n-Tier architecture.  He moves his MySQL database over to a separate server, which frees up resources on the old web server.  Now, the system is humming along smoothly.  But after a few months, WidgetFire is quite the rage on college campuses, and John must once again address how he is going to facilitate additional traffic.</p>
<div style="text-align: center"><img alt="2tier-a.gif" id="image538" src="http://www.scottburkett.com/wp-content/uploads/2007/01/2tier-a.gif" /></div>
<p>He does some vertical scaling on the database server (adds new RAM, faster disks, etc.), but it isn&#8217;t enough.  The new user signups are coming too fast and furious for his 2 server setup to handle.</p>
<p>This particular nexus is where many startups begin to experience some tough scalability issues.  The &#8220;easy&#8221; scaling options have already been exhausted (vertical scaling on one server, splitting the database off into a separate server.)</p>
<p>Fortunately for John, his traction has caught the interest of a handful of investors, and he is able to secure a small round of outside capital.</p>
<p>To get to the next level, John implements a load balancing router, an extra web server, and an extra database server.  He configures the load balancer to distribute incoming web requests evenly between his two web servers.  Additionally, he configures the original database server to be a &#8220;master&#8221;, and the new database server to be a &#8220;slave&#8221; server.  While all database write operations occur on the master server, John realizes that most web requests that require database access will be for &#8220;reads&#8221;, so the slave can offload some of that workload from the master.  Voila &#8211; he has scaled even further!</p>
<div style="text-align: center"><img alt="2tier-b.gif" id="image539" src="http://www.scottburkett.com/wp-content/uploads/2007/01/2tier-b.gif" /></div>
<p>A few more months go by, and John makes the cover of Wired Magazine.  VCs are clamoring to pour their cash into WidgetFire.  While John basks in this glory, he doesn&#8217;t realize that his little server farm is becoming overwhelmed by the sheer success of his venture.  To make matters worse, while John is putting together a plan to scale even further, his slave database server crashes, leaving only the one original database server in operation.  WidgetFire is basically dead in the water.</p>
<p>John brings the slave server back online, but he realizes that more must be done.  He adds an extra web server to the web server tier, and adds an additional slave database server to the database tier.  But he doesn&#8217;t stop there.  John realizes that his actual application, which is comprised of a mish-mash of Java, PHP, and Perl, is utilizing the vast majority of CPU time on the web servers themselves.  John decides to move from a 2-tier model to a 3-tier model by implementing an &#8220;application services&#8221; tier.  He moves this code off of the web servers and onto several new servers.</p>
<div style="text-align: center"><img id="image536" alt="ntier.gif" src="http://www.scottburkett.com/wp-content/uploads/2007/01/ntier.gif" /></div>
<p>John realizes pretty quickly that his original code design really wasn&#8217;t architected for this type of model. He has to spend a couple of months retrofitting his old code to fit into more of a &#8220;web services&#8221; model. He is now surrounded by burgeoning IT costs, hosting fees, and system complexity. All of a sudden, his &#8220;Google-ready&#8221; venture is giving him a headache, and isn&#8217;t much fun anymore.</p>
<p>Of course, had John anticipated the steepness of his growth curve ahead of time, he could have designed his system with it in mind, and avoided at least some of the headaches.</p>
<p><strong>Can&#8217;t money be thrown at the problem?</strong><br />
Sure. To a point.  All things cost money, of course, whether it be labor (people), hardware, or software.  Most systems can <em>initially </em>be scaled to a sufficient level by simply adding more hardware, or expanding the resources within the server.  But that only gets you so far in most cases &#8211; at some point the logical architecture of the system needs to have been designed with scalability in mind.  If the architecture isn&#8217;t scalable, you are either going to hit a ceiling, or spend <em>way too much money </em>to scale it (and even then, there are no guarantees).</p>
<p>It isn&#8217;t a question of whether or not money can be thrown at the problem &#8211; it all costs money.  The question is <em>how much money are you going to have to spend to scale it?</em>  Obviously, there rarely exists an endless supply of capital that can be leveraged to solve a scalability problem &#8211; especially in the startup realm. Clearly, you want to be able to control your tech spend (which is a big part of your overall burn).</p>
<p>The bottom line is this:  If you <em>plan </em>for scaling initially, instead of throwing a bunch of crap together and hoping it will get you to point &#8220;B&#8221;, the less money you are going to spend as you scale.</p>
<p>To properly address scalability, you have to take a holistic approach, and examine your <em>architecture</em>, your <em>software components</em>, and your <em>hardware configurations</em>. Then you have to deploy capital in an intelligent manner. Otherwise, you could end up like John in our fictitious example &#8211; sitting on a pile of code that really wasn&#8217;t designed to split up into services across an n-tier architecture. And that, my friends, represents a serious misuse of capital.</p>
<p>If you are scaling by adding new hardware &#8211; <em>that is generally a good problem to have</em> &#8211; that hopefully means your business is expanding.  However, if you are having to rewrite large amounts of code in order to scale &#8211; you&#8217;ve likely made some very serious mistakes.  Too many of those mistakes, and you&#8217;ll be dead in the water.  You see the latter quite often in the startup world, again, as there is so much pressure to slap something together and get it out the door.</p>
<p><strong>Architectural Concerns</strong><br />
It all starts with the blueprint of your architecture.  Note, I am not referring to your functionality matrix/map, your application requirements definition, etc.  I am talking about your physical and logical architectures.</p>
<p>When I say <em>physical architecture</em>, I am referring to the physical hardware components that make up your network, application, etc. Things to consider:</p>
<ul>
<li>What are your network capabilities? Throughput, bandwidth, etc. Are these scalable from a cost and availability standpoint?</li>
<li>What are the capabilities and specifications of your web servers, application servers, database servers, etc.?</li>
<li>How many of these servers do you have at your disposal? Are they dedicated or shared?</li>
<li>What are your capabilities for handling increased DNS requests, e-mail volume (in and out), etc.?</li>
</ul>
<p>When I refer to your <em>logical architecture</em>, I am referring to the way in which your various software components connect with and layer into one another.  Things to consider:</p>
<ul>
<li>Are you properly segregating functional aspects of your application into easily managed and scalable services (e.g. SOA)?</li>
<li>Are you isolating those services in unique hardware or operating environments?</li>
<li>Are you building for the short-term, but planning for the long-term (i.e. how extensible will this thing be down the road?)</li>
</ul>
<p>If you are in startup mode it is very easy to fall into the trap of &#8220;getting started&#8221; &#8211; pushing code and charging up the hill.  &#8220;Get-to-market&#8221; pressure from investors rarely helps. However, many such efforts are met with stiff resistance once the entrepreneur realizes that the &#8220;hill&#8221; he or she just conquered is actually but a small plateau on a mountain comprised of increasingly steeper slopes. It all starts with a good plan in place!</p>
<p>Having the right architecture in place doesn&#8217;t guarantee that you won&#8217;t have to eventually add more hardware or write more code.  Actually, in the early stages, you may actually spend more money (especially if you are deploying web services on their own servers, etc.)  However, the proper architecture allows you to get the <em>most</em> out of out that new hardware and software, as you will be plugging it into a framework that was built with it in mind.</p>
<p><strong>A Note on System Services</strong><br />
Before you start diving off into creating a true services oriented architecture, do yourself a favor and split your system services off accordingly.  Things like DNS services and e-mail should be move off of and away from your application&#8217;s production environment.  I bring this up because more often than not, you find system services being co-located on production web servers.</p>
<p>It is hard to get a sense of an application&#8217;s true load on a physical machine when you have a million other things running on it.  This becomes even more important if you are planning on using tools like Six Sigma to measure scaling and availability metrics, as you will need to do everything possible to remove potential causes of common/special cause variation.</p>
<p><strong>The Importance of Performance Tuning</strong><br />
Another very important aspect of scaling is <em>performance tuning</em>.  Performance tuning is essentially the art of tweaking and fine-tuning your various applications and services in order to maximize their operational efficiency.  There are more ways to performance tune a system than you can possibly imagine.  Some obvious examples would include:</p>
<ul>
<li>Tuning your database server to use more or less RAM (for buffering, sorts, key lookups, etc.), adding indexes on data tables to decrease query times, etc.</li>
<li>Optimizing your web server&#8217;s socket configuration to improve connection times</li>
</ul>
<p>Some not-so-obvious examples might include:</p>
<ul>
<li>Enabling DMA (direct memory access) for a server&#8217;s IDE drives to improve seek times (you should be using 15K RPM SCSI drives, but if you aren&#8217;t &#8230; )</li>
<li>Making sure your OS kernel (for UNIX/Linux) was compiled with only the services and features you require (i.e. remove kernel bloat)</li>
<li>Mounting filesystems with the &#8220;+noatime&#8221; flag, which will prevent the OS from updating the (mostly) meaningless &#8220;last access timestamp&#8221; of every file you read or write</li>
<li>Partitioning your OS so that system files, logs, etc. are on their own partition (or even a separate IDE channel or SCSI bus)</li>
<li>Using the &#8220;strip&#8221; command to remove debugging/profiling data from common executables to lower their memory footprint (On UNIX systems)</li>
</ul>
<p>I have known people who have spent thousands on new hardware, only to realize later that their applications or server/OS were simply not optimized. if you don&#8217;t have the requisite skills in house to do performance tuning, then outsource this function immediately &#8211; <em>it is that important</em>.</p>
<p>Finally, I should mention that performance tuning should not be viewed as a one-time activity.  You should routinely profile and tune your systems (both hardware and software).</p>
<p><strong>Network Scalability</strong><br />
Another thing to stay on top of is your service level agreements with your data center or hosting provider.  There are fundamentally three or four things to keep in mind:</p>
<p>First, if you are bootstrapping a startup, and you are using a low-cost, shared server, you need to move to a dedicated server solution as soon as possible.  Trust me.</p>
<p>Next, make sure that you have the ability to quickly secure additional rackspace and bandwidth as you need it.  Having your data center tell you that you are going to have to suffer major downtime because they have to move your servers to a &#8220;bigger rack&#8221; is probably not a good thing.</p>
<p>Third, make sure that the connections from your servers to the net are <a target="_blank" title="_blank" href="http://en.wikipedia.org/wiki/Burstable_billing"><em>burstable</em></a>.  When you have those huge traffic spikes because someone put a mention of your site on digg.com, Slashdot, etc., you&#8217;ll want to be able to handle the temporary increase in traffic (without necessarily incurring a large bandwidth bill).</p>
<p>Finally, make sure that your <em>throughput</em> is not capped, or if it is capped, make sure it is capped higher than you think you&#8217;ll need.  Don&#8217;t confuse <em>bandwidth</em> with <em>throughput</em>.  Bandwidth refers to how much data your connection can transfer over a period of time (e.g. 100 gigabytes per month, etc.)  Throughput, on the other hand, refers to how much data can be flowing through your connection at <em>any given time</em> (e.g. 10Mbps).  Think of throughput as being the thickness of your server&#8217;s pipe &#8211; obviously, a lot more can flow through a garden hose than a soda straw.  Same analogy.</p>
<p>To illustrate the point on throughput; a few years back we had a system that began to be wickedly unresponsive.  The CPU loads on the server were only about 35-50%, so it didn&#8217;t make a lot of sense.  It turns out that the connection had been capped at 10Mbps.  Anything over 10Mpbs at any point in time had to basically wait in the queue.  This caused perceived &#8220;slowdowns&#8221; by users.  Raising the throughput cap remedied the problem, of course.</p>
<p>On a final note, I want to voice my support for co-locating servers rather than using a full-service hosting provider.  If you have the skillset in house to maintain the boxes, using co-location can save you some money, and give you more flexibility.  Again, in startup mode, every penny counts.   If you are in or near Atlanta, I highly recommend my friends down at <a title="_blank" target="_blank" href="http://www.capitalinternet.com">Capital Internet</a>.  I&#8217;ve co-located and hosted servers with them for 6 years now, and it has been a very enjoyable, hassle-free partnership.</p>
<p><strong>Advanced Topics<br />
</strong>There are a lot of advanced topics that come up in discussions about scaling applications.  Things like caching, high availability clustering, network storage (via SANs), and distributed networks.  Obviously, those are very specific areas that are beyond the scope of this already ridiculously long blog post.  Suffice it to say that there are some very advanced (and expensive) toys out there that can make scaling a lot easier.  However, the vast majority of applications/services can be scaled to rather massive proportions if you  simply  follow the bullet points at the top of this post.</p>
<div align="center">
<div align="left">
<div align="left">
<div align="left">I hope you&#8217;ve found this blog post to be of value.  If you are an entrepreneur who has further questions on how to scale your application/service, I invite you to visit our forums over at <a target="_blank" title="_blank" href="http://www.startuplounge.com">StartupLounge.com</a>, and post your question in the &#8220;CTO&#8217;s office.&#8221;  Happy scaling!</div>
<p>Cheers.</p>
<p align="left">
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology/scaling-your-technology-with-your-business-530.html/feed</wfw:commentRss>
		<slash:comments>5</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>TAG Leadership Academy</title>
		<link>http://www.scottburkett.com/atlanta-business-scene/tag-leadership-academy-335.html</link>
		<comments>http://www.scottburkett.com/atlanta-business-scene/tag-leadership-academy-335.html#comments</comments>
		<pubDate>Wed, 28 Jun 2006 03:00:03 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[Atlanta Business Scene]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[TAG]]></category>
		<category><![CDATA[Technology_Association_of_Georgia]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/atlanta-business-scene/2006-06-27/tag-leadership-academy.html</guid>
		<description><![CDATA[Kudos to Tino Mantella, Laura Heinlein, and the rest of the gang at the Technology Association of Georgia (TAG). They recently announced a new initiative, the TAG Leadership Academy. Through this new program, TAG members can participate in a variety of continuing education courses in topics ranging from marketing to human resources to technology. Why &#8230;<p class="read-more"><a href="http://www.scottburkett.com/atlanta-business-scene/tag-leadership-academy-335.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img style="margin-left:10px" align="right" id="image355" alt="taglogo.png" src="http://www.scottburkett.com/wp-content/uploads/2006/06/taglogo.png" />Kudos to Tino Mantella, Laura Heinlein, and the rest of the gang at the Technology Association of Georgia (TAG).  They recently announced a new initiative, the TAG Leadership Academy.  Through this new program, TAG members can participate in a variety of continuing education courses in topics ranging from marketing to human resources to technology.</p>
<p><span id="more-335"></span><br />
Why is this important?  Because Georgians have been waiting a long time for TAG to evolve to something beyond being a simple networking venue.  The rollout of this new program, coupled with other initiatives, such as the recent business plan competition, are sending all the right signals to entrepreneurs here in Georgia.</p>
<p>I also hear through the grapevine that they are tinkering around with the idea of offering a more formalized certificate program.</p>
<p><a title="_blank" target="_blank" href="http://www.tagonline.org/Events_TAG-Leadership-Academy.php">Click here for more info</a> on the TAG Leadership Academy.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/atlanta-business-scene/tag-leadership-academy-335.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Not to Hire a CIO</title>
		<link>http://www.scottburkett.com/technology-leadership/how-not-to-hire-a-cio-230.html</link>
		<comments>http://www.scottburkett.com/technology-leadership/how-not-to-hire-a-cio-230.html#comments</comments>
		<pubDate>Mon, 17 Apr 2006 11:00:12 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[CIO]]></category>
		<category><![CDATA[CTO]]></category>
		<category><![CDATA[executive]]></category>
		<category><![CDATA[hands-on]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[manager]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/230</guid>
		<description><![CDATA[Sadly, today&#8217;s post is going to be comprised of &#8220;YARS&#8221;, or Yet Another Recruiting Story. The one really good thing about being &#8220;in transition&#8221;, is that I am never at a loss for recruiting stories! Today we are going to explore how NOT to go about hiring a CIO, CTO, or other types of technology &#8230;<p class="read-more"><a href="http://www.scottburkett.com/technology-leadership/how-not-to-hire-a-cio-230.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img style="margin-left:10px" align="right" id="image266" alt="hiring.png" src="http://www.scottburkett.com/wp-content/uploads/2006/04/hiring.png" />Sadly, today&#8217;s post is going to be comprised of &#8220;YARS&#8221;, or Yet Another Recruiting Story. The one really good thing about being &#8220;in transition&#8221;, is that I am never at a loss for recruiting stories! Today we are going to explore how NOT to go about hiring a CIO, CTO, or other types of technology executives.</p>
<p><span id="more-230"></span></p>
<p>The other day, a colleague of mine forwarded a rather interesting Atlanta-based CIO opportunity. This particular opportunity was for a $20-25M logistics company focusing on the railroad industry. One of the key requirements was some experience working within either the logistics, railroad, or supply chain industries. Since I have some supply chain experience in my background, I thought I would toss my name into the proverbial hat and learn a bit more about what they were doing.</p>
<p>Now I should point out that from what the job description stated, this firm needs some serious help.  They&#8217;ve gone from $6M to $25M in 4 years, and as a result of that rapid growth, their technology systems are, well, quite &#8220;varied.&#8221;  They have 5 different platforms, and my guess is, its all held together with bubble gum and bailing wire.  Hence, their need for someone to come in and straighten out the mess, and position them for growth by consolidation and migration.</p>
<p>I sent the recruiter a nice but succinct introductory email, along with my resume. She replied to me several days later with a rather interesting email. In this email, she pasted a lengthy questionnaire, along with some instructions.</p>
<p>I took a quick look at the first few questions, and they seemed routine enough, so I thought I would take some time to compose a nice response. Given that recruiters can quickly become overwhelmed with candidates (and also having personally hired hundreds of candidates over the years), I completely understand the various screening techniques that they use.<br />
<blockquote><p>NOTE: Be sure to ANSWER all the questions below, as well as:</p>
<p>*where you LIVE NOW&#8230;local Atlanta candidates will be given FIRST consideration!!</p>
<p>*when you are available to interview,</p>
<p>*when you are available to start and</p>
<p>Your MINIMUM annual salary requirements.</p></blockquote><br />
Now the questions above seemed pretty innocuous. These are all standard fare when it comes to any job interview.<br />
<blockquote><p>NOTE:<br />
** Experience in transportation, logistics, rail, distribution or supply-chain industries is absolutely required for this position.If interested, write back with the number of years of experience and a brief explanation of that specific experience in each of the following:</p>
<p># Years in logistics software (name of software)<br />
# Years in supply chain software (name of software)<br />
# Years in railroad<br />
# Do you consider yourself an expert in Microsoft Project, Excel, Access, Word, PowerPoint?<br />
# EDUCATION: from where? in what?</p></blockquote><br />
Text<br />
<blockquote><p>Please go through this technology&#8230;and let me know how much experience you have in each:<br />
# .Net<br />
# ADO<br />
# ADO.Net<br />
# ASP<br />
# ASP.Net<br />
# BCP<br />
# BEAM Resources<br />
# C#<br />
# COM<br />
# Crystal Reports<br />
# DTS<br />
# HTML<br />
# IIS<br />
# JavaScript<br />
# MDX<br />
# Oracle Database<br />
# PowerBuilder PFC<br />
# SQL OLAP<br />
# SQL Server database<br />
# VBScript<br />
# Visual Basic<br />
# XML<br />
# XSL</p>
<p>**NOTE: Also be SURE that if you have a particular experience from the above listing..that you have reflected that technology under the specific job(s) where you used it on you resume&#8230;not just in your technical skills section!</p></blockquote><br />
However, as I progressed further into the list of questions, it became readily apparent to me that the person sourcing this role (or at least the person who put together these questions) had little understanding of the way that executives are hired. Curious, I did a little more research on the company that the recruiter works for, and the haze quickly vanished as I realized that she worked for a body shop (staff augmentation firm). Now it made perfectly good sense. She simply didn&#8217;t know any better. Sending out these questionnaires is how she routinely hires IT staffers for her clients. Nothing wrong with it &#8211; it makes perfectly good sense in that arena. However, it doesn&#8217;t translate well into the executive space.</p>
<p>Trust me when I say that you don&#8217;t need to know how many &#8220;years of experience&#8221; a CIO has with HTML, or whether or not they have direct experience in two dozen other technologies (which is what this questionnaire asked). Technology executives need to understand 3 things about a given technology: what it <em>does</em>, what it <em>costs</em>, how it <em>integrates</em>. They don&#8217;t need to have memorized all of the attributes of HTML table tags or CSS options.</p>
<p>In order to make this post a bit more fun, I sent this job description to a retained executive recruiter who is an associate of mine, and asked him to rewrite the job description.  This is what he sent back:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><em>Scott, this one is bad. Real bad. Very unprofessional.</em></p>
<p><em>First, we push our clients to write the job description. That way we can validate what they asked for. However, probably half we have to write for them.</em></p>
<p><em>Couple of things to look for at first and avoid &#8230;</em></p>
<ol>
<li><em>Any job opportunity with out a compensation range is a red flag</em></li>
<li><em>Any job opportunity which point out negative aspects of the job &#8211; &#8220;Downtown&#8221; , &#8220;fallen by the wayside&#8221;</em></li>
<li><em>Any C-level opportunity that talks about parking dollars or riding Marta hints that it is very small</em></li>
<li><em>Any C-level opportunity that list detailed low level requirements that our required</em></li>
</ol>
<p><em>The following is a big sign that this is being handled by a non-executive recruiter:</em><br />
<blockquote><p><em>Also provide me with your availability to interview, when you would be available to start and your minimum salary requirement. When you are available to interview, when you  are available to start and Your MINIMUM annual salary requirements.</em></p></blockquote><br />
<em>&#8230; all that before they have even spoken with you!</em></p>
<p><em>OK here goes the rewrite. This is difficult because I don&#8217;t know what the client is really looking for &#8230;</em></p>
<p><em>Position: CIO<br />
Location: Atlanta, GA<br />
Compensation:  $150k-$200k<br />
Summary:</em></p>
<p><em>A world-class provider of Logistics and Supply Chain software products is looking to fill a CIO position. This client provides Logistics Management and integrated Supply Chain tracking systems to customers on five continents. The client has been in an accelerated growth mode and is looking for a leader who can set strategy and bring structure to an organization which has grown very rapidly. The CIO will be responsible for an organization that manages a variety of technologies such as … Visual Basic, Crystal Reports, .Net, Oracle, IIS and ASP, PowerBuilder/PFC, XML, XSL, JavaScript, VBScript, HTML, and DHTML.</em></p>
<p><em>Requirements:</em></p>
<ul>
<li><em>Experience in transportation, logistics, rail, distribution or supply-chain industries is needed</em></li>
<li><em>Experience setting IT Strategy</em></li>
<li><em>Experience consolidating multiple IT platforms and architectures</em></li>
<li><em>Experience reorganizing and motivating IT organizations</em></li>
</ul>
<p><em>If you are interested or know someone who might be, please call us at …</em><br />
&#8212;&#8212;&#8212;&#8212;-</p>
<p>What a difference!</p>
<p>At any rate, this is what can happen when you let a body shop staff your CIO role. If you are in the market for a CIO, CTO, or some other technology executive, you owe it to yourself to partner with a recruiter or firm that specializes in handling executive-level hires. Retained firms are the best, but more expensive. Many contingency-based firms can also handle your requests with skill and care. If you insist on going with a body shop to find your CIO/CTO/Tech VP, take some time to review their process &#8211; make sure that they are looking for the right things &#8211; the things that will matter to you in the end.</p>
<p>By not doing so, you run the risk of running off decent candidates, and fostering the perception that your firm isn&#8217;t serious about its executive-level technology hires.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology-leadership/how-not-to-hire-a-cio-230.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The CIO Domain Conundrum: What Makes A Good Fit?</title>
		<link>http://www.scottburkett.com/technology-leadership/the-cio-domain-conundrum-what-makes-a-good-fit-212.html</link>
		<comments>http://www.scottburkett.com/technology-leadership/the-cio-domain-conundrum-what-makes-a-good-fit-212.html#comments</comments>
		<pubDate>Mon, 03 Apr 2006 11:00:42 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[CIO]]></category>
		<category><![CDATA[CTO]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[IT_Management]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/212</guid>
		<description><![CDATA[If you ran a convenience store, and needed to call someone in to unclog the drains in the bathrooms, would you call a good plumber, with a variety of experiences under his belt, or would you leave the drains clogged up until you could find a plumber that has deep vertical experience (no pun intended) working within the convenience store industry? Sadly, this is the lame cloud under which many CIOs are hired. Call me crazy, but I'd just want a good plumber. Someone who was a problem solver.<p class="read-more"><a href="http://www.scottburkett.com/technology-leadership/the-cio-domain-conundrum-what-makes-a-good-fit-212.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img style="border:1px dotted #a0a0a0;padding:2px;margin-left:10px"  align="right" id="image229" alt="goodfit.jpg" src="http://www.scottburkett.com/wp-content/uploads/2006/03/goodfit.jpg" />If you ran a convenience store, and needed to call someone in to unclog the drains in the bathrooms, would you call a good plumber, with a variety of experiences under his belt, or would you leave the drains clogged up until you could find a plumber that has deep vertical experience (no pun intended) working within the convenience store industry? Of course not! Sadly, this is the lame cloud under which many CIOs are hired. Call me crazy, but I&#8217;d just want a good plumber. Someone who was a problem solver.<br />
<span id="more-212"></span></p>
<p>A plumber provides a service, much like a CIO. The plumber is there to support you in your operations, not tell you how to run the convenience store. A CIO is also a service provider, albeit an internal one.</p>
<p>One of the things that I have noticed is that CIO job descriptions are often crafted under the same guidelines as other executive positions (sales, operations, finance, and marketing). First, they want the skills &#8211; okay, this is obvious. You have to know technology. In addition to that, however, they often want domain expertise &#8211; generally, deep domain expertise.</p>
<p>For a <strong>CFO</strong>, this makes sense, as each business and industry has different financial treatments.</p>
<p>For a <strong>COO</strong>, this also makes sense, as each business/industry can have a varied, complex, unique operational model.</p>
<p>For a <strong>CMO</strong>, again, this makes complete sense, as each industry tends to have its own marketing demographics and quirks.</p>
<p>For a <strong>CSO </strong>(sales), this also makes perfectly good sense, as you want to tap into their industry relationships to capture sales.</p>
<p>However, technology <em>can be</em> a slightly different animal. It is most often an <em>enabler</em>, and not a <em>vertical leg</em>. This isn&#8217;t always the case &#8211; so before you send in a comment to this post telling that there are exceptions to this &#8211; I agree!</p>
<p>There are basically two types of CIOs.  The first works in an organization where technology is <strong><em>the core </em></strong>of the business &#8211; the core competency that is centric to everything they do.  Examples of this type of environment are generally software, hardware, e-business, and other such technology companies. Technology can run <em>very vertically</em> within these types of firms.</p>
<p>The second works in an organization where technology isn&#8217;t at center stage, but rather is an <em>enabler</em> for the rest of the organization.  Examples of this include manufacturing, retail, and transportation companies. In these environments, technology is a horizontal support structure &#8211; critical to the business, yes &#8211; but not a vertical leg within the firm. Most firms with CIOs fall into this category.</p>
<p>Call me crazy, but you wouldn&#8217;t need to know anything about the doughnut industry or desert &#8220;manufacturing&#8221; in order to provide technology services throughout Krispy Kreme. Don&#8217;t get me wrong, I think if you actually found that CIO candidate who had &#8220;doughnut industry&#8221; experience, you should court them, if nothing else than for the intangibles. However, there are a lot of extremely qualified CIO candidates that get passed up due to lack of domain experience.</p>
<p>From the CIO&#8217;s perspective, things such as call centers, servers, data centers, VOIP, technology budgets, hiring profiles for technologists, interconnectivity, ROI/IRR/EVA, and the Rationale Unified Process don&#8217;t change merely because you change business cards. These are staples found within the toolbox of any decent CIO.</p>
<p>A while back, I was fortunate enough to land in the mix for a CIO opportunity for a large mortgage firm. I was ultimately ruled out due to my lack of experience within the &#8220;mortgage industry.&#8221; Now, the last time I checked, CIOs don&#8217;t approve mortgage applications. Pay no mind that I have worked within the financial services sector for much of my career (consulting to Goldman Sachs, Chase Manhattan, Zurich-Kemper, Citibank, and several other firms). Heck, I even started my career as a computer programmer years ago working for one of the world&#8217;s largest credit card processors.</p>
<p>I should also add that I wasn&#8217;t bitter about losing out on this opportunity. This is business, and I&#8217;m a big boy &#8211; c&#8217;est la vie. I am simply using my own experience to illustrate the point.</p>
<p>Sadly, this has not been my only experience in seeing this line of thinking. A fellow technology colleague was recently ruled out for a position as a CIO with a large furniture manufacturer, because he did not have any experience working within the &#8220;furniture manufacturing&#8221; space. &#8220;You&#8217;re a fantastic candidate, but we need a furniture guy.&#8221; Uh huh &#8211; if you say so, Sparky.</p>
<p>Dan Gringas, a partner with <a title="_blank" target="_blank" href="http://www.tatumllc.com">Tatum Partners</a>, summed this up nicely in a recent article entitled &#8220;<a title="_blank" target="_blank" href="http://www.cioupdate.com/career/article.php/3565306">How to Hire the Best CIO</a>&#8221; over at <a title="_blank" target="_blank" href="http://www.cioupdate.com">CIO Update</a>.<br />
<blockquote><p><strong> Business Knowledge vs. Domain Knowledge</strong></p>
<p>No, you don’t need someone who comes from the cement-mixer industry. Guess what, manufacturing is pretty much the same whether you make cement mixers or cake mixers.</p>
<p>This drives me crazy and it’s endemic in CIO hiring. I once lost the competition for CIO in a company I had a real passion for because they wanted a “shoe guy.&#8221; I had deep knowledge of distribution, manufacturing and their core architecture, but I came from a different manufacturing background.</p>
<p>Most businesses should try to find someone from another industry well known for their strategic use of IT rather than trying to find someone from their specific industry. Hospitals are notorious for this, feeling that they are so different that they have to get someone from another hospital.</p></blockquote><br />
As I mentioned earlier, technology is an enabler. Within the office of the CIO, specifically, you are expecting to see some thought leadership around leveraging technology innovations in order to achieve efficiencies across the enterprise. You are also expecting the CIO and his team to support the operations of the firm by managing the flow of information throughout the organization. The CIO&#8217;s functional role is of a supporting nature.</p>
<div style="text-align: center"><img id="image228" alt="cio_supporting.gif" src="http://www.scottburkett.com/wp-content/uploads/2006/03/cio_supporting.gif" /></div>
<p>The ideal CIO is quite often not an industry zealot, but rather, someone who brings a consultative approach to solving business problems through the smart deployment of technology. Frankly, I would prefer someone who has worked in a variety of industries (e.g. a consulting background), and is used to looking at problems from a multitude of angles. <em>There are actually very few scenarios in which deep domain expertise is going to make or break a good CIO.</em></p>
<p>Umesh Vasistha is the CIO of Jindal Stainless, the largest manufacturer of stainless steel in India (USD $4B in revenues).  In an interview by The Financial Express, he shared a great response to one particular question:</p>
<p><em>Q: Are CIOs participating in the company’s strategic decisions?</em><br />
<blockquote><p>Industry experience is a critical factor in operating the company. A CEO often comes from the operations/sales side in the same industry, while a CFO usually has finance/accounting experience in similar industry. Conversely, CIOs often come from technology careers from cross-functional industry experiences. A CIO wears many caps and is expected to take care of business methodically and use proven formulae of success to generate positive results for the company.</p></blockquote><br />
One of my friends who is an executive recruiter informed me that she has the same problem with sales opportunities that she is placing. The client wants someone who has sold software. Doesn&#8217;t matter that you have a GREAT sales person with a GREAT track record. They want a industry specific salesperson. And the funny part is, most sales people in technology don&#8217;t know or understand technology. She has had this argument with several companies:</p>
<p><strong>Client</strong>: &#8220;We are in trouble, and we want you to fill our CxO position. The last guy fit in great but the firm is still in trouble. So find us someone just like us and he will fit in well&#8221;.</p>
<p><strong>Recruiter/Business Consultant</strong>: &#8220;Wouldn&#8217;t you prefer someone someone very qualified, yet possibly different? His diverse experience could bring new ideas and solutions to the table?&#8221;</p>
<p><strong>Client</strong>: &#8220;No!&#8221;</p>
<p>The good news is, I&#8217;m not alone in my thinking.</p>
<ul>
<li>Dan Gringas (Tatum Partners), <a title="_blank" target="_blank" href="http://www.cioupdate.com/career/article.php/3565306">How to Hire the Best CIO</a>, November 2005</li>
<li>CIO Magazine: <a title="_blank" target="_blank" href="http://www.cio.com/archive/030106/nypd_sidebar1.html">A CIO is a CIO is a CIO</a>, March 2006</li>
<li>Don Curt/TechLINKS: <a target="_blank" title="_blank" href="http://www.techlinks.net/CommunityPublishing/tabid/92/articleType/ArticleView/articleId/3582/The-Right-Process-for-Hiring-a-CIO.aspx">The Right Process for Hiring a CIO</a>, April 2006</li>
</ul>
<p>If you are hiring a CIO, do yourself a favor and read these articles before you publish your job description and start seriously interviewing candidates. And stay tuned to The Pothole, as I have an upcoming article which will discuss the &#8220;hidden&#8221; qualities of a great CIO! Keep an open mind as you screen your CIO candidates, and remember that the CIO is there to provide a service to the organization, not run your business.</p>
<p>What say you? How important is industry experience? Which industries are more stringent than others, and would it be better to have someone who is more well rounded that brings new ideas to the table?</p>
<p>Cheers.<br />
<em></em><br />
- Scott Burkett</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology-leadership/the-cio-domain-conundrum-what-makes-a-good-fit-212.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Very Model of a Modern Major er&#8230; Technologist</title>
		<link>http://www.scottburkett.com/technology-leadership/the-very-model-of-a-modern-major-er-technologist-71.html</link>
		<comments>http://www.scottburkett.com/technology-leadership/the-very-model-of-a-modern-major-er-technologist-71.html#comments</comments>
		<pubDate>Mon, 20 Mar 2006 11:00:22 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[careers]]></category>
		<category><![CDATA[CIO]]></category>
		<category><![CDATA[IT_Management]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[technologists]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/71</guid>
		<description><![CDATA[My ramblings on the evolution of the IT professional.<p class="read-more"><a href="http://www.scottburkett.com/technology-leadership/the-very-model-of-a-modern-major-er-technologist-71.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img hspace="10" align="right" id="image72" src="http://www.scottburkett.com/wp-content/uploads/2005/12/majgen.gif" />The truth be known, I entered the information technology industry to be a <em>computer programmer</em>, not a <em>business person</em>.  Back in those days, computer programmers, operators, and other such technicians were the &#8220;doers&#8221;.  We were expected to stay in our world, while the &#8220;business guys&#8221; sorted out what needed to be done next.  When that miraculous decision was reached, it was &#8220;thrown over the wall&#8221; to the engineers.   It was then that we got busy trying to live up to the expectations of whatever was actually sold to the customer.  Techies and business folks didn’t co-mingle.  That would have been the equivalent of the Hatfields and the McCoys having a lovely Thanksgiving dinner together. My how the times have changed.<br />
<span id="more-71"></span></p>
<p>When I landed my first job as a young, entry-level computer programmer, it was by responding to a newspaper ad (yes, a newspaper ad).  it was similar to this:<br />
<blockquote><p><code>Wanted computer programmers.  Must be able to type.  Must know IBM assembly language and basic flowcharting. Will train on industry, great pay, good benefits.<br />
</code></p></blockquote><br />
While I doubt many folks are finding tons of technology jobs through the newspaper these days, a modern ad for that same type of position might appear as follows (note: this is part of a real posting, copied from Monster.com):<br />
<blockquote><p><code>SYSTEMS DEVELOPER</code></p>
<p><code>~Bachelors Degree in Mechanical Engineering or Agriculture Engineering</code><br />
<code> ~1+ years design engineer experience</code><br />
<code> ~Experience with Commercial Software a must</code><br />
<code> ~Experience with Visualization Software / Groupware / Collaboration software</code><br />
<code> ~Excellent verbal and written communication and presentation skills</code><br />
<code> ~Ability to make presentations to platform leadership</code><br />
<code> ~Ability to travel 10% of the time both domestically and internationally</code><br />
<code> </code><br />
<code> A MAJOR PLUS IF YOU HAVE THE FOLLOWING:</code><br />
<code> </code><br />
<code> ~Jack</code><br />
<code> ~Division / Mockup</code><br />
<code> ~JAVA</code><br />
<code> ~C++</code><br />
<code> ~OpenGL</code><br />
<code> ~Hardware experience in a multi-processor and multi-pipe computer graphics system</code><br />
<code> ~Six Sigma</code><br />
<code> ~Masters Degree</code><br />
<code> ~Pro-E</code><br />
<code> ~Farm Equipment Experience </code></p></blockquote><br />
If I had read the latter in the paper back in the 1980s, I probably would have taken up a different profession. I probably should have anyway, as my starting salary was only $13,500 a year, but that&#8217;s another story. Who would have ever thought that experience with &#8220;farm equipment&#8221; would be the deciding factor in a neck-and-neck race against another equally-as-qualified computer programmer? Farm equipment? Delivering presentations? International travel? &#8230; &#8220;I&#8217;d love to help you out with debugging that Fourier algorithm, Jed, but right now, I need to go and jumpstart the John Deere, then I&#8217;m off to Paris to deliver a presentation for the Chiracs.  Can we get together next month instead?&#8221;</p>
<p>The hiring profiles have changed significantly over the years.  In the old days, employers were thankful to even <em>find</em> people with programming <em>aptitude</em>, much less actual experience.  Many technology roles require ancillary, non-technical experience, in areas such as regulatory compliance (e.g. Sarbanes Oxley), project management (PMI), quality management (TQM, Six Sigma, Lean) and process management (ITIL, CMMI).</p>
<p>Technologists are also expected to be more &#8220;customer facing&#8221; these days.  Being able to function in a pre-sales or sales support capacity is fast becoming a critical skill for even junior-level programmers (excuse me, &#8220;software developers&#8221; &#8211; only us old guys still have the word &#8220;programmers&#8221; as part of our professional vernacular).</p>
<p>Another interesting evolution is in the wardrobe department. Techies are no longer expected to wear one technology hat, but many.  Very many.  The days of the pure specialist are all but over.  Programmers need experience in database management, web design/HTML, new media, and at least 300 different programming languages. Today, techies are only considered marketable if they can list about 800 acronyms on the resume.  If the resume doesn&#8217;t look like alphabet soup, forget about it.  Experience with tools traditionally reserved for business analysts, such as Excel, Word, and Powerpoint, are absolute requirements.</p>
<p>The educational requirements have gone up &#8211; way up &#8211; when I got into the industry, a 2 year Associate&#8217;s degree was a ticket to a fantastic career. Now, Master&#8217;s degrees in computer science, CIS, or other related fields are quickly becoming the norm &#8211; not just for promotion to higher levels, but for entry-level roles as well.</p>
<p>Ah, but the changes aren&#8217;t limited to just the folks in the trenches.  Change is also afoot at the executive level.  The best friend of the CIO used to be the head of  operations (COO), or possibly the CEO.  These days, the CIO&#8217;s number one relationship is with the CFO &#8211; financial and regulatory pressures being the driver there.</p>
<p>As I was preparing this piece, I received the latest copy of <a title="_blank" target="_blank" href="http://www.cio.com">CIO Magazine</a> in the mail.  This is the &#8220;State of the CIO&#8221; issue that I look forward to each year &#8211; very timely considering the topic I am discussing here (yes, I know this report was published at the beginning of the year, and it is now March &#8211; that tells you how long some of my blog drafts stay on my to-do list!).  The issue hits on a number of major areas, including some of the ones I&#8217;ve talked about above.  It is definitely worth a read if you get a chance.<br />
<blockquote><p>We in IT are working with partners we could have never predicted years ago.  The business is becoming much more aware of how information runs through the veins of technology.</p>
<p align="right">- Susan Kozik, CIO, TIAA-CREF</p>
<p></p></blockquote><br />
Despite the appearance of having all of these changes &#8220;thrust&#8221; upon us, I consider the collective change to be a very positive development.  Technology is an enabler for the business, and is no longer considered something that operates in a vacuum; a silo&#8217;d cost center that no one cares much about. We will see continued focus on IT&#8217;s alignment with the overall business, and this is a good thing for technologists &#8211; despite the fact that we may have to choose which hat we&#8217;ll need to wear to work each day.</p>
<p>With sincerest apologies to Gilbert and Sullivan.</p>
<p>Cheers.</p>
<p>- Scott Burkett</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology-leadership/the-very-model-of-a-modern-major-er-technologist-71.html/feed</wfw:commentRss>
		<slash:comments>0</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>The New CIO&#8217;s Open Source Decision</title>
		<link>http://www.scottburkett.com/technology-leadership/the-new-cios-open-source-decision-199.html</link>
		<comments>http://www.scottburkett.com/technology-leadership/the-new-cios-open-source-decision-199.html#comments</comments>
		<pubDate>Tue, 28 Feb 2006 11:00:50 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[business_podcast]]></category>
		<category><![CDATA[CIO]]></category>
		<category><![CDATA[CTO]]></category>
		<category><![CDATA[interviewing]]></category>
		<category><![CDATA[open_source]]></category>
		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/199</guid>
		<description><![CDATA[To open source, or not to open source? That is the question that CIOs have been asking themselves for the better part of a decade. And while the argument for open source grows stronger every day, especially at the enterprise level, questions still remain. Being the new CIO doesn't help either. You just never know what political minefield awaits you.<p class="read-more"><a href="http://www.scottburkett.com/technology-leadership/the-new-cios-open-source-decision-199.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:10px" align="right" id="image206" alt="decision.gif" src="http://www.scottburkett.com/wp-content/uploads/2006/02/decision.gif" /> To open source, or not to open source?  That is the question that CIOs have been asking themselves for the better part of a decade. And while the argument for open source grows stronger every day, especially at the enterprise level, questions still remain. Being the new CIO doesn&#8217;t help either. You just never know what political minefield awaits you.</p>
<p><span id="more-199"></span>The other day I found myself sitting quasi-comfortably in an interview for a CIO position. This particular organization had a technology environment that wasn&#8217;t necessarily all that complex, but it was deemed mission critical to their operations. At one point in the interview, the CEO asked me the following question:<br />
<blockquote><p>What are your views on open source versus proprietary/COTS (Commercial-Off-The-Shelf) software?</p></blockquote><br />
There it was, laid out before me like the proverbial holy grail of interview questions.  I felt much like Olympic snowboarder Lindsey Jacobellis probably felt as she was on the final portion of her gold-turned-silver medal run in the snowboard cross event.  All I had to do was coast to the finish line &#8211; don&#8217;t showboat, or get too fancy &#8211; just stay the course, and the treasure would be mine. This is one of those questions that as technology professionals, you have unknowingly rehearsed so many times at networking events and break room conversations that it can rattle off the answer about as fast as you can pour your next cup o&#8217; joe.</p>
<p>Generally speaking, before an interview, I will have researched the company, its technology, and its principals to the fullest extent allowed to me by the major search engines, my personal business networks, and other &#8220;valued&#8221; resources on the net (such as searching the major job boards to try to find some hiring profiles for their technologists &#8211; a great way to begin gathering intelligence about their business model and system architectures).  Unfortunately, I had very little information on this firm&#8217;s technology platform, so my canned (but well thought out) answer to his question would have to suffice.  There would be no tailoring and positioning this time around.</p>
<p>On the one hand, if you respond with something along the lines of &#8220;open source is great; I love it; it is the best thing since 32-bit registers&#8221;, you run the risk of isolating yourself if the organization has not embraced the open source movement.  On the other hand, if you respond with &#8220;open source is folly, give me Microsoft or give me death&#8221;, you run the risk of being labeled something completely different, and again, isolating yourself. So, you have to straddle the fence, but you try to do so as intelligently as possible.</p>
<p>I also am very careful not to tread into the <em>political</em> side of the open-source debate.  I view things primarily through the business-benefit prism. I could care less about people who use open-source solutions solely because they &#8220;hate Microsoft&#8221;, &#8220;want Bill Gates to slide under a moving milk truck&#8221;, or &#8220;believe that software should be free&#8221;.  The &#8220;I hate the system&#8221; spiel is so 1967.</p>
<p>The following is a longer, more structured version of what I served up as my answer to that interview question, but the general tenets remain:</p>
<p>Implementing a solution grounded in open-source code is not something to tread into lightly, although it can provide certain benefits.  However, the extent to which those benefits reach depends upon a wealth of criteria:</p>
<p>1. First and foremost, the obvious  business prism questions. <em>What business problem does an open-source tool solve? What inherent business benefits am I going to obtain by using it?</em></p>
<p>2. New system or existing?  Are we talking about building a new system from the ground up with very few constraints, or are we talking about an existing system that is mired with them?</p>
<p>3. What is the company culture, at both the technology and management levels? Will the company&#8217;s culture support open-source?</p>
<p>4. Do you have the right skillsets in house, and the right mentality for open source? In other words, will there be a learning curve on the implementation side, or is this going to be a no-brainer for your staff?</p>
<p>5. What are the integration points with your customers (internal and external), vendors, partners, etc.?</p>
<p>6. What are the cost ramifications? What is the total cost of ownership of these systems? True, open-source software is generally freely available, but there could be hidden costs. This goes back to all of the questions above.  For example, if you don&#8217;t have the skills to implement the solution in house, then there would inherently be some form of training cost, followed by opportunity cost.  Or, perhaps services fees to a systems integrator.</p>
<p>7. On the other hand, in organizations where the company culture, the skillsets of the IT staff, and the business requirements are in line, open-source can represent a tremendous reduction in cost/COGS (cost-of-goods-sold) and development timeframes.</p>
<p>Satisfied with my answer, I looked at the CEO, patiently awaiting his response, or perhaps a followup question.  Instead, he responded with:<br />
<blockquote><p>Well, you should know that we are a .NET/C# shop, and that isn&#8217;t about to change.</p></blockquote><br />
Um, okay, if you say so, partner.</p>
<p>Suffice it to say, he probably wasn&#8217;t thrilled with my answer, because in the end, it did leave the door open for open-source as a viable solution. I immediately responded with &#8220;but I&#8217;m not necessarily endorsing open-source as a panacea to solve all of your technology/business problems&#8221;, but I don&#8217;t think it did any good.</p>
<p>This particular fellow turned out not to be what I would call an &#8220;enlightened&#8221; CEO, at least as it pertains to the strategic deployment of technology.</p>
<p>An &#8220;enlightened&#8221; executive realizes that sometimes, in order to be agile within the marketplace, solutions need to shift.  The landscape for technology changes each day &#8211; there is no such thing as a &#8220;long-term&#8221; solution anymore.   Every solution we put into place has a half-life associated with it.  You just hope that you make the right decisions that will lead to slightly longer half-lifes than those of your competition.</p>
<p>What say you? Share your thoughts on the open-source decision by using the comment form below!  No registration is necessary, but all comments are moderated to prevent spam.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology-leadership/the-new-cios-open-source-decision-199.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
			<enclosure url="http://www.scottburkett.com/audio/podcast_28_FEB_2006.mp3" length="9532813" type="audio/mpeg" />
		<itunes:duration>0:00:01</itunes:duration>
		<itunes:subtitle>To open source, or not to open source? That is the question that CIOs have been asking themselves for the better part of a decade. And while the argument for open source grows stronger every day, especially at the enterprise level, questions still r[...]</itunes:subtitle>
		<itunes:summary>To open source, or not to open source? That is the question that CIOs have been asking themselves for the better part of a decade. And while the argument for open source grows stronger every day, especially at the enterprise level, questions still remain. Being the new CIO doesn't help either. You just never know what political minefield awaits you.</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>Managing the IT Backlog</title>
		<link>http://www.scottburkett.com/technology-leadership/managing-the-it-backlog-80.html</link>
		<comments>http://www.scottburkett.com/technology-leadership/managing-the-it-backlog-80.html#comments</comments>
		<pubDate>Mon, 06 Feb 2006 11:00:19 +0000</pubDate>
		<dc:creator>Scott Burkett</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[business-IT_alignment]]></category>
		<category><![CDATA[IT_Alignment]]></category>
		<category><![CDATA[IT_backlog]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[project_backlog]]></category>
		<category><![CDATA[service_oriented_architecture]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[tollgate]]></category>

		<guid isPermaLink="false">http://www.scottburkett.com/index.php/archives/80</guid>
		<description><![CDATA[One of the challenges that many of you face this time of the year is dealing with the dreaded IT backlog. You know, that stack of projects that you commited your team to completing, but just haven't been able to complete? This article will hopefully give you a strategy for tackling this issue head-on!<p class="read-more"><a href="http://www.scottburkett.com/technology-leadership/managing-the-it-backlog-80.html">Continue reading <span class="meta-nav">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><img hspace="10" align="right" title="cluttered_desk.jpg" id="image143" src="http://www.scottburkett.com/wp-content/uploads/2006/01/cluttered_desk.jpg" />Welcome to a new year of creation, innovation, streamlining, and branch pruning, my fine-feathered fellow technology leaders.  One of the challenges that many of you face this time of the year is dealing with the dreaded IT &#8220;backlog&#8221;.  You know, that stack of projects that you commited your team to  completing, but just haven&#8217;t been able to complete?<span id="more-80"></span></p>
<p>We all know the drill.  Every department is fighting tooth and nail to fund their pet projects.  Some of those projects are better ideas than others, but irrespective of their status, they end up piling up in the IT group, waiting for their turn in the queue.   While you can&#8217;t be certain, you vaguely recall some of the ones at the bottom of the stack being placed there on or around this day in 1974.  You stare at the pile of requests on your desk and you wonder whether it would be easier to simply flog yourself to death with a bit of wet luttuce.</p>
<p>All kidding aside, this is a very common scenario.  Coming through the tollgate, all projects are on relatively equal footing.  Ideally, they&#8217;ve been qualified, spec&#8217;d at a high level, and possibly funded.  You simply haven&#8217;t been in a position to dedicate the time, resources, or funding to see them through to fruition.  Having a strategy to confront the backlog on a regular basis is the ideal way to manage this beast.</p>
<p>Any backlog management strategy should start with a review.  This review doesn&#8217;t have to be an in-depth Warren Commission type of affair.  At a minimum, you want to get a feel for the size, scope, interdependencies, and business value of the projects in your backlog.</p>
<p>As you review the projects, do so with a eye toward streamlining the queue through removal, grouping, or splitting them as needed. Due to the ever-changing dynamic landscape of your business environment, you may find that some projects are no longer viable, necessary, or strategic in value.  Those are the easy ones to deal with.</p>
<p>You may find opportunities to streamline the backlog by combining or grouping homogeneous projects.  This grouping will most often be done on the basis of <em>commonalities</em>, or a similar set of architectural specifications, functional requirements, stakeholder involvement, alignment with various business objectives of the firm, and other such attributes.</p>
<p>It is entirely possible that you may find a set of projects that while previously unrelated to each other, they can now be grouped together. Grouping is also a powerful mechanism when there is a corporate shift to a new platform, architecture, or business model, as it gives you the opportunity to put these projects on equal footing from day one.</p>
<p>In some instances, you may even find value in splitting proposed projects up into discrete, smaller pieces.  This can facilitate the grouping of projects as well.  If you are migrating to a services-oriented architecture (SOA), then splitting projects may play a bigger role than in other situations, as many of the smaller pieces can be implemented as global services instead of monolithic, stand-alone applications.</p>
<p>The ideal deliverable from all of this is a streamlined project queue that represents the projects that will add <em>strategic value</em> to the firm.  Outdated, outmoded, or non-essential projects should hopefully have been removed through the backlog review process.</p>
<p>Once you have arrived as a new pipeline of project work, you can then move to a prioritization and phasing exercise, whereby the projects can be intelligently mapped to a timetable and resource plan. If the projects are not funded prior to hitting your backlog in the first place, then the appropriation of funding should be included as part of this review process.</p>
<p>This sort of review should be performed on a recurring basis, and not necessarily just at the beginning (or prior to) each fiscal year.  Ongoing reviews of projects in the IT portfolio will enable you to keep your organization&#8217;s technology efforts as streamlined as possible, while keeping them in a position to take advantage of emerging trends.</p>
<p>I hope this has given some of you the spark you need to jump in and grab your backlog by the dogears!  Good luck!.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scottburkett.com/technology-leadership/managing-the-it-backlog-80.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

