<?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; Software engineering</title>
	<atom:link href="http://bfwa.com/category/software-engineering/feed/" rel="self" type="application/rss+xml" />
	<link>http://bfwa.com</link>
	<description>We can help.</description>
	<lastBuildDate>Tue, 22 May 2012 04:08:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>RISE: The Psychology of Computer Programming (Gerald M. Weinberg, 1971/1998)</title>
		<link>http://bfwa.com/2012/05/21/rise-the-psychology-of-computer-programming-gerald-m-weinberg-19711998/</link>
		<comments>http://bfwa.com/2012/05/21/rise-the-psychology-of-computer-programming-gerald-m-weinberg-19711998/#comments</comments>
		<pubDate>Tue, 22 May 2012 03:39:35 +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[Recruiting]]></category>
		<category><![CDATA[RISE]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=176</guid>
		<description><![CDATA[[The first of a planned series of posts on "Readings in Software Engineering"] The Psychology of Computer Programming, Gerald M. Weinberg, Van Nostrand Reinhold Company, New York, 1971. Hardbound, 288 pages. Personal acquisition date: 17 Oct 1978. Original edition out of print. The Psychology of Computer Programming (Silver Anniversary Edition), Gerald M. Weinberg, Dorset House [...]]]></description>
			<content:encoded><![CDATA[<p>[<em>The first of a planned series of posts on "<a href="http://bfwa.com/2012/05/21/readings-in-software-engineering-rise-a-new-series-of-posts/">Readings in Software Engineering</a>"</em>]</p>
<p><strong>The Psychology of Computer Programming</strong>, Gerald M. Weinberg, Van Nostrand Reinhold Company, New York, 1971. Hardbound, 288 pages. Personal acquisition date: 17 Oct 1978. Original edition out of print.</p>
<p><a href="http://www.amazon.com/The-Psychology-Computer-Programming-Anniversary/dp/0932633420/ref=sr_1_2?ie=UTF8&amp;qid=1337650673&amp;sr=8-2"><strong>The Psychology of Computer Programming (Silver Anniversary Edition)</strong></a>, Gerald M. Weinberg, Dorset House Publishing, New York, 1998. Softbound, 292 pages. Personal acquisition date: unknown. Currently in print (and in ebook form).</p>
<h2><strong>Seminal work; highest recommendation.<br />
</strong></h2>
<p>===========================</p>
<p>(<em>All quotes and citations are from the 1998 Silver Anniversary edition, which contains the unedited text and original page numbering of Weinberg&#8217;s original book interspersed with his observations 25 years later using a different pagination scheme.</em>)</p>
<p>If <strong>The Mythical Man Month</strong> (Frederick P. Brooks, Jr., 1975/1995) is the book that most IT managers own but few ever read (and even fewer follow), <strong>The Psychology of Computer Programming</strong> (Gerald M. Weinberg, 1971/1998) is the book that almost nobody nowadays owns&#8230;at least, nobody under a certain age. And that&#8217;s a tragedy, because Weinberg wrote one of the first and still one of the best works on the human factors in IT project management and software engineering.</p>
<p>I bought my own first copy of Weinberg&#8217;s book in the fall of 1978, nearly 35 years ago, just a few months after joining General Dynamics with my freshly-minted BS in computer science from BYU. Weinberg&#8217;s book had a tremendous impact on me and forever changed my view of software development from a technical activity to a human, social activity. In fact, Weinberg&#8217;s first sentence in his first chapter is just that: &#8220;Computer programming is a human activity.&#8221; That single insight &#8212; with all it implies &#8212; is something that the IT industry seems to re-discover on a regular basis and then forget again just as quickly as it seeks the ever-elusive magic amalgam of technology, methodology, and language (with minimum pesky humans) that will make software development fast, cheap, and good. Weinberg touched upon that very quest early on in the book as well :</p>
<blockquote><p>[1971] Over the years, executives have backed their desire to eliminate programmers with staggering funds. Dozens of simplistic schemes have been heaped with money and praise on the promise &#8212; as yet not kept &#8212; of going directly from a sales proposal to a working data-processing system. (p.4)</p>
<p>[1998] The only thing that&#8217;s changed here in twenty-five years is the fact that the funds dedicated by executives to eliminating programmers from their payrolls have become far more staggering than I imagined back then. (P1.i)</p></blockquote>
<p>Furthermore, Weinberg got to many of Brooks&#8217; key insights four years before Brooks published <strong>The Mythical Man-Month</strong>, including touching (in a slightly different way) on the most famous one: adding more people does not get a job done more quickly, and using exactly the same analogy that gave Brooks&#8217; book its title:</p>
<blockquote><p>For example, certain programming work cannot be done by a team of trainees, no matter how large, so that doubling the number of &#8220;warm bodies&#8221; &#8212; as they are so often called in the trade &#8212; still will not get the work done. Schedule is similarly limiting &#8212; we need only cite the apocryphal experiment which tried to make a baby in one month by putting nine women to work on the job as a team. (p. 68)</p></blockquote>
<p>Here is just a very small sampling of other insights from Weinberg&#8217;s book (my comments are in brackets and italics):</p>
<blockquote><p>Fisher&#8217;s Fundamental Theorem states &#8212; in terms appropriate to the present context &#8212; that the better adapted a system is to a particular environment, the less adaptable it is to new environments. (p. 21) [<em>Thus anticipating the core problem in the entire OO/reuse movement of the 1990s</em>]</p>
<p>The organization chart is a nice toy for a manager, but little programming work would ever get done if interactions among programmers had to follow its narrow, straight lines. . . . But human interactions are never narrow, never straight, and hardly ever in the directions shown on an organization chart. Many serious mistakes have been made in imagining that formal structure was the only structure in an organization. (p. 48)</p>
<p>A programmer who truly sees his program as an extension of his own ego is not going to be trying to find all the errors in that program. . . . And let there be no mistake about it: the human eye has an almost infinite capacity for not seeing what it does not want to see. (p. 55) [<em>Weinberg then goes on to discuss his somewhat controversial (at the time) concept of 'egoless programming', which really boils to to getting other programmers to review your code, now considered to be a best practice: 'many eyes', pair-programming, end-of-day review swaps, etc.</em>]</p>
<p>[<em>By having programmers review each other's code</em>:] Not only is the variation in debugging time reduced, but since there is more than one person familiar with the program, it is easier to get realistic estimates on the amount of real progress that has been made. It is not necessary to rely on a single judgment &#8212; and of the person least likely to be unbiased. (p. 59) [<em>Weinberg goes on to note that you generally end up with more readable code, and you lower the impact of turnover within the programming group, since more than one person understands the code in question</em>.]</p>
<p>Managers tend to select themselves from the &#8220;aggressive&#8221; component of society and have difficulty appreciating the fact that other people do not completely share their goals of money and prestige. They are especially at a loss to understand the smooth functioning of a programming group based on mutual respect for individual talent and cooperating in the common cause. Instead, they tend to view people as working for money or under threat &#8212; and they themselves do. (p. 61) [<em>Some things are timeless.</em>]</p>
<p>So many failures to meet programming deadlines can be traced back to an initial schedule and plan of attack which assumed the most optimistic conditions &#8212; no days lost through illness, no machine trouble, no compiler problems, no &#8220;impossible&#8221; bugs. Because each of us has had the experience of, say, a six-month period in which everyone on the team was in top health <em>or</em> there was no machine trouble <em>or</em> there were no compiler problems <em>or</em> there were no &#8220;impossible&#8221; bugs, we can slip into imagining &#8212; if the price is right &#8212; that we can have a six-month period in which all of these fortunate circumstances happen at once. (pp. 68-69) [<em>Again, </em>plus ça change<em>...</em>]</p>
<p>[<em>After a story of upper management trying -- unsuccessfully -- to force a team leader into accepting an impossible schedule:</em>] Did Harold lose his job? He didn&#8217;t, in this case; but that wasn&#8217;t really important, for he knew he could get another at least as good. If [keeping his job] had been important, he wouldn&#8217;t have been able to do what he did. One of the paradoxes of leadership is simply this: only the leader who is ready to step down has a real chance of success. (p. 85)</p>
<p>It is possible to be too smart for programming &#8212; if the person is not smart enough to use his intelligence to modify his social behavior and methods of communication. (p. 88) [<em>Yes, there have </em>always<em> been prima donnas</em>.]</p>
<p>In a sense, a programming project or team is like a river which remains the same river even thought its water is undergoing constant change. Many project managers are unable to grasp this view of a project. Their view of the project&#8217;s structure is, instead, much like that of a house &#8212; a structure that might collapse should one of the beams be removed. Their actions with respect to the people in the project &#8212; especially so-called &#8220;key&#8221; people &#8212; reflect this static view, often with disastrous consequences. (p. 96)</p>
<p>[<em>Telling a story about the 'filtering' process of reporting project progress up a chain of command</em>:] The net result of six or seven stages of such filtering was a report that monthly presented a consistent forward progress, a few areas slightly behind or slightly ahead, a few problems solved from last month, a few new problems, and a few problems still open. There was, in short, no measurable relationship between what had been reported at the bottom and what came out the top. (p. 101) [<em>Thus describing what I years later termed "<a href="http://brucefwebster.com/2008/04/15/the-wetware-crisis-the-themocline-of-truth/">the thermocline of truth</a>"</em>. <em>Note that Weinberg himself <a href="http://brucefwebster.com/2008/04/15/the-wetware-crisis-the-themocline-of-truth/#comment-90">commented</a> on my post and argued for the gradual layer-by-layer changes that he describes in his book; I countered with two real-world examples where a single individual was responsible for most of the filtering.</em>]</p>
<p>Pressure from higher up is classically recognized by management manuals as both the way to get work done and the way to destroy a reporting system. (p. 103)</p>
<p>Any testing group is also put into a difficult relationship with other groups, because it is their job to criticize. (p. 107) [<em>Thus capturing the classic tension between QA and development, though he goes on to describe ways to overcome it</em>.]</p>
<p>When a supervisor is responsible for work he does not understand, he begins to reward workers not for work, but for the appearance of work. Programmers who arrive early in the morning are through to be better programmers than ones who are seen to arrive after official starting time. Programmers who work late, however, may not be rewarded because the manager is not likely to see that they are working late. Programmers who are observed talking to others are not considered to be working, because the manager has an image that programming work involves scratching out secret messages to the computer. (p. 110) [<em>Again, some things just don't change.</em>]</p>
<p>Programs, like any other man-made objects, are designed &#8212; or should be designed &#8212; with a definite lifespan and scope of application in mind. . . . a program should have neither overdesigned or underdesigned parts. Yet it is an occupational disease of programmers to spend more time on those program parts that present, for some reason, the most intellectual challenge rather than on those that require the most work. (p. 126)</p>
<p>Another fallacy which we shall have to lay to rest is that &#8220;programming&#8221; is some sort of uniform effort requiring a set of uniform talents. For the professional, at least, the job from getting to specifications to delivered program demands various kinds of work, wihch, in turn, demand various talents. (p. 132) [<em>Something which I subsequently discussed in the 'talent' section of my <a href="http://brucefwebster.com/2008/01/10/the-wetware-crisis-tepes/">TEPES </a>post a few years back and some 37 years after Weinberg's observation.]</em></p>
<p><em></em>Programming is often described as a process moving from problem definition through analysis to flow diagramming, then coding, followed by testing, and finishing with documentation. Although this rough view contains some truth, it distorts the truth in several ways. First of all, the actual sequence is not so fixed, because, for example, documentation may precede testing, coding, flow diagramming and even analysis. Second, not all steps need to be present, as when we are recoding a program for a new machine or language. Thirdly, it need not be a <em>sequence</em> at all &#8212; and, in actual practice, rarely is. Who has not experienced a problem definition that changes as discoveries are made in analysis, flow diagramming, coding, testing, and documentation? Or who has ever seen a flow diagram that remains unmodified throughout the coding &#8212; or code that remains unmodified throughout testing? (p. 133) [<em>Yes, Weinberg in 1971 is dismissing the 'waterfall' model and arguing not just the need but the inevitability of incremental/iterative development</em>.]</p>
<p>Although the average programming manager would say that intelligence is more important that personality in programming success, very few could cite cases of people who turned out to not to be intelligent enough to program, but everyone knows of cases of people who were not temperamentally suited to the programmer&#8217;s job. It is in this sense that we can assert that personality is more important than intelligence in programming. (p. 148)</p>
<p>[<em>Regarding ideal personality traits for programmers</em>]&#8230;we can probably say with assurance that someone without the <em>ability to tolerate stressful situations</em> for a period of a week or more is not good programmer material&#8230;people who are not in some measure <em>adaptable to rapid change</em> will probably have trouble as professional programmers&#8230;.one of the most easily identifiable personality needs in programming is a modicum of <em>neatness</em>. We are not speaking here of personal grooming&#8230;What we mean is a slight compulsion to keep one&#8217;s papers in order, without which the computer&#8217;s paper-generating capacity inexorably leads to grief&#8230;.Another essential personality factor is at least a small dose of <em>humility</em>. Without humility, a programmer is foredoomed to the classic pattern of Greek drama: success leading to overconfidence (<em>hubris</em>) leading to blind self-destruction&#8230;.The other side of the coin of humility is <em>assertiveness</em>, or force of character. A programmer&#8217;s job is to get things done, and getting things done sometimes requires moving around obstacles, jumping over them, or simply knocking them down&#8230;.Last among the essential personality traits for programming, we might list <em>sense of humor</em>. The computer &#8220;doth make fools of us all&#8221;, so that any fool without the ability to share a laugh on himself will be unable to tolerate programming for long. (pp. 149-150) [<em>Still probably one of the best summaries of what makes a great programmer, and particularly a great co-worker on a programming team</em>.]</p>
<p>One of the best known and accepted results of motivation research is that increasing &#8220;driving force&#8221; will first increase performance to a maximum, beyond which addition of further driving forces will quickly drive performance to zero. (p. 182) [<em>Can you say "<a href="http://www.amazon.com/Death-March-Edition-Edward-Yourdon/dp/013143635X/ref=sr_1_1?ie=UTF8&amp;qid=1337656126&amp;sr=8-1">death march</a>", boys and girls? I knew you could</em>.]</p>
<p>The fear of new things, the expectation of failure, and the reluctance to admit weakness all have a direct retarding effect on learning, whether in a formal classroom setting or on the job. (p. 191)</p>
<p>A programmer would not really be a programmer who did not at some time consider his program as an esthetic object. This part is not quite symmetrical; that part is clumsy and doesn&#8217;t flow in an appropriate manner; the whole thing does not look proper on the page. To be sure, it is fashionable among programmers to be rough and tough and pragmatic, but deep down each programmer knows that it is not enough for a program just to work &#8212; it has to be &#8220;right&#8221; in other ways. Later, when we discuss language design and program testing, we shall see that the correlation between the esthetic and the pragmatic value of a program is not accidental &#8212; the more pleasing to the eye and mind, the more likely to be correct. (p. 209) [<em>Thus anticipating the whole emergence of the "elegance" value in software design and implementation.</em>]</p></blockquote>
<p>What these quotes &#8212; which represent a tiny fraction of the book &#8212; don&#8217;t contain is one of Weinberg&#8217;s greatest strengths: stories. Weinberg illustrates point after point with real-world stories that &#8212; aside from the archaic technology &#8212; sound very contemporary and very true to life, and are usually entertaining to boot.</p>
<p>Weinberg also has questions for IT managers and for programmers themselves at the end of each chapter. As he himself notes, most of these hold up very well (though there are what he terms some &#8220;hilarious exceptions&#8221;). Here are some examples</p>
<blockquote><p>[<em>For managers:</em>] On what basis do you reward programmers? Are certain of your criteria mutually contradictory, as in asking for efficient but general programs? How explicit are you with your programmers in indicating what you are looking for in their programs? Or do you just tell them that you want the programs to be fast, small, neat, easily modifiable, errorless, and done in a week? (p. 25)</p>
<p>[<em>For programmers:</em>] When you have just found a bug, do you ever sit back and try to trace out the paths you took in your mind? Try doing this on the next bug you find, and write a brief report or outline on what you find. (p. 40)</p>
<p>[<em>For programmers:</em>] Do you refer to your work as &#8220;my&#8221; program? Try passing one week without using the personal possessive in reference to programs, and take notes on the effects you observe. (p. 65)</p>
<p>[<em>For managers:</em>] Do you ever do things to try to inflate the appearance of your technical competence in front of the people who work for you? Describe some of these incidents, and also some incidents in which it was discovered that your technical competence was in at least one respect inferior to one of the people who work for you. What were the consequences of that discovery, and do they justify attempting to cover up? (p. 92)</p>
<p>[<em>For programmers:]</em> Has your manager ever done anything to make you doubt his honesty? If so, describe the incident, what ultimately happened to your doubt, and how your work was affected. (p. 93)</p>
<p>[<em>For managers:]</em> Which do you reward most, accurate information or pleasing information? Do your programmers know what the information you require is used for? Do they see the final reports which are the destination of their information? If not, why not? (p. 114)</p>
<p>[<em>For programmers:</em>] Have you ever yielded to group or managerial pressure against your best technical judgment? Describe the situation and the consequences. (p. 115)</p>
<p>[<em>For programmers:</em>] Make a list of things that your software does for you that fifteen years ago you would have have to do for yourself. Or don&#8217;t you know anything about what software was like fifteen years ago? Do you think a professional should know something about the history of his profession? (p. 138)</p>
<p>[<em>For managers:</em>] Do you use any aptitude tests now in choosing programmers, or does your personality department use them? If so, what do you know about their validity? Do you make any effort to validate them by evaluating programmers after a period of time on the job? What methods do you use for this evaluation? How convinced are you of their effectiveness? (p. 177) [<em>Still very relevant questions, particularly for the organizations that like to use the '<a href="http://www.sharpbrains.com/blog/2008/09/21/top-7-brainteasers-for-job-interviews-and-brain-challenge/">brain teaser</a>' approach to interviewing programmers</em>.]</p>
<p>[<em>For programmers:</em>] Recall from your experience a &#8220;tiny&#8221; error that had a big ultimate cost. What debugging tools or techniques could have prevented that error? Would their cost have been greater than the cost of that one error? (p. 271)</p></blockquote>
<p>Weinberg really was there first with an overarching view, set down in nearly 300 pages, of the human and social factors that affect software development and project management. As the excerpts above show, his observations remain utterly relevant for today. Professionally, I have been dealing with troubled or failed IT projects, either as a consultant or as an expert witness, since 1995. What I can tell you is that Weinberg and Brooks (whose book I&#8217;ll review next) pretty much nailed all the core issues some 40 years ago. During those four decades, tens of billions of dollars &#8211;<a href="http://brucefwebster.com/2009/12/28/the-sessions-paper-an-analytical-critique/"> if not a great deal more</a> &#8212; have been wasted on failed or sub-performing IT projects. A lot of that money lost &#8212; both directly and indirectly &#8212; could have been saved if folks just read &#8212; and believed, and followed &#8212; these &#8220;old&#8221; books. ..bruce..</p>
<h3>TABLE OF CONTENTS (adapted from the 1998 Silver Anniversary Edition)</h3>
<p>PART 1. PROGRAMMING AS HUMAN PERFORMANCE</p>
<p>1. Reading Programs</p>
<p>2. What Makes a Good Program?</p>
<p>3. How Can We Study Programming?</p>
<p>PART 2. PROGRAMMING AS A SOCIAL ACTIVITY</p>
<p>4. The Programming Group</p>
<p>5. The Programming Team</p>
<p>6. The Programming Project</p>
<p>PART 3. PROGRAMMING AS AN INDIVIDUAL ACTIVITY</p>
<p>7. Variations in the Programming Task</p>
<p>8. Personality Factors</p>
<p>9. Intelligence, or Problem-Solving Ability</p>
<p>10. Motivation, Training, and Experience</p>
<p>PART 4. PROGRAMMING TOOLS</p>
<p>11. Programming Languages</p>
<p>12. Some Principles for Programming Language Design</p>
<p>13. Other Programming Tools</p>
<p>PART 5. EPILOGUE</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2012/05/21/rise-the-psychology-of-computer-programming-gerald-m-weinberg-19711998/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Readings in Software Engineering (RISE): a new series of posts</title>
		<link>http://bfwa.com/2012/05/21/readings-in-software-engineering-rise-a-new-series-of-posts/</link>
		<comments>http://bfwa.com/2012/05/21/readings-in-software-engineering-rise-a-new-series-of-posts/#comments</comments>
		<pubDate>Tue, 22 May 2012 03:38:27 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[RISE]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=182</guid>
		<description><![CDATA[I have been collecting and reading books on software engineering since the 1970s, but I have found over the decades that the vast majority of programmers (and their managers) are unfamiliar with most of them. More&#8217;s the pity, for during the 38 years since I first started working in information technology (BYU Translation Sciences Institute, [...]]]></description>
			<content:encoded><![CDATA[<p>I have been collecting and reading books on software engineering since the 1970s, but I have found over the decades that the vast majority of programmers (and their managers) are unfamiliar with most of them. More&#8217;s the pity, for during the 38 years since I first started working in information technology (BYU Translation Sciences Institute, 1974), I have observed not only the truth of the French proverb <em>Plus ça change, plus c&#8217;est la même chose</em> (&#8220;The more things change, the more they stay the same&#8221;) but also the truth of George Santayana&#8217;s observation:</p>
<blockquote><p>Progress, far from consisting in change, depends upon retentiveness&#8230;.Those who will not remember the past are condemned to repeat it. (<em>The Life of Reason</em>, 1905)</p></blockquote>
<p>In my opinion, most of core issues in software engineering and IT project project management were identified decades ago, but our industry suffers from vast institutional ignorance of these works &#8212; &#8216;ignorance&#8217; both in the sense of &#8216;unaware of&#8217; and &#8216;paying no attention to&#8217;. As I once said in a rather interesting setting<sup>1</sup>:</p>
<blockquote><p>Humanity has been developing information technology for half a century. That experience has taught us this unpleasant truth: virtually every information technology project above a certain size or complexity is significantly late and over budget or fails altogether; those that don&#8217;t fail are often riddled with defects and difficult to enhance. Fred Brooks explored many of the root causes over twenty years ago in <strong>The Mythical Man-Month</strong>, a classic book that could be regarded as the Bible of information technology because it is universally known, often quoted, occasionally read, and rarely heeded.</p></blockquote>
<p>To that end, and because I have not been posting much here, I am introducing a new series of posts: Readings in Software Engineering, or RISE. Each post will cover one book (including subsequent editions). I will give what context I have for the book, then quote interesting or relevant excerpts from the book, followed at the end by the book&#8217;s table of contents. My intent is not to present &#8220;one page summaries&#8221; of these books, as are often found for various business books; instead, it is to pull out relevant quotes, in the authors&#8217; own words, in hopes that you&#8217;ll actually track down the books and read them yourselves.</p>
<p><sup>1</sup>In testimony before Congress in 1998. Long story, had to do with Y2K.</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2012/05/21/readings-in-software-engineering-rise-a-new-series-of-posts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Five books every IT manager should read&#8230;right now</title>
		<link>http://bfwa.com/2008/11/20/five-books-every-it-manager-should-readright-now/</link>
		<comments>http://bfwa.com/2008/11/20/five-books-every-it-manager-should-readright-now/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 03:03:18 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Baseline]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Surviving Complexity]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=85</guid>
		<description><![CDATA[My latest Baseline column  is up, and it talks about why you should read these five books now, if you haven&#8217;t already&#8230;and if you have read them, you should probably re-read them.  ..bruce..]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.baselinemag.com/c/a/IT-Management/The-5-Books-Every-IT-Manager-Should-Read-Right-Now/"><img class="alignnone" src="http://bfwa.com/wp-includes/images/books.jpg" alt="" /></a></p>
<p><a href="http://www.baselinemag.com/c/a/IT-Management/The-5-Books-Every-IT-Manager-Should-Read-Right-Now/">My latest Baseline column  is up</a>, and it talks about why you should read these five books now, if you haven&#8217;t already&#8230;and if you have read them, you should probably re-read them.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/11/20/five-books-every-it-manager-should-readright-now/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>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[Pitfalls]]></category>
		<category><![CDATA[PMSE]]></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: 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[Pitfalls]]></category>
		<category><![CDATA[PMSE]]></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 [...]]]></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: Getting on the feature release treadmill</title>
		<link>http://bfwa.com/2008/04/17/pitfall-getting-on-the-feature-release-treadmill/</link>
		<comments>http://bfwa.com/2008/04/17/pitfall-getting-on-the-feature-release-treadmill/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 03:29:37 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/2008/04/17/pitfall-getting-on-the-feature-release-treadmill/</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)] CATEGORIES: political You know the drill. By hook or crook, through long weeks and late hours and ruthless compromising, you finally deliver the project. It&#8217;s finished, it&#8217;s out the door, and you have taken a few weeks to remind yourself what real life is [...]]]></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>You know the drill. By hook or crook, through long weeks and late hours and ruthless compromising, you finally deliver the project. It&#8217;s finished, it&#8217;s out the door, and you have taken a few weeks to remind yourself what real life is like. Now you have the opportunity to go back and make right all the hacks and shortcuts and ugly patches you used to get version 1.0 of the project to the customers. Besides, having done the project once, you now have a far better idea of how it should have been done in the first place. You rub your hands together and…</p>
<p>…you are handed a list of new features required by customers or potential customers for version 2.0 of the project, which has to ship far sooner than you would have thought. After some study, you realize that you&#8217;re not going to be able to deliver all those features within the required time frame &#8212; and even as you realize that, more features get handed down.</p>
<p>Your plans for cleaning up the code and the architecture are rapidly getting pushed off to version 3.0, and you really wonder whether things will be any different then.</p>
<p>Chances are, they won&#8217;t.</p>
<p>Why does this happen so often? There are several reasons, really. One may be economic necessity. Your company (division, group) may have to fund itself, which means that sales have to be sufficient to meet all expenses, including your salary and benefits.   If that&#8217;s your situation, then don&#8217;t worry as much about this pitfall; architectural purity is nice, but a paycheck is better.</p>
<p>Another, less acceptable reason may be a short-term focus on the part of upper management. Determined to milk a current market opportunity and concerned primarily about next quarter&#8217;s results, they may not be receptive to an engineering investment that would yield more in the long run at the expense of smaller profits right now.</p>
<p>A third reason &#8212; not necessarily exclusive of the other two, and sometimes justified &#8212; is a suspicion on the part of upper management that engineers are more interested in doing something &#8220;cool&#8221; or &#8220;elegant&#8221; than in doing something profitable. What upper management may not understand is that elegance &#8212; architecture and code that are concise, yet clear and comprehensive, tending toward orthogonality &#8212; always pays off. Always. The only question is how soon and how much, and that is the fulcrum for the balancing act of the technical manager. Ironically, when the engineering staff is able to rapidly deliver the features requested by upper management, it is often because of a previous investment in elegance; likewise, when features take a long time to implement or bugs take a long time to fix, it&#8217;s often because of architectural gaps and past short-cuts.</p>
<h2>Symptoms</h2>
<p>Constantly having to push engineering work into the next planned release and not the current one.</p>
<h2>Consequences</h2>
<p>The cost of adding new features or extending current ones goes up, not down, over time. The program gets larger, less stable, and less cohesive. Bugs multiply, possibly causing a customer backlash.</p>
<h2>Detection</h2>
<p>Sit down with upper management and detail the engineering work that needs to be done. Indicate what impact this will have on the current list of desired features. See what kind of reaction you get.</p>
<h2>Extraction</h2>
<p>It ain&#8217;t easy. The reaction you get under <strong>Detection </strong>should give you a pretty good idea of what things will be like. There are two approaches, which should probably be used together. First, actively work with upper management and customers to determine which features are absolutely necessary and which are merely desirable &#8212; ones they could live without until the next feature release. It&#8217;s critical to talk directly with the customers, because they may not have done their own prioritizing; the list you get from management may reflect everything from essential requirements to blue-sky wishes.</p>
<p>Second, build engineering cleanup time into each feature so that an engineer allocated four weeks for a given feature spends, say, three weeks on the feature and one week on architecture.</p>
<h2>Prevention</h2>
<p>Besides using the steps described above in <strong>Extraction</strong>, you need to emphasize the need to make the proper ongoing engineering investment in order to gain the desired benefits, particularly if a new technology or methodology is involved. This means investing the time to educate management and customers, to set proper expectations, and (if possible) to run a trial project to demonstrate the process.</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/17/pitfall-getting-on-the-feature-release-treadmill/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfall: Not recognizing the politics of architecture</title>
		<link>http://bfwa.com/2008/04/15/pitfall-not-recognizing-the-politics-of-architecture/</link>
		<comments>http://bfwa.com/2008/04/15/pitfall-not-recognizing-the-politics-of-architecture/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 22:11:52 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[PMSE]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/2008/04/15/pitfall-not-recognizing-the-politics-of-architecture/</guid>
		<description><![CDATA[[From Pitfalls of Modern Software Engineering by Bruce F. Webster (forthcoming)] CATEGORIES: political, architectural, managerial While discussing the challenges of software development with Taligent trainer Tom Affinito back in the mid-1990s, I mentioned &#8212; citing Fred Brooks &#8212; the need for a chief architect. Tom immediately responded, &#8220;Yes, and ultimately architecture is a political act.&#8221; [...]]]></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, architectural, managerial</p>
<p>While discussing the challenges of software development with <a href="http://en.wikipedia.org/wiki/Taligent">Taligent</a> trainer Tom Affinito back in the mid-1990s, I mentioned &#8212; citing <a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1197053305&amp;sr=8-1">Fred Brooks</a> &#8212; the need for a chief architect. Tom immediately responded, &#8220;Yes, and ultimately architecture is a political act.&#8221;</p>
<p>That observation has stuck with me ever since. Unless you are both sole architect and sole implementor &#8212; and maybe even then &#8212; architecture<em> is</em> a political act, and it is especially true in development groups of any size. Developers like to think themselves above politics. Not so; they are as human as anyone else. Developers can be quite political and will use a variety of techniques, good and bad, to achieve their ends: persuasion, hyperbole, fear-mongering, caucusing, lobbying, consensus building, rumors, backbiting, leadership, intimidation, sacrifice, tantrums, threats, and subversion, to name a few. The fact that developers are generally very bright just increases the effectiveness of whatever techniques they use.</p>
<p>Architecture is the lodestar of developer politics because it is ultimately the most prestigious role in software development. Brooks goes to great lengths (and rightfully so) to assert the intellectual and creative challenges of implementation, noting that architecture is not the be-all and end-all. Still, it is Frank Lloyd Wright&#8217;s name that remains attached to the structures he designed, not the name of the contractors who built them. Or, to update an old programming joke, the verb &#8220;to develop&#8221; is conjugated this way: &#8220;I architect, you implement, he tests.&#8221;</p>
<p>Yet we may fail to recognize or acknowledge this situation and its implications. Why? First, we want to believe that all developers have (with regard to the project) the same intentions and goals. Second, we want to believe that the best course is the one that is obvious to us and that everyone else will agree with that. Third, we don&#8217;t want to have to deal with politics ourselves, particularly politics that can lead to confrontations.</p>
<h2>Symptoms</h2>
<p>Assuming — without verification — that all other members of the development group have the same goals, ideas, and talents. Not wanting to assert architectural issues. Finger-pointing as design problems arise.</p>
<h2>Consequences</h2>
<p>Hidden or overt team dissension, leading to poor morale and lack of cooperation as well as a weakened architecture.</p>
<h2>Detection</h2>
<p>Ask yourself these questions:</p>
<ul>
<li>Who is the chief architect of this project?</li>
<li>How well do the other developers support the chief architect?</li>
<li>How effective is the chief architect in her role?</li>
<li>What are the obstacles she faces?</li>
<li>What are all the political issues involved?</li>
</ul>
<p>Answering these questions should go a long way toward determining whether you have underestimated the politics of architecture.</p>
<h2>Extraction</h2>
<p>The first issue to address is that of authority commensurate with responsibility: if there is a chief architect on the team, does she really have the authority to compel adherence to the architecture? This kind of authority is different than being able to say, &#8220;Do this or you&#8217;re off the project,&#8221; which often leads to subtle or overt rebellion by team members. This kind of authority accrues from several factors:</p>
<ul>
<li>a proven track record</li>
<li>respect from teammates</li>
<li>support from technical and upper management</li>
<li>a mutual pact with the developers that the chief architect will give serious consideration to all their ideas and suggestions but that they will abide by her decisions</li>
<li>a willingness to give in on the small things so that she can hold her ground on the big things</li>
</ul>
<p>Beyond that, healing a team that is experiencing jealousy and dissension is no easy feat, especially when you&#8217;re in the middle of a project. Books and seminars on team-building abound; study, learn, and apply.</p>
<h2>Prevention</h2>
<p>Go through the questions in <strong>Detection </strong>but cast them in the future tense. Then, as with <strong>Extraction</strong>, proactively work to build the team and establish the authority of the chief architect.</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/15/pitfall-not-recognizing-the-politics-of-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shades of Denver</title>
		<link>http://bfwa.com/2008/04/08/shades-of-denver/</link>
		<comments>http://bfwa.com/2008/04/08/shades-of-denver/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 18:14:51 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Change management]]></category>
		<category><![CDATA[IT project disputes]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[Quality assurance]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/2008/04/08/shades-of-denver/</guid>
		<description><![CDATA[The opening of Terminal 5 at London Heathrow Airport has not been without problems, to say the least. And one of the specific problems appears to be the automated baggage handling system: &#8230;the computer-operated baggage system has crashed and luggage is now being sorted manually before being loaded on to planes. Twelve return flights to [...]]]></description>
			<content:encoded><![CDATA[<p>The opening of <a href="http://en.wikipedia.org/wiki/London_Heathrow_Airport#Terminal_5">Terminal 5</a> at London Heathrow Airport has not been without problems, to say the least. And one of the specific problems appears to be <a href="http://news.sky.com/skynews/article/0,,30100-1311835,00.html?f=rss">the automated baggage handling system</a>:</p>
<blockquote><p>&#8230;the computer-operated baggage system has crashed and luggage is now being sorted manually before being loaded on to planes.</p>
<p>Twelve return flights to short-haul destinations have been cancelled. . . .</p>
<p>In just over a week the £4.3 billion investment has seen an unimaginable series of PR catastrophes.</p>
<p>Around 19,000 lost bags had to be transported to Milan to be sorted, hundreds of flights have been cancelled, and thousands of furious passengers have sworn they will never fly BA again.</p>
<p>A lack of staff parking and faulty IT systems started the rapid descent into terminal chaos which has seen BA suffer a 5% fall in business class passengers and left it with a £16 million bill.</p></blockquote>
<p>This, of course, will remind those of us who track such things on this side of the Atlantic of <a href="http://www.nytimes.com/2005/08/27/national/27denver.html?ex=1282795200&amp;en=55c1a4d8ddb7988a&amp;ei=5088&amp;partner=rssnyt&amp;emc=rss">the <em>10-year</em> failed effort by United Airlines to  automate the baggage system at Denver International Airport</a>. One can only hope that our British cousins get their problems solved and solved a bit quicker.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/04/08/shades-of-denver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When IT systems failure is not an option</title>
		<link>http://bfwa.com/2008/03/03/when-it-systems-failure-is-not-an-option/</link>
		<comments>http://bfwa.com/2008/03/03/when-it-systems-failure-is-not-an-option/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 18:26:00 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Quality assurance]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/2008/03/03/when-it-systems-failure-is-not-an-option/</guid>
		<description><![CDATA[Here&#8217;s an interesting story over at Physorg.com about the IT project supporting the 2008 Olympics in Beijing: Atos Origin is the information technology partner for the International Olympic Committee (IOC) with the job of designing, building and operating the invisible IT infrastructure that supplies results, events and athlete information to the media, spectators and the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an interesting story over at Physorg.com about <a href="http://www.physorg.com/news123755030.html">the IT project supporting the 2008 Olympics in Beijing</a>:</p>
<blockquote><p>Atos Origin is the information technology partner for the International Olympic Committee (IOC) with the job of designing, building and operating the invisible IT infrastructure that supplies results, events and athlete information to the media, spectators and the world.</p>
<p>It also designs the platforms for accreditation, transportation, hotel accommodation and other services without which the Olympics would fall apart.</p>
<p>On the 11th floor of Digital Beijing, a banner trumpets the slogan &#8220;At the Olympic Games, there is no second chance.&#8221;</p>
<p>Known and unknown risks are analysed and every system is backed up by a plan B, plan C, or even a plan D.</p>
<p>&#8220;We have a very high degree of redundancy (backup),&#8221; said Patrick Adiba, the firm&#8217;s vice president responsible for the Olympics and major events.</p>
<p>That backup includes an entire replica data centre set up at a secret location elsewhere in Beijing that will kick in if the main centre fails.</p>
<p>&#8220;We just have to be ready with a response to known and unknown problems,&#8221; said Adiba.</p>
<p>Atos Origin has been running the IT platform for every Olympics since 2002 Salt Lake City Winter Games and has signed on to do the same for the 2010 Vancouver Winter Games and the 2012 London Summer Olympics.</p></blockquote>
<p>Note at least three key success factors that appear in the brief excerpt above:</p>
<ul>
<li>A high degree of redundancy in systems and processes</li>
<li>A strong focus on testing, again for both systems and processes</li>
<li>A vendor who has performed this exact same task (running an Olympics) multiple times</li>
</ul>
<p>All things to keep in mind for your next large-scale IT systems development effort.  ..bruce..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2008/03/03/when-it-systems-failure-is-not-an-option/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

