<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webster &#38; Associates LLC &#187; Development</title>
	<atom:link href="http://bfwa.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://bfwa.com</link>
	<description>We can help.</description>
	<lastBuildDate>Thu, 27 May 2010 02:24:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fireflies, conveyor belts, and landfill</title>
		<link>http://bfwa.com/2009/03/04/fireflies-conveyor-belts-and-landfill/</link>
		<comments>http://bfwa.com/2009/03/04/fireflies-conveyor-belts-and-landfill/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 17:37:21 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Maintenance]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=96</guid>
		<description><![CDATA[My newest Baseline column is up, and in it, I talk about technology lifecycles that can cause you grief:
Each technology is on its own product lifecycle, which may or may not match with your organization’s business and development lifecycles. In particular, there are certain cycle mismatch patterns that commonly occur in organizations looking to adopt [...]]]></description>
			<content:encoded><![CDATA[<p>My newest Baseline column is up, and in it, I talk about <a href="http://www.baselinemag.com/c/a/IT-Management/Getting-Technology-Lifecycles-in-Sync/">technology lifecycles that can cause you grief</a>:</p>
<blockquote><p><span class="Article_Date">Each technology is on its own product lifecycle, which may or may not match with your organization’s business and development lifecycles. In particular, there are certain cycle mismatch patterns that commonly occur in organizations looking to adopt new technologies. I’ve labeled four such mismatch patterns: firefly, underdone, conveyer belt, and landfill. Each is worth examining. </span></p></blockquote>
<p>Go read the whole thing.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2009/03/04/fireflies-conveyor-belts-and-landfill/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two new Baseline columns up</title>
		<link>http://bfwa.com/2008/09/24/two-new-baseline-columns-up/</link>
		<comments>http://bfwa.com/2008/09/24/two-new-baseline-columns-up/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 12:35:51 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Quality assurance]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Surviving Complexity]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=82</guid>
		<description><![CDATA[The first column, “Second Class Software Quality for Major IT Projects”, talks about the curious fact that organizations are willing to spend millions, tens of millions, even hundred of millions of dollars on major IT project and yet still nickle-and-dime their software quality assurance (SQA) effort. It doesn’t help that SQA personnel are pretty much [...]]]></description>
			<content:encoded><![CDATA[<p>The first column, <a href="http://www.baselinemag.com/c/a/Application-Development/SecondClass-Software-Quality-in-Major-IT-Projects/">“Second Class Software Quality for Major IT Projects”</a>, talks about the curious fact that organizations are willing to spend millions, tens of millions, even hundred of millions of dollars on major IT project and yet still nickle-and-dime their software quality assurance (SQA) effort. It doesn’t help that SQA personnel are pretty much on the bottom of the tech status totem pole, either.</p>
<p>The second column, <a href="http://www.baselinemag.com/c/a/IT-Management/Do-Not-Defer-the-Difficult-in-IT-Projects/">“Do Not Defer The Difficult in IT Projects”</a>, describes the all-too-human tendency in IT development to put off dealing with the toughest problems until last — at which point, you may not be able to solve them all. It also explains why so many IT projects get 80-90% “done” and then suddenly slip for weeks or months without making much progress.</p>
<p>Feedback is always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/09/24/two-new-baseline-columns-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buy vs. Build &#8212; the eternal dilemma</title>
		<link>http://bfwa.com/2008/08/29/buy-vs-build-the-eternal-dilemma/</link>
		<comments>http://bfwa.com/2008/08/29/buy-vs-build-the-eternal-dilemma/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 12:57:19 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=80</guid>
		<description><![CDATA[If it&#8217;s Friday, it must be another Baseline column. This one talks about the issues surrounding whether to build or buy software:
The other day, an IT colleague of mine mentioned a conflict  at a corporation where he’s working. The corporation has a mission-critical  application deployed across a large number of workstations. The set [...]]]></description>
			<content:encoded><![CDATA[<p>If it&#8217;s Friday, it must be <a href="http://www.baselinemag.com/c/a/Application-Development/Buy-vs-Build-Software-Applications-The-Eternal-Dilemma/">another Baseline column</a>. This one talks about the issues surrounding whether to build or buy software:</p>
<blockquote><p>The other day, an IT colleague of mine mentioned a conflict  at a corporation where he’s working. The corporation has a mission-critical  application deployed across a large number of workstations. The set of corporate  employees who use this application largely use it and nothing else all day long  at dedicated workstations. The application they are using is a customized  third-party application; however, the firm has been having chronic problems with  this app (let’s call it “QRSApp”), and so is looking at different solutions. The  firm could continue to make changes to QRSApp to fix their problems. The firm  could switch to a different third-party application; several other vendors  market applications of this type within this firm’s industry. Or, as a senior IT manager now wants to do, the  firm could develop a completely custom and private application to replace  QRSApp, so that the firm has complete control over it.</p>
<p>The question: which solution is best?</p></blockquote>
<p>Comments welcome here or there.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/08/29/buy-vs-build-the-eternal-dilemma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The dangers of delivery</title>
		<link>http://bfwa.com/2008/08/07/the-dangers-of-delivery/</link>
		<comments>http://bfwa.com/2008/08/07/the-dangers-of-delivery/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 19:38:49 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Surviving Complexity]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=73</guid>
		<description><![CDATA[My latest Baseline column talks about the risks that follow a successful IT project:

But sometimes with projects that really shouldn’t succeed—that are attempting too much, too fast, with too many risks—enough things go right, particularly along the critical paths, enough superhuman effort is made by those involved, so that the project does indeed go into [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.baselinemag.com/c/a/IT-Management/Fooled-by-Success-The-Dangers-of-Delivering-Projects-On-Time/">My latest Baseline column</a> talks about the risks that follow a successful IT project:</p>
<p><span class="Article_Date"><span class="txt"></p>
<blockquote><p>But sometimes with projects that really shouldn’t succeed—that are attempting too much, too fast, with too many risks—enough things go right, particularly along the critical paths, enough superhuman effort is made by those involved, so that the project does indeed go into production on time and possibly even under budget. Upper management is thrilled; the development team looks great; and all’s right in heaven.</p>
<p>And that’s when the real trouble begins.</p></blockquote>
<p>Feedback is welcome, there or here.  ..bruce..</p>
<p></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/08/07/the-dangers-of-delivery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Latest column up: distributed development (part 2)</title>
		<link>http://bfwa.com/2008/07/17/latest-column-up-distributed-development-part-2/</link>
		<comments>http://bfwa.com/2008/07/17/latest-column-up-distributed-development-part-2/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 17:20:32 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=71</guid>
		<description><![CDATA[My latest Baseline column is up, discussing how to make a distributed software development project work.  ..bruce..
]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://www.baselinemag.com/c/a/IT-Management/Distributed-Development-Part-2/">latest Baseline column</a> is up, discussing how to make a distributed software development project work.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/07/17/latest-column-up-distributed-development-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfalls of distributed development</title>
		<link>http://bfwa.com/2008/07/07/pitfalls-of-distributed-development/</link>
		<comments>http://bfwa.com/2008/07/07/pitfalls-of-distributed-development/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 03:49:30 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Pitfalls]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=70</guid>
		<description><![CDATA[My latest Baseline column is up, talking about the challenges of a geographically-distributed software development project. Take a look.  ..bruce..
]]></description>
			<content:encoded><![CDATA[<p>My latest Baseline column is up, talking about <a href="http://www.baselinemag.com/c/a/IT-Management/Distributed-Development-Part-1/">the challenges of a geographically-distributed software development project</a>. Take a look.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/07/07/pitfalls-of-distributed-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Allowing the specification to drift or change without agreement</title>
		<link>http://bfwa.com/2008/06/03/pitfall-allowing-the-specification-to-drift-or-change-without-agreement/</link>
		<comments>http://bfwa.com/2008/06/03/pitfall-allowing-the-specification-to-drift-or-change-without-agreement/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 00:17:53 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Change management]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Pitfalls]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=59</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
Let’s start by freely acknowledging that, with rare exceptions, software of any complexity changes between original specification and actual delivery. This is to be expected, and to a certain extent encouraged, when the changes represent a refinement of our understanding of the problem domain [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="../2008/02/25/pitfalls-of-modern-software-engineering-an-explanation"><strong>Pitfalls of Modern Software Engineering</strong></a> by Bruce F. Webster (forthcoming)]</p>
<p><strong>Categories</strong>: managerial</p>
<p>Let’s start by freely acknowledging that, with rare exceptions, software of any complexity changes between original specification and actual delivery. This is to be expected, and to a certain extent encouraged, when the changes represent a refinement of our understanding of the problem domain and the required solutions. Hence Brooks’ assertion that we must be prepared to &#8220;throw one away&#8221; &#8212; we just don’t know for sure what we’ll need to build and how to build it until we’ve built one. One of the advantages of modern technologies and methodologies is that such changes and adaptations can often be made readily and at lower cost in time and risk than for earlier development approaches.</p>
<p>Let’s also acknowledge that, given the time required to deliver a significant piece of software, customer requirements, technical expectations, and market conditions may change dramatically between the time a project is specified and when it is delivered. As John Donovan noted many years ago, the distance between the leading edge of technology and the trailing edge appears to be constantly shrinking. You may need to redirect or revamp projects as they go along in order to respond to such shifts.</p>
<p>But that’s not what this pitfall is about. This pitfall is about specifications that aren’t nailed down, or that aren’t firmly specified at all. A given feature or aspect of the project is discussed (or maybe it isn’t). As time goes on, the person(s) implementing it have one idea as to what it means or may even have new and improved ideas for it. Those not implementing it may be assuming something quite different from what is being written. Those not involved—including, and especially, upper management—may have quite a different (and erroneous) idea of what the feature will be. And customer expectations may be something else again. When the time comes for feature completion, code integration, project review, or customer acceptance, all hell breaks loose.</p>
<h2>Symptoms</h2>
<p>Lack of specification documentation. Engineers showing off “new features.” Mismatched  subsystems. Constant delays in completing given features.</p>
<h2>Consequences</h2>
<p>Schedule slips due to ever-changing specification and integration problems. Lack of  management, marketing, or customer acceptance of the delivered project.</p>
<h2>Detection</h2>
<p>First, see whether you can put your hands on a detailed list of features. If no such list  exists or if it is incomplete or vague, then you have problems.</p>
<p>Second, see whether you can find a detailed description for each feature, including clear  information about what it will not do. Missing or incomplete information is another  danger sign.</p>
<p>Third, compare the specification against what is actually being implemented. Variations  are yet another indication of trouble.</p>
<p>Fourth, propose a change in specification and see what is the process for making it. The  more informal and undocumented the process, the greater the danger of this pitfall.</p>
<h2>Extraction</h2>
<p>The Detection exercise should give you a good idea about your current state and how to  get out of it: Produce the documents described and then use them as a hard spec for  the project.</p>
<p>A second (not necessarily exclusive) approach is to write a complete user’s manual for  the project and let that be the final specification. This is what we did many years ago at Pages Software: the user  documentation, complete with screen shots, was printed a full nine months before the  product was released. The president and CEO of Pages gave a copy to every engineer  and said, “Here’s the final specification.” It saved all of us from the temptation of  making further changes.</p>
<h2>Prevention</h2>
<p>Establish a process to create, review, modify, and enforce the specification. This is, in  effect, the documentation of the design phase of your methodology. This process won’t  be easy or popular, but it will pay off significantly in the long run.</p>
<p>This is such an obvious and well-known pitfall that I&#8217;m almost embarrassed to include it here. But it is still so common that I must.</p>
<h2>References</h2>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/03/pitfall-allowing-the-specification-to-drift-or-change-without-agreement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pitfall: Abandoning good software engineering practices</title>
		<link>http://bfwa.com/2008/05/29/pitfall-abandoning-good-software-engineering-practices/</link>
		<comments>http://bfwa.com/2008/05/29/pitfall-abandoning-good-software-engineering-practices/#comments</comments>
		<pubDate>Fri, 30 May 2008 01:58:38 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=56</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
Why would the use of a new technology or methodology (the &#8220;TOM&#8221;) cause managers and developers to neglect or even abandon solid software engineering practices? Because those practices are under pressure from the start. Many engineers don’t know them and aren’t willing to spend [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="../2008/02/25/pitfalls-of-modern-software-engineering-an-explanation"><strong>Pitfalls of Modern Software Engineering</strong></a> by Bruce F. Webster (forthcoming)]</p>
<p><strong>Categories</strong>: managerial</p>
<p>Why would the use of a new technology or methodology (the &#8220;TOM&#8221;) cause managers and developers to neglect or even abandon solid software engineering practices? Because those practices are under pressure from the start. Many engineers don’t know them and aren’t willing to spend (or aren’t given) the time to learn them. Those who do know them often aren’t willing to spend (or aren’t given) the time to practice them. Technical managers, who often do understand such techniques, find themselves caught in a vise, trapped between ever-increasing (and possibly unrealistic) demands of upper management and the productivity level of the engineers they supervise.</p>
<p>The introduction of a new TOM can cause a new set of problems. Upper management, having read articles about the benefits of this particular TOM, may see it as an opportunity to increase demands. Developers, already under pressure to produce, milk the benefits of the TOM for all they’re worth and may find even less incentive to focus on solid software engineering. And the technical managers in the middle have to cope with the specifics of the TOM while still fighting the software engineering battles.</p>
<h2>Symptoms</h2>
<p>Upper management expects the TOM to immediately shorten the software development lifecycle and is unwilling to allocate the necessary time and resources pilot projects. Engineers neglect common sense and best practices, feeling instead that the TOM somehow magically supersedes both.  Unrealistic expectations from upper management puts pressure on the development team, resulting in even more shortcuts.</p>
<h2>Consequences</h2>
<p>Failure to achieve expected benefits of the TOM, possibly leading to (unwarranted) rejection of the TOM for future projects. Delayed, buggy, and/or failed projects.</p>
<h2>Detection</h2>
<p>It’s usually not hard to detect the pressure from upper management; indeed, the problem is resisting the pressure. As for the engineering-level problems, the best detection comes from regular team meetings and project reviews to go over standard (TOM-independent) software engineering practices.</p>
<h2>Extraction</h2>
<p>This pitfall is a hard one to get out of, because upper management needs to allocate more time and resources, and the engineers need the self-discipline and education to change how they’re doing things. The key is to educate everyone about the benefits of good software engineering &#8212; established practices, predictable schedules, and higher quality &#8212; and <em>then </em>work the TOM into that setting.</p>
<h2>Prevention</h2>
<p>It is sad that there is often so much resistance to doing things right in the first place.  The approach is direct: realistic scheduling, definition of engineering standards, and  enforcement of engineering practices. For starters, make everyone &#8212; especially upper  managemen t&#8211; reads <em>The Mythical Man-Month</em> by Frederick P. Brooks. Then refer to it  again and again as these problems arise.</p>
<h2>References</h2>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/05/29/pitfall-abandoning-good-software-engineering-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Picking the wrong horse</title>
		<link>http://bfwa.com/2008/05/21/pitfall-picking-the-wrong-horse/</link>
		<comments>http://bfwa.com/2008/05/21/pitfall-picking-the-wrong-horse/#comments</comments>
		<pubDate>Thu, 22 May 2008 02:24:59 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=53</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: political
Face it: technology adoption is a gamble, and one often made at gunpoint. External market forces lead internal political forces to demand advances &#8212; often unrealistic ones &#8212; in information technology. Those who adopt too soon come to understand the cliché “bleeding edge”. Those [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="../2008/02/25/pitfalls-of-modern-software-engineering-an-explanation"><strong>Pitfalls of Modern Software Engineering</strong></a> by Bruce F. Webster (forthcoming)]</p>
<p><strong>Categories</strong>: political</p>
<p>Face it: technology adoption is a gamble, and one often made at gunpoint. External market forces lead internal political forces to demand advances &#8212; often unrealistic ones &#8212; in information technology. Those who adopt too soon come to understand the cliché “bleeding edge”. Those who adopt too late lose opportunities and possibly market share. And so you find yourself looking a dozen new technologies and trying to decide which to adopt, knowing that only two or three are likely to succeed: that is, deliver what you need and grow with your ever-increasing demands. A winner is always easier to pick in retrospect, but you seldom have that luxury. Instead, you need to decide between adopting a “safe” technology &#8212; which may not, in the end, really meet your needs &#8212; or leading out with a newer technology and thus run the risk of finding yourself in a dead end with a non-standard or even unsupported solution or approach.</p>
<p>But that&#8217;s why they pay you the big bucks, right?</p>
<p>Just as a personal note, I spent five years (1990-95) and $7 million in venture capital as part of a software start-up that developed and shipped a design-oriented desktop publishing system for . . . the NeXTstep operating system. As I tell people, it seemed like a good idea at the time. It was a great operating system (still is &#8212; go look at Mac OS X) and certainly better than anything else out in 1990. And we were in good company at the time, with firms such as WordPerfect, Ashton-Tate, and Adobe all developing for NeXTstep as well.</p>
<p>But it was the wrong horse.</p>
<h2>Symptoms</h2>
<p>Peers and managers above you start questioning your choice of technologies. The number of other organizations adopting the technology in question doesn&#8217;t seem to be growing much, or is even shrinking. Developers experienced with the technology are hard to find.</p>
<h2>Consequences</h2>
<p>Your system and/or development effort struggles due to the lack of developers and third-party tools for the technologies in question. If you&#8217;re developing a commercial product, you may find a very limited market, assuming you find one at all. If you&#8217;re developing an in-house system, you may end up deploying it, but the system may be difficult to maintain and keep in production for its original hoped-for lifetime. And if you were the champion for adopting that particular technology, you may find yourself losing influence, missing out on promotions, and possibly even out of a job.</p>
<h2>Detection</h2>
<p>Track down and talk frequently with other firms adopting the same technology. Fact-check, as best you can, claims by the technology&#8217;s vendor regarding adoption and market share. Pay particular attention to the products or systems based on this technology that are actually deployed into real-world use.</p>
<h2>Extraction</h2>
<p>If you think you&#8217;ve picked the wrong horse, then start to find the right one, quickly. Figure out what it&#8217;s going to take to move over to the better (or best) technology. Work up a careful transition plan &#8212; as accurate and conservative as you can make it &#8212; and then figure out what it&#8217;s going to take to sell this to upper management. There may be no good or easy paths at this point.</p>
<p>Note that there are cases where you may well be best off staying on the technology you originally picked, particularly if this is an in-house system. That is, it may be more cost effective to push into production, then plan for an earlier-than-expected end-of-life for that system, rather than try to switch horses in mid-race.</p>
<h2>Prevention</h2>
<p>This is hard precisely for the reasons stated above: in many cases, you just don&#8217;t know what will succeed and what won&#8217;t. If you&#8217;re talking about a major decision &#8212; such was what operating system to develop for and deploy on &#8212; your choices may be limited by other factors. In general, though, you want to avoid the leading/bleeding edges &#8212; never count on version 1.0 (or even 1.x) of anything. You want to choose technologies that have been out in the marketplace long enough to have the flaws exposed and &#8212; one hopes &#8212; the biggest problems addressed.</p>
<h2>References</h2>
<p>[<em>Professional observation</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/05/21/pitfall-picking-the-wrong-horse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Underestimating the resistance</title>
		<link>http://bfwa.com/2008/05/16/pitfall-underestimating-the-resistance/</link>
		<comments>http://bfwa.com/2008/05/16/pitfall-underestimating-the-resistance/#comments</comments>
		<pubDate>Fri, 16 May 2008 18:53:33 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Change management]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=50</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: political
A particular technology or methodology (the &#8220;TOM&#8221;) is wonderful. At least, you think it is, based on anything from a breathless  magazine article to years of experience with solid, successful software development using this TOM.  Or you may not think it&#8217;s wonderful, [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="../2008/02/25/pitfalls-of-modern-software-engineering-an-explanation"><strong>Pitfalls of Modern Software Engineering</strong></a> by Bruce F. Webster (forthcoming)]</p>
<p><strong>Categories</strong>: political</p>
<p>A particular technology or methodology (the &#8220;TOM&#8221;) is wonderful. At least, you think it is, based on anything from a breathless  magazine article to years of experience with solid, successful software development using this TOM.  Or you may not think it&#8217;s wonderful, but you do think it may offer advantages and  benefits to your development efforts. And, of course, what’s obvious to you should be  obvious—or, at least, understandable—to everyone else.</p>
<p>So you blithely push ahead&#8230;until people start pushing back. And before you know it,  you’re engaged in a political battle, fighting resistance to the TOM that may  range from guerrilla sniping to a full frontal assault.</p>
<p>Why might people resist accepting object technology? The reasons are varied and may  range from the well-founded to the completely irrational to the deliberately  obstructionist. Here are examples:</p>
<ul>
<li>They don’t understand the TOM.</li>
<li>They don’t want to understand the TOM.</li>
<li>They’re afraid they won’t be able to understand the TOM (and thus will have  less value to the company).</li>
<li>They know they won’t be able to understand the TOM, because they’ve been just skating by for the last ten years&#8211;taking advantage of the IT job shortage&#8211;and know that this will expose them for what they are.</li>
<li>They have very strong feelings about the language and/or programming  methodology, or tools or all three that they currently use.</li>
<li>They really detest the TOM and/or the associated language and/or tools that you’re  proposing they use.</li>
<li>They’re worried that the reasons for adopting the TOM aren’t well thought  through.</li>
<li>They’re worried that the plan for adopting the TOM has significant problems  or flaws.</li>
<li>They want to adopt the TOM, but they want to do it their way.</li>
<li>They want you to fail so that they (or someone they like better) can get your job.</li>
<li>They read this book.</li>
</ul>
<p>Compounding the situation is the fact that you may face several of the reasons  simultaneously, possibly from different sources.</p>
<h2>Symptoms</h2>
<p>Delays in getting approval or support. Rumors circulating behind your back. Objections  constantly brought up in meetings. Former supporters distancing themselves from you.  Reduction in project priority and resources.</p>
<h2>Consequences</h2>
<p>Significant project delays or project failure. Loss of influence. Loss of job.</p>
<h2>Detection</h2>
<p>If you suspect that resistance is deeper or more entrenched than you thought, you need  to find out the sources of resistance and the reasons behind it. This can be hard,  because the people resisting you may not be honest about what they’re doing, or why  they’re doing it.</p>
<p>Furthermore, if the resistance is coming from above, your boss(es) may feel no  obligation to explain their reasons.</p>
<h2>Extraction</h2>
<p>You have four choices, not necessarily mutually exclusive, based on the nature, depth,  and source of the resistance:</p>
<ul>
<li>Push ahead in spite of it.</li>
<li>Mollify or enlist those who resist.</li>
<li>Redirect the project to quell the objections.</li>
<li>Abandon the project gracefully and (maybe) try again later.</li>
</ul>
<h2>Prevention</h2>
<p>Make a list of everyone who might have any input or influence and judge where they  stand. If possible, meet with each one privately to sound out her or him—but recognize  that you may not get an honest answer. Offer each person a chance to make criticisms  and recommendations; let everyone feel a part of the project and the process. Build  enthusiasm, pointing out specific benefits, particularly those of interest to each  individual. Use each source to cross-check others. This process is known as “getting  your ducks in a row,” and you’d better do that before you start. This process may be  more critical for those below you than those above you; don’t underestimate the power  of developers to make your life wonderful or miserable.</p>
<p>Having done that, assess the costs and risks in pushing this project forward compared  to the possible benefits and rewards. Factor that with the probability of success and  make your call. If it looks too dangerous, scale back or redirect. If it looks impossible,  find somewhere else to work.</p>
<h2>References</h2>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/05/16/pitfall-underestimating-the-resistance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
