<?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; Technology</title>
	<atom:link href="http://bfwa.com/category/technology/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>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>Pitfall: Allowing new features to creep (or pour) in</title>
		<link>http://bfwa.com/2008/06/03/pitfall-allowing-new-features-to-creep-or-pour-in/</link>
		<comments>http://bfwa.com/2008/06/03/pitfall-allowing-new-features-to-creep-or-pour-in/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 00:33:45 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Change management]]></category>
		<category><![CDATA[IT Project Management]]></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=60</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
The impulse to constantly add new and incremental features to a software program  certainly isn’t unique to modern software develoment, or to a particular technology or methodology. It derives largely from three  sources. Upper management and marketing want, and sometimes need, 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>: managerial</p>
<p>The impulse to constantly add new and incremental features to a software program  certainly isn’t unique to modern software develoment, or to a particular technology or methodology. It derives largely from three  sources. Upper management and marketing want, and sometimes need, those  additional features to win a customer, to better position the product against a  competitor, or to better justify the expense of an in-house project. Engineers often find it  far more fun, more interesting, and more rewarding to add or extend features than to  make existing features work completely and perfectly. And customers supply a constant  flow of demand for new and improved functionality.</p>
<p>The problem is that many modern technologies and methodologies intensify all these tendencies. With a decent software design and implementation, based on current technology, it can take literally only a few minutes to add or extend  features. Frankly, that’s the payoff that lures many engineers to modern technologies in the first place:  They get to do really neat stuff, do it quickly, and impress the boss while they’re at it.  The boss, having seen how quickly engineers can extend or create functionality, doubles  or trebles the list of must-have features. The technical manager, caught in the middle,  wonders how to deal with all this.</p>
<h2>Symptoms</h2>
<p>Engineers focusing on adding new features instead of getting old ones working  completely. Upper management passing down long (or even short) lists of additional  features when the engineering schedule will be hard-pressed to accommodate the  current ones. Customers failing to distinguish between what they’d like and what they’re  willing to live with.</p>
<h2>Consequences</h2>
<p>Features that don’t work as completely or well as they were intended. Missed  milestones and schedule slippage.</p>
<h2>Detection</h2>
<p>Review all existing features with the engineering team and get an honest assessment of  where each feature is and what it will take to complete it. If necessary, do a design and  code review for each feature. Compare the documented “essential features” list—and  the schedule required to complete them—with the current feature set as well as those  proposed by engineers and upper management, and find where the differences are  coming in.</p>
<h2>Extraction</h2>
<p>Nothing fancy here: Get the absolute “drop dead” release date for the software and work  backward from there, allocating time to design, implement, debug, and test each  feature that is not yet completed. Show everyone (especially customers) the gap  between the time and resources allocated those required for just the currently planned  and requested features. Use whatever process works in your company for performing  feature triage: keeping those that are absolutely essential, dropping those that can wait  for the next release, and negotiating on the others.</p>
<h2>Prevention</h2>
<p>Use the process given in Extraction before a line of code is ever written. As features are  proposed, collect them in a list, but do not allow any work on them. At intervals, repeat  the process: You might have time (or need) to schedule some of the proposed features,  but you may well have to drop previously required ones.</p>
<p>As with <a href="http://bfwa.com/2008/06/03/pitfall-allowing-the-specification-to-drift-or-change-without-agreement/">a prior pitfall on features</a>, this pitfall is so an obvious and well-known that I’m almost embarrassed to include it here. Again, 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-new-features-to-creep-or-pour-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Attempting too much, too fast, too soon</title>
		<link>http://bfwa.com/2008/05/30/pitfall-attempting-too-much-too-fast-too-soon/</link>
		<comments>http://bfwa.com/2008/05/30/pitfall-attempting-too-much-too-fast-too-soon/#comments</comments>
		<pubDate>Sat, 31 May 2008 03:12:49 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=58</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
