<?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"
	>

<channel>
	<title>Webster &#38; Associates LLC</title>
	<atom:link href="http://bfwa.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bfwa.com</link>
	<description>We can help.</description>
	<pubDate>Wed, 25 Jun 2008 00:48:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Expanded lawsuit claims &#8220;millions of devices&#8221; (PDAs, cellphones) infringe</title>
		<link>http://bfwa.com/2008/06/24/expanded-lawsuit-claims-millions-of-devices-pdas-cellphones-infringe/</link>
		<comments>http://bfwa.com/2008/06/24/expanded-lawsuit-claims-millions-of-devices-pdas-cellphones-infringe/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 00:28:10 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Intellectual property]]></category>

		<category><![CDATA[Lawsuits]]></category>

		<category><![CDATA[Main]]></category>

		<category><![CDATA[Patents]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=69</guid>
		<description><![CDATA[According to this story over at PocketLink, Typhoon Touch Technologies has &#8220;&#8217;significantly expanded&#8217; its patent infringement suit begun in December 2007 against Dell by adding Apple, Fujitsu, Toshiba, Lenovo, Panasonic, HTC, Palm, Samsung, Nokia and LG&#8221; &#8212; in other words, just about every firm that manufactures a &#8220;portable computer with touch screen and computer system [...]]]></description>
			<content:encoded><![CDATA[<p>According to <a href="http://www.pocket-lint.co.uk/news/news.phtml/15621/16645/typhoon-touch-lawsuit-millions-devices.phtml">this story over at PocketLink</a>, Typhoon Touch Technologies has &#8220;&#8217;significantly expanded&#8217; its patent infringement suit begun in December 2007 against Dell by adding Apple, Fujitsu, Toshiba, Lenovo, Panasonic, HTC, Palm, Samsung, Nokia and LG&#8221; &#8212; in other words, just about every firm that manufactures a &#8220;portable computer with touch screen and computer system employing the same.&#8221; The patents in question are US Patents <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=5,379,057.PN.&amp;OS=PN/5,379,057&amp;RS=PN/5,379,057">5,379,057</a> (filed in 1993, issued in 1995) and <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=5,675,362.PN.&amp;OS=PN/5,675,362&amp;RS=PN/5,675,362">5,675,362</a> (filed in 1994 and issued in 1997). Typhoon&#8217;s own press release on the expansion can be found <a href="http://www.typhoontouchtech.com/">on their home page</a>. (Curiously missing from the lawsuit: Motorola.)</p>
<p>Since PDA-like devices <a href="http://world.casio.com/corporate/history/chapter03/contents09.html">date back to the 1980s</a>, and <a href="http://www.islandnet.com/~KPOLSSON/applehis/appl1992.htm">John Sculley announced the Apple Newton</a> &#8212; complete with a touch screen &#8212; in early 1992, a year before the earlier patent was filed, one wonders whether these patents can hold up under prior art, and it&#8217;s unclear why the patents were granted in the first place.</p>
<p>On the other hand, there are some curious information gaps on the web. <a href="http://en.wikipedia.org/w/index.php?title=Personal_digital_assistant&amp;action=history">Just last week</a> (see entry for 05:29, 18 June 2008), someone <a href="http://en.wikipedia.org/w/index.php?title=Personal_digital_assistant&amp;action=edit&amp;undoafter=220057068&amp;undo=220083866">stripped out the &#8220;History&#8221; section</a> of the Wikipedia article on PDAs, which &#8212; before being deleted &#8212; documented PDAs going back to 1983. Likewise, a commonly-linked article &#8212; &#8220;The Evolution of the PDA: 1975-1995&#8243; by Evan Koblanz &#8212; appears to have been <a href="http://www.snarc.net/pda/pda-treatise.htm">pulled off the web</a>. (Google doesn&#8217;t have a cached version, nor does the Internet Wayback Machine.)</p>
<p>Sounds as though someone may be trying to do historical revision in advance of trial. ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/24/expanded-lawsuit-claims-millions-of-devices-pdas-cellphones-infringe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pitfall: Using the wrong developers</title>
		<link>http://bfwa.com/2008/06/23/pitfall-using-the-wrong-developers/</link>
		<comments>http://bfwa.com/2008/06/23/pitfall-using-the-wrong-developers/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 18:48:44 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[IT Project Management]]></category>

		<category><![CDATA[Main]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[PMSE]]></category>

		<category><![CDATA[Pitfalls]]></category>

		<category><![CDATA[Recruiting]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=68</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
Various industry studies cite the productivity gap between the best and the worst  developers. While there is some controversy over the ranges often cited (such as the  famous 26:1 figure), anyone who has managed a diverse group of developers won’t  argue [...]]]></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>Various industry studies cite the productivity gap between the best and the worst  developers. While there is some controversy over the ranges often cited (such as the  famous 26:1 figure), anyone who has managed a diverse group of developers won’t  argue with the fact that there can be a dramatic difference in productivity among  individuals.</p>
<p>What is less obvious is that given a group of developers who are roughly equal in having  a sufficient or even superior level of competence and productivity, not all of them will  readily adapt to a new language, technology or development approach. Some  developers will take to it quickly and do very well; others will have to work harder, but  will eventually come up to speed; yet others may never become skilled even  though they may not be aware of this fact.</p>
<p>When this happens, all the developers may be working hard, but the relative quality of  their work &#8212; measured by adherence to best practices for the language/technology in question &#8212; can vary dramatically. This  may not be apparent for some time, and when it does appear, it can be difficult to  correct, from both a technical and organizational viewpoint.</p>
<h2>Symptoms</h2>
<p>Product architecture that must constantly be revised or refactored. Subsystems that are  less stable than others or that are hard to integrate with the rest of the project.  Developers consistently complaining about the quality or utility of a given developer’s  code.</p>
<h2>Consequences</h2>
<p>Failure to achieve the expected benefits of the language/technology. Varying quality within the system under development; friction and even  serious rifts between team members; project or product failure.</p>
<h2>Detection</h2>
<p>It’s a big help to have one or more team members who you know are skilled with the language/technology in question. That can be harder to  determine than you think, even (or especially) if you think that you’re skilled with the language/technology as well. Process, design and/or code reviews may help to shine light on the problems.</p>
<h2>Extraction</h2>
<p>This can be one of the hardest issues for a manager, especially if the developer doesn’t  recognize the deficiencies. The best solution is probably one of obvious or subtle  mentoring: partnering that developer with someone of proven language/technology skills. This approach  has two aims: to get the project back on track and to bring the developer’s skills up to  speed.</p>
<h2>Prevention</h2>
<p>Seek the best developers. That may sound obvious, but a lot of companies are more  interested in head count than talent and adaptability. The developer should be a self- starter and keenly interested in the language/technology in question, and should also have professional software  engineering skills and the discipline to match.</p>
<p>Before the project even starts, spend time to train the developers, and promote the  explicit understanding that their language/technology skills will be evaluated on a regular basis. Provide  incentives for honesty and alternative assignments, such as building tools, for those  whose skills lie elsewhere.</p>
<h2>References</h2>
<p>Webster, <strong>Pitfalls of Object-Oriented Development</strong> (1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/23/pitfall-using-the-wrong-developers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pitfall: Using the wrong metrics (or none at all)</title>
		<link>http://bfwa.com/2008/06/23/pitfall-using-the-wrong-metrics-or-none-at-all/</link>
		<comments>http://bfwa.com/2008/06/23/pitfall-using-the-wrong-metrics-or-none-at-all/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 18:32:44 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[IT Project Management]]></category>

		<category><![CDATA[Main]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[Metrics]]></category>

		<category><![CDATA[PMSE]]></category>

		<category><![CDATA[Pitfalls]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=67</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
That which gets measured gets accomplished or, at least, evaluated. That’s why  various software metrics are used as an indication of progress and accomplishment.  The best known and easiest to compute is lines of code (LOC), usually measured as  thousands 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>That which gets measured gets accomplished or, at least, evaluated. That’s why  various software metrics are used as an indication of progress and accomplishment.  The best known and easiest to compute is lines of code (LOC), usually measured as  thousands of lines of code (KLOC). Luckily, LOC has lost its appeal of the years because it  encourages verbosity and constant additions to the code base, even though simplicity  and refinement of existing code are ideal. Function points (FPs) are trendier, but they’re  also harder to measure and so don’t get used as often.</p>
<p>The point is that these metrics and many others have little bearing on modern software engineering.</p>
<p>Use of the &#8220;wrong&#8221; metrics may in some circumstances be better than no metrics at all. In one project I  worked on, we tracked the change in LOC on a subproject basis week by week; it gave a  rough indication of activity in and stability of a subproject. But the wrong metric may turn out to be a bane if misused or misinterpreted by those above you.</p>
<h2>Symptoms</h2>
<p>Use of metrics that don’t appear to be meaningful or that, worse yet, are misleading. Misuse of metrics as a management club.</p>
<h2>Consequences</h2>
<p>Time is spent generating information that is of little value and that may give a  misleading or erroneous indication of how the project is progressing. More seriously,  developers may be encouraged, consciously or unconsciously, to &#8220;produce&#8221; in ways that  run counter to the goals of the project.</p>
<h2>Detection</h2>
<p>Find out which metrics are being used (if any). Consider their influence and impact; see  whether they help predict time or quality of development. Ask other people how they  interpret these metrics.</p>
<h2>Extraction</h2>
<p>Abandon all irrelevant metrics and adopt appropriate ones. Educate all parties involved  about what is being done and why. Establish benefits and rewards for those who take  the time to use the metrics and whose development efforts improve as a result.</p>
<h2>Prevention</h2>
<p>From the outset, educate everyone &#8212; developers, technical managers, upper  management &#8212; about what are the appropriate metrics and what they mean. Develop  tools to automate metric generation as much as possible. Use the metrics regularly;  distribute the results and discuss their meaning.</p>
<p>Be sure to automate these metrics as much as possible; trying to do these by hand will  work once or twice but will not give you the constant feedback you need to make them  truly useful. Case in point: Do you think anyone would use or continue to use the old  &#8220;lines of code&#8221; metric if they had to count them by hand?</p>
<h2>References</h2>
<p>Webster, Bruce F. &#8220;Lies, Damned Lies, and Project Metrics&#8221; (Parts 1, 2, and 3). <a href="http://www.baselinemag.com/cp/bio/Bruce-F.-Webster/"><em>Baseline</em></a> (online edition).</p>
<p><a href="http://brucefwebster.com/2008/06/20/issue-metrics-for-tester-productivity/#comments">Comments posted by Gerald Weinberg</a> at brucefwebster.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/23/pitfall-using-the-wrong-metrics-or-none-at-all/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pitfall: Lying to yourself and others</title>
		<link>http://bfwa.com/2008/06/23/pitfall-lying-to-yourself-and-others/</link>
		<comments>http://bfwa.com/2008/06/23/pitfall-lying-to-yourself-and-others/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 18:23:41 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[IT Project Management]]></category>

		<category><![CDATA[Main]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[PMSE]]></category>

		<category><![CDATA[Pitfalls]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=66</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
Self delusion and group delusion are all too common in software development projects.  Several factors combine to bring this about. One is the natural optimism prevalent  among software engineers, particularly when they are not allowed, encouraged, or  required to spend sufficient [...]]]></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>Self delusion and group delusion are all too common in software development projects.  Several factors combine to bring this about. One is the natural optimism prevalent  among software engineers, particularly when they are not allowed, encouraged, or  required to spend sufficient time specifying and designing what they will develop.  Another cause is the presumption that no major roadblocks or difficulties will be  encountered along the way, either technical or organizational. A third factor is the  persistent (if illogical) attitude on the part of upper management that because a project  must be completed by a certain date, therefore it can and will be completed by that  date, and information to the contrary is not welcome. Mix these and related factors and  you have a major disaster in the making.</p>
<p>New technologies and/or methodologies (&#8221;TOMs&#8221;) have a way of magnifying these tendencies. Engineers become even more optimistic, technical  managers see fewer roadblocks, and upper management, having read all the glowing  articles about these particular TOMs in the business and trade publications, expects unrealistic results.</p>
<h2>Symptoms</h2>
<p>Irritation, anger, and disbelief when someone gives unpopular but honest appraisals of  how things are going. Long, earnest explanations of why the standard rules of software  development don’t apply in this case. And, of course, serious discrepancies between the  planned schedule and actual results.</p>
<h2>Consequences</h2>
<p>Constant slips in the schedule, as expectations are continually reset to adjust to the new  version of reality. Projects that ship very late, if at all. Loss of credibility for managers  and developers. In the end, you end up looking dishonest, incompetent, or both.</p>
<h2>Detection</h2>
<p>Take aside the developers, managers, and others involved in the project, one at a time,  and ask each person, “Do you think there’s anything we’re fooling ourselves about?”  Make notes of the points each person brings up. Make a second pass through, but this  time show them the list you’ve compiled and ask them what they agree with, what they  disagree with, and what they’d like to add. The number and significance of items on the  list should give you a good idea whether you and others are fooling yourselves about  how the project is going.</p>
<h2>Extraction</h2>
<p>Given a significant list of items, you need to reschedule and plan again based on the  information collected. This may not be easy or popular; in some cases, it may not even  be possible, depending on how upper management reacts. Your choice may then be to  either push ahead as best you can or find another job.</p>
<h2>Prevention</h2>
<p>Use the process described under Detection from the start of project planning and  design. You may sacrifice popularity, but you’ll gain credibility—provided, of course,  that they don’t reassign (or fire) you and put someone more amenable in charge.</p>
<h2>References</h2>
<p>[<em>Professional experience</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/23/pitfall-lying-to-yourself-and-others/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Latest column up: wrapping up IT project metrics</title>
		<link>http://bfwa.com/2008/06/19/latest-column-up-wrapping-up-it-project-metrics/</link>
		<comments>http://bfwa.com/2008/06/19/latest-column-up-wrapping-up-it-project-metrics/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 23:10:12 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[Baseline]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[Metrics]]></category>

		<category><![CDATA[Surviving Complexity]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=65</guid>
		<description><![CDATA[My newest Baseline column is up: “Lies, Damned Lies, and Project Metrics (part 3)“. In it, I wrap up my discussion on IT project metrics, outlining a possible approach using instrumentation and heuristics.  Go check it out.  ..bruce..
]]></description>
			<content:encoded><![CDATA[<p>My newest <a href="http://baselinemag.com/">Baseline</a> column is up: “<a href="http://www.baselinemag.com/c/a/IT-Management/Lies-Damned-Lies-and-Project-Metrics-Part-3/">Lies, Damned Lies, and Project Metrics (part 3)</a>“. In it, I wrap up my discussion on IT project metrics, outlining a possible approach using instrumentation and heuristics.  Go check it out.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/19/latest-column-up-wrapping-up-it-project-metrics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Latest column: more on IT project metrics</title>
		<link>http://bfwa.com/2008/06/13/latest-column-more-on-it-project-metrics/</link>
		<comments>http://bfwa.com/2008/06/13/latest-column-more-on-it-project-metrics/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 21:49:16 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Baseline]]></category>

		<category><![CDATA[Metrics]]></category>

		<category><![CDATA[Surviving Complexity]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=64</guid>
		<description><![CDATA[My newest Baseline column is up: &#8220;Lies, Damned Lies, and Project Metrics (part 2)&#8220;. In it, I talk about why it&#8217;s so hard to apply metrics to IT project management and begin to suggest an approach.  Go check it out.  ..bruce..
]]></description>
			<content:encoded><![CDATA[<p>My newest <a href="http://baselinemag.com">Baseline</a> column is up: &#8220;<a href="http://www.baselinemag.com/c/a/IT-Management/Lies-Damned-Lies-and-Project-Metrics-Part-2/">Lies, Damned Lies, and Project Metrics (part 2)</a>&#8220;. In it, I talk about why it&#8217;s so hard to apply metrics to IT project management and begin to suggest an approach.  Go check it out.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/13/latest-column-more-on-it-project-metrics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pitfall: Not identifying and managing risks</title>
		<link>http://bfwa.com/2008/06/09/pitfall-not-identifying-and-managing-risks/</link>
		<comments>http://bfwa.com/2008/06/09/pitfall-not-identifying-and-managing-risks/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 17:37:31 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Main]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[PMSE]]></category>

		<category><![CDATA[Pitfalls]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=63</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
What are the risks in modern software development? Look at the pitfalls  listed in this book to start. Kind of makes you want to take up gardening, doesn’t it? On  the other hand, being able to identify those risks and then manage [...]]]></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>What are the risks in modern software development? Look at the pitfalls  listed in this book to start. Kind of makes you want to take up gardening, doesn’t it? On  the other hand, being able to identify those risks and then manage them puts you way  ahead in the development game and can make you extremely valuable as a technical  manager.</p>
<p>Why do we sometimes fail to see and handle risks? There are various reasons. We don’t  want to confront others and ask hard questions. We don’t want to expose our own  ignorance. We keep hoping things will correct themselves. We don’t want to disappoint  or upset those above us. We don’t want to have to fire anyone. We don’t want to appear  not to trust others. We face resistance, forceful or subtle, as we try to point out these  risks and deal with them.</p>
<p>Risk management is essential in modern software engineering. It’s essential for all the reasons it would be in any  software development project. But it&#8217;s particularly essential if you are adopting a new technology or methodology (the &#8220;TOM&#8221;), because:</p>
<ul>
<li>the number of IT engineers that you have who are both skilled and experienced in the TOM is likely to be small;</li>
<li>non-IT personnel, particularly upper management, are likely to have high expectations and mistaken perceptions regarding the TOM.</li>
</ul>
<p>In short, adoption of a new TOM is likely to increase the risks of the project.</p>
<h2>Symptoms</h2>
<p>Closed door, closed eyes, closed mind. Constant trickle (or stream) of bad news from  developers. Spending more time putting out fires and explaining problems to upper  management than actively managing and completing tasks.</p>
<h2>Consequences</h2>
<p>Slipped schedules, missed milestones, project failures, lost jobs.</p>
<h2>Detection</h2>
<p>Ask everyone involved with the project what risks they think the project currently faces,  with &#8220;risks&#8221; meaning anything that could cause the project to ship behind schedule,  over budget, lacking specified features, in a form not acceptable to customers. If  anything comes up you haven’t considered and which you aren’t handling, then you  know you’ve fallen into this particular pit.</p>
<h2>Extraction</h2>
<p>Make an exhaustive list detailing all the previously unidentified and unhandled risks that  you gleaned from the questioning in Detection. Distribute the list through the development  group and then ask for any additions or corrections (a risk identified by one person may  be handled by another). Come up with an assessment of each risk: how probable it is,  how it could affect the project, and how it can be managed. Pass this list to upper  management. Reset and reschedule the project, if necessary.</p>
<h2>Prevention</h2>
<p>Risk identification and management should be part of project planning and scheduling  from the beginning. The more actively you work as a team to anticipate and handle  risks, the fewer problems you’ll encounter. Be aware that this takes political courage,  though; those above you don’t always want to hear what the risks are or why the project  may not be completed in the time frame demanded.</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/09/pitfall-not-identifying-and-managing-risks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pitfall: Misjudging relative costs</title>
		<link>http://bfwa.com/2008/06/09/pitfall-misjudging-relative-costs/</link>
		<comments>http://bfwa.com/2008/06/09/pitfall-misjudging-relative-costs/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 17:27:55 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[Main]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[Methodology]]></category>

		<category><![CDATA[PMSE]]></category>

		<category><![CDATA[Pitfalls]]></category>

		<category><![CDATA[Quality assurance]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=62</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)]
Categories: managerial
This is a classic pitfall in software engineering. Typically, insufficient time is allocated  for the problem specification, research, design, architecture, and review that should  occur before coding and during each development cycle. Likewise, software quality assurance (SQA) is often given  little [...]]]></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>This is a classic pitfall in software engineering. Typically, insufficient time is allocated  for the problem specification, research, design, architecture, and review that should  occur before coding and during each development cycle. Likewise, software quality assurance (SQA) is often given  little time, money, or people. The whole focus is on coding, and often that is  underestimated by assuming that development will be linear and that  nothing will go wrong.</p>
<p>Adopting a new technology or methodology (the &#8220;TOM&#8221;) tends to compound this effect in several ways, some of  which are discussed elsewhere. First, unrealistic expectations can creep in. Second,  rapid prototyping and feature development can cause a false sense of progress. Third,  coding time may well be genuinely reduced by the TOM.</p>
<p>As a result, an expectation can arise that all aspects of the development cycle, not just  the coding portion, will be compressed. The first few times you use the TOM, it may require  more time up front for design and architecture, and it’s likely to require as much or  more testing time. As your development group gains more experience and expertise in the TOM, the entire cycle may start to compress, but that comes with time.</p>
<h2>Symptoms</h2>
<p>Non-coding tasks taking longer than the time allotted to them. Slowdowns during  development due to a need to rethink design. Alpha and beta testing taking much longer  than planned.</p>
<h2>Consequences</h2>
<p>Slipped schedules and missed deadlines. Rude surprises as design must be repeated or  testing takes much longer than expected.</p>
<h2>Detection</h2>
<p>Apply Brooks’ rule of thumb: the time required for a project should break down into  one-third for design and prototyping, one-sixth for implementing, and half for testing. If  your proportions are radically different, then you may have misjudged the relative costs  or at least, mislabeled them; a lot of design and testing gets buried inside  implementation.</p>
<p>If you’re far along in your project, keep a close eye on time required for SQA and particularly for testing, which is usually underestimated. Agile methodologies do a better job of addressing testing up front, but SQA remains the poor cousin for most software projects.</p>
<h2>Extraction</h2>
<p>First, throw out your current schedule and do a hard reset of expectations, particularly  among upper management. This is not easy to do, but honesty is always the best policy.  Good luck.</p>
<p>Second, set up a development cycle—specify, design, prototype, review, implement,  test—with the time allocated to each step in the cycle based roughly on the proportions  given above. Recognize that the actual time for each step in each cycle will vary: An  early cycle will tend to have more specification and design and less testing; a later cycle  will reverse those proportions.</p>
<p>Third, manage through one complete cycle and see how well your estimated costs  match reality. Adjust and repeat.</p>
<h2>Prevention</h2>
<p>First, get some project management software. It doesn’t have to be fancy; it just has to  automate the task of adding the estimated times for each task, noting critical paths,  and calculating a final date. This is important; attempting to schedule anything except  the smallest and simplest project in your head will lead to unpleasant surprises.</p>
<p>Second, use steps two and three under Extraction to set up your schedule and to  estimate relative costs. If possible, try this first with a relatively small project and then  work up to larger projects. The goal is to be able to estimate both relative and absolute  costs within a certain margin of error (say, 10 percent) on a regular basis.</p>
<h2>References</h2>
<p>Brooks, Frederick P., Jr. <em>The Mythical Man-Month</em>. Reading, MA: Addison-Wesley, 1995.</p>
<p>Webster, from <em>Pitfalls of Object-Oriented Development </em>(1995).</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/09/pitfall-misjudging-relative-costs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New column for Ziff Davis: &#8220;Surviving Complexity&#8221;</title>
		<link>http://bfwa.com/2008/06/05/new-column-for-ziff-davis-surviving-complexity/</link>
		<comments>http://bfwa.com/2008/06/05/new-column-for-ziff-davis-surviving-complexity/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 00:09:14 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[Books]]></category>

		<category><![CDATA[Main]]></category>

		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=61</guid>
		<description><![CDATA[I&#8217;ve been working for some time on a book called  Surviving Complexity. Many of my posts over at brucefwebster.com have adapted from materials I’m writing for that book.
Well, now I’ve been hired by Ziff Davis Enterprises to write a weekly column on IT Management for the online version of Baseline.  That column is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working for some time on a book called  <a href="http://and-still-i-persist.com/works-in-progress/surviving-complexity/"><strong>Surviving Complexity</strong></a>. Many of my posts over at brucefwebster.com have <a href="http://brucefwebster.com/category/surviving-complexity/">adapted from materials</a> I’m writing for that book.</p>
<p>Well, now I’ve been hired by Ziff Davis Enterprises to write a weekly column on IT Management for the online version of <a href="http://baselinemag.com/">Baseline</a>.  That column is titled “Surviving Complexity” and, again, draws upon work I’m doing for the book. My first column is up:  <a href="http://www.baselinemag.com/c/a/IT-Management/Lies-Damned-Lies-and-Project-Metrics-Part-1/">“Lies, Damned Lies, and Metrics (Part I)”</a>; here’s the opening paragraph:</p>
<blockquote><p>When Capers Jones published <strong>Assessment and Control of Software Risks</strong> (Yourdon Press, 1994), he identified the most serious software risk in IT projects as “Inaccurate Metrics,” and the second most serious software risk as “Inadequate Measurement”. I remember being startled when I first read that back in 1995—they certainly weren’t what I would have chosen—and other authorities in the field criticized his choices. Yet, in the intervening years, I have moved closer and closer to Jones’ point of view.</p></blockquote>
<p>Please feel free to <a href="http://www.baselinemag.com/c/a/IT-Management/Lies-Damned-Lies-and-Project-Metrics-Part-1/">check out the new column</a>.  Thanks.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/06/05/new-column-for-ziff-davis-surviving-complexity/feed/</wfw:commentRss>
		</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>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.533 seconds -->