If your organization is adopting some new technology or methodology (the &#8220;TOM&#8221;), it is likely because of wonderful claims about how it will improve your software engineering efforts: faster development time, higher quality, lower complexity, and so on. Leaving aside the likelihood of  [...]]]></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>If your organization is adopting some new technology or methodology (the &#8220;TOM&#8221;), it is likely because of wonderful claims about how it will improve your software engineering efforts: faster development time, higher quality, lower complexity, and so on. Leaving aside the likelihood of  achieving such claims, these hypothetical benefits still inspire or tempt managers and developers alike to leap  feet first into adopting the TOM, using it to tackle large projects with short deadlines.</p>
<p>The result is like crossing a swamp. The ground starts out a bit damp and the  undergrowth a bit thick, but you can make good progress with your new TOM machete. As  you push ahead, however, you face mud, vines, snakes, water, and alligators in ever- increasing proportions. You may choose to push ahead or to go back, but in either case  the effort and cost are greater than if you had used caution before plunging in. And  those above you want to know what happened to all the wonderful benefits of this TOM.</p>
<h2>Symptoms</h2>
<p>A project that doesn’t seem to be making much progress or one that seems ill-defined.</p>
<h2>Consequences</h2>
<p>Schedule slips and project failure. If initial adoption of the TOM in question (or some key variant thereof), loss of acceptance of that technology and loss of professional credibility.</p>
<h2>Detection</h2>
<p>Enumerate all that you hope to accomplish with this project. See how soon in the  process the coding and prototyping started. Measure current status against the  announced schedule and make a realistic assessment of where you are.</p>
<h2>Extraction</h2>
<p>This can be really tough. Once you’re in the middle of a project, you have a lot of people  counting on you to deliver certain solutions by a particular date. You might be hesitant  to stop everything and plan the entire development effort again. On the other hand,  there is a good chance &#8212; in fact, almost a certainty &#8212; that if you have stumbled into this pitfall,  your efforts to get out of it may not be fully understood or appreciated by those in  authority.</p>
<p>Nevertheless, the best solution is to halt development and take the time to scale down  the project and train developers; then you can set realistic deadlines.</p>
<h2>Prevention</h2>
<p>Look again at the pitfall: too much, too soon, too fast. First, start out small when using  the new TOM for the first (or second or third!) time. Use well-defined,  small-scale pilot projects. Or whittle down your large project into a small one on which  you can build in later development cycles.</p>
<p>Second, take time for education, analysis, and design. Make sure that everyone involved  understands the concepts, techniques, and &#8212; yes &#8212; the pitfalls of this particular TOM. Resist the temptation to start prototyping and coding immediately; go  through an explicit, detailed analysis phase and take time to go through a design phase.</p>
<p>Third, plan for your initial TOM-based projects to take at least as long as they would if  developed using traditional software engineering approaches. You may be pleasantly  surprised; you almost certainly won’t have a rude awakening. After you get several  projects under your belt, you’ll become more accurate at projecting development  cycles.</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/30/pitfall-attempting-too-much-too-fast-too-soon/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>
		<item>
		<title>Pitfall: Not educating and enlisting management before the fact</title>
		<link>http://bfwa.com/2008/05/14/pitfall-not-educating-and-enlisting-management-before-the-fact/</link>
		<comments>http://bfwa.com/2008/05/14/pitfall-not-educating-and-enlisting-management-before-the-fact/#comments</comments>
		<pubDate>Thu, 15 May 2008 04:03:13 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></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=49</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: political
There is an oft-cited dictum in technology development groups: “It is easier to ask  forgiveness than permission.” It is often true and sometimes crucial to circumvent  bureaucratic foot-dragging and politics. But it is not always the best course, and the  danger [...]]]></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>There is an oft-cited dictum in technology development groups: “It is easier to ask  forgiveness than permission.” It is often true and sometimes crucial to circumvent  bureaucratic foot-dragging and politics. But it is not always the best course, and the  danger of following it is commensurate with the technical, financial, and political risks  involved. And all three risks abound when an organization is moving to a new technology or methodology (the &#8220;TOM&#8221;).</p>
<p>Nevertheless, it is not uncommon for a development group to make the switch to the TOM  with only minimal involvement and education of upper management. Indeed,  management may not care very much or may even be supportive—having read an  article about the wonders of this particular TOM in a weekly business magazine.</p>
<p>And that is where the pitfall lies. For unless the project comes in within acceptable time  and budget limits, upper management will suddenly be asking hard questions reflecting  reasonable or unreasonable expectations, given what they know or were told.</p>
<h2>Symptoms</h2>
<p>Apparent lack of knowledge or overly positive expectations or both on the part of  management about the TOM and its role in the relevant projects. Sudden distancing or self- protecting activities if problems crop up.</p>
<h2>Consequences</h2>
<p>Lack of support and possibly active hostility from upper management if problems arise  or if their expectations aren’t met. Finding yourself twisting in the wind. Career damage,  lack of promotion, demotion, loss of job.</p>
<h2>Detection</h2>
<p>Sit down with upper management and find out how much they understand about this particular TOM and how it’s being applied in the relevant project(s). Have them detail their  expectations. Find out their level of enthusiasm or concern for the use of this TOM.</p>
<h2>Extraction</h2>
<p>There’s little to do except start the education and enrollment process much later than it  should have been. It may be really tough, depending on how current expectations  compare to reality, and the truth is, there’s no good reason for not having done this  before things got started.</p>
<h2>Prevention</h2>
<p>From the pitfall itself, it’s obvious that there are two separate (if related) tasks:  educating and enlisting. The first comprises letting management know exactly what  adopting this TOM entails, which means that you had better know yourself, and  you’d better know it well enough to explain it to nontechnical people. Work to contain  your own enthusiasm for this TOM; remember that it is safer to underpromise and overdeliver.</p>
<p>Second, and this is probably tougher, you need to enlist key people: those who can  affect your budget and resources, and those who can affect the scope and direction of  your project. If you can, prove yourself with small projects to establish credibility and to  give your sponsors a track record to point to (and take credit for).</p>
<h2>Reference</h2>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/05/14/pitfall-not-educating-and-enlisting-management-before-the-fact/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Confusing approach with results</title>
		<link>http://bfwa.com/2008/04/26/pitfall-confusing-approach-with-results/</link>
		<comments>http://bfwa.com/2008/04/26/pitfall-confusing-approach-with-results/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 15:15:03 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></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=47</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: conceptual, political
Native tribes in the South Pacific developed &#8220;cargo cults&#8221; during the middle part of the 20th century. Having observed planes (such as the venerable DC-3) landing on their islands and discharging goods from inside, these tribes created simacrula of the planes and worshipped [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="http://bfwa.com/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>: conceptual, political</p>
<p>Native tribes in the South Pacific developed &#8220;cargo cults&#8221; during the middle part of the 20th century. Having observed planes (such as the venerable DC-3) landing on their islands and discharging goods from inside, these tribes created simacrula of the planes and worshipped them, sure that goods would magically arrive as a result.</p>
<p>Something similar happens with many projects that are used to pioneer a new technique or methodology (the &#8220;TOM&#8221;). Those in charge select the TOM, possibly with supporting tools and technologies, and the team pushes ahead. Having gone through the motions and used all the right tools, the team and its upper management may presume that what they&#8217;ve created is properly in line with the TOM and as such will incur all the benefits thereof.</p>
<p>Unfortunately, what often results bears little resemblance to best practices &#8212; or even somewhat OK practices &#8212; in professional TOM development. The painful reality is that they are in many cases worse off than if they had simply used existing techniques, methodologies and languages.</p>
<h2>Symptoms</h2>
<p>Serious problems in schedule, functionality, and quality. Failure to achieve expected benefits of object technology.</p>
<h2>Consequences</h2>
<p>Project instability and schedule slip, often ending in partial or complete project failure.</p>
<h2>Detection</h2>
<p>When you raise issues concerning what is being (or not being) created, you get responses of &#8220;But we&#8217;re using [methodology/notation/language/technology]!&#8221; When you probe for actual understanding of TOM development within the project, you quickly run into blank stares, defensive attitudes, and canned answers.</p>
<h2>Extraction</h2>
<p>This is a hard one to push through to completion. In most cases, what you have to do is bring in some technology and process mentor; in far too many cases, you have to throw out everything that has been done so far and start over.</p>
<h2>Prevention</h2>
<p>Ensure that the development team has people on it who really understand the technology or methodology and who have the skill and experience to apply it correctly and successfully.</p>
<h2>References</h2>
<p>[<em>Professional experience</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/04/26/pitfall-confusing-approach-with-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Betting the company on a given technology or methodology</title>
		<link>http://bfwa.com/2008/04/18/pitfall-betting-the-company-on-a-given-technology-or-methodology/</link>
		<comments>http://bfwa.com/2008/04/18/pitfall-betting-the-company-on-a-given-technology-or-methodology/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 15:58:23 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Main]]></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/2008/04/18/pitfall-betting-the-company-on-a-given-technology-or-methodology/</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
CATEGORIES: political
Imagine the following scene. Your company&#8217;s executive staff gathers for a presentation on a new technology or methodology that will revolutionize information productivity. After a presentation citing the ongoing problems of information management, enterprise computing, and competitive response, you are presented with the solution [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="http://bfwa.com/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>Imagine the following scene. Your company&#8217;s executive staff gathers for a presentation on a new technology or methodology that will revolutionize information productivity. After a presentation citing the ongoing problems of information management, enterprise computing, and competitive response, you are presented with the solution that will boost the company&#8217;s bottom line and guarantee its future: structured development using the C programming language!</p>
<p>But wait! you say. Structured development has been around for a long time, as has C. Lots of folks use structured development and C with mixed results; indeed, many don&#8217;t use it well. Lots of companies have gone out of business while relying upon structured development and C. How are structured development and C going to guarantee our future?</p>
<p>Good question. And yet, structured development and its associated methodologies &#8212; not to mention the C programming language and its versions &#8212; are likely more mature, established, and well understood in real-world applications than are any of the later technologies or methodologies (”TOMs”) that you may want to adopt. For that matter, the number of competent, practicing engineers who are expert at structured development and/or C is likely greater than the number of competent, practicing engineers who are expert at the particular TOM in question. If a company can&#8217;t succeed using structured development and C, why does it think it can succeed using a given TOM?</p>
<p>You may think that I&#8217;m being reactionary or that I don&#8217;t understand all the benefits that more modern TOMs have over structured development and/or C. If so, you miss the point: It is not <em>technique</em> (using <a href="http://en.wikipedia.org/wiki/Jacques_Ellul">Jacques Ellul</a>&#8217;s term) in and of itself that will benefit the company, but rather its intelligent and purposeful application by people who know what they&#8217;re doing and why. To think that adoption of a given TOM (or even a collections of TOMs) will suddenly make everything better is irrational to the point of superstition.</p>
<h2>Symptoms</h2>
<p>Unrealistic expectations on the part of upper management. Marketers overpromising delivery times and feature lists. Technical managers who see the TOM as a silver bullet. Developers neglecting solid software engineering practices, because the TOM “doesn’t require them”.</p>
<h2>Consequences</h2>
<p>At best, you go through a wrenching reeducation and attitude adjustment. At worst, you lose the bet — and the company.</p>
<h2>Detection</h2>
<p>Take the company&#8217;s current business plan, mission statement, and product plans, and eliminate all references to and consideration of the TOM(s) in question. Do these documents still make sense?</p>
<h2>Extraction</h2>
<p>Point out, repeatedly, that it doesn&#8217;t matter what technology you use if the products aren&#8217;t worthwhile and if the company can&#8217;t get a return on investment. Enumerate the factors required for success independent of the TOM(s) in question. Look at all that you can do to maximize those factors. Then &#8212; and only then &#8212; look at how the TOM(s) in question can aid and support those efforts.</p>
<h2>Prevention</h2>
<p>Bet the company on your people, not on some technology or methodology. Isn&#8217;t that what politics is all about?</p>
<h2>Contributor/References</h2>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/04/18/pitfall-betting-the-company-on-a-given-technology-or-methodology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Getting religious about the technology or methdology</title>
		<link>http://bfwa.com/2008/04/14/pitfall-getting-religious-about-the-technology-or-methdology/</link>
		<comments>http://bfwa.com/2008/04/14/pitfall-getting-religious-about-the-technology-or-methdology/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 01:55:55 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<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/2008/04/14/pitfall-getting-religious-about-the-technology-or-methdology/</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
CATEGORIES: political
Let&#8217;s try to keep our perspective while standing knee-deep in the hoopla. As anyone truly experienced in a specific technology or methodology (”the TOM”) will tell you, that TOM is not going to end world hunger or bring about peace in our time. It [...]]]></description>
			<content:encoded><![CDATA[<p>[From <a href="http://bfwa.com/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>Let&#8217;s try to keep our perspective while standing knee-deep in the hoopla. As anyone truly experienced in a specific technology or methodology (”the TOM”) will tell you, that TOM is not going to end world hunger or bring about peace in our time. It won&#8217;t transform the country of your choice into the new economic superpower of the 21st century. It won&#8217;t end cancer, reduce the number of handgun deaths, or curb the rate of out-of-wedlock births. It won&#8217;t even affect dandruff.</p>
<p>Closer to home, the TOM in question doesn&#8217;t invalidate existing programming languages, methodologies, and tools. It won&#8217;t make good engineers or architects out of bad ones. It also won&#8217;t make good products out of bad ones; although it may allow you to develop a better program than you might have otherwise, you can develop awful software just as well using a given TOM as you can using your favorite scapegoat legacy TOM.</p>
<p>Adopting a given TOM probably won&#8217;t make a late project ship on time, though it may allow you to complete a project that never would have shipped otherwise. On the other hand, it may well make the project even later. A given TOM won&#8217;t necessarily have a major impact on the time and effort required for analysis, design, and testing &#8212; except, possibly, to increase it as your team and/or organization comes up to speed on it. The TOM in question may not even be the best solution to the problems you face. It might, in fact, make things worse, not better.</p>
<h2>Symptoms</h2>
<p>An almost blind faith in the virtues of the TOM in question and an equal blindness to its pitfalls and failings.</p>
<h2>Consequences</h2>
<p>Arguments with others; a lack of flexibility; blindness to the TOM’s weak spots.</p>
<h2>Detection</h2>
<p>Analyze reactions to each of the statements above. When people disagree, note any strong negative emotional response. Have those who disagree with a given statement explain it to a disinterested, yet knowledgeable third party and see whether they think the logic holds water.</p>
<h2>Extraction</h2>
<p>As with many pitfalls, study and experience will do much to cure this one. Beyond that, the Detection method above will help you to identify specific areas of excess enthusiasm and credulity.</p>
<h2>Prevention</h2>
<p>Read books, articles and papers that address the TOM, including those in the Bibliography. Find people who have completed meaningful projects using the TOM and ask them for their lessons learned. Have them read the opening paragraphs of this pitfall and respond to any items they disagree with.</p>
<h2>Contributor/References</h2>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/04/14/pitfall-getting-religious-about-the-technology-or-methdology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
