<?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</title>
	<atom:link href="http://bfwa.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bfwa.com</link>
	<description>We can help.</description>
	<lastBuildDate>Thu, 02 May 2013 03:04:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Giving forensic experts a bad name</title>
		<link>http://bfwa.com/2013/05/01/giving-forensic-experts-a-bad-name/</link>
		<comments>http://bfwa.com/2013/05/01/giving-forensic-experts-a-bad-name/#comments</comments>
		<pubDate>Thu, 02 May 2013 03:04:59 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Crime]]></category>
		<category><![CDATA[Expert Testimony]]></category>
		<category><![CDATA[Lawsuits]]></category>
		<category><![CDATA[Main]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=266</guid>
		<description><![CDATA[Cybercrime Review is one of the blogs I read daily, due to my ongoing interest in the intersection between law and technology. The posts generally have to do with court rulings and decisions in cases involving computer technology, such as whether someone can be compelled to provide a password for an encrypted data source. But [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.cybercrimereview.com/">Cybercrime Review</a> is one of the blogs I read daily, due to my ongoing interest in the intersection between law and technology. The posts generally have to do with court rulings and decisions in cases involving computer technology, such as whether <a href="http://www.cybercrimereview.com/2013/04/wisconsin-federal-court-forbids-forced.html">someone can be compelled to provide a password for an encrypted data source</a>. But a post today caught my attention, because it dealt with expert testimony, something <a href="http://bfwa.com/litigation-support/">I&#8217;m personally familiar with</a>. The cases involved were criminal cases, whereas I&#8217;ve only worked in civil cases, but I still cringed reading the post. In cases where I have served as an expert, I am always methodical and cautious &#8212; I will testify to what I can support and defend, but no farther. I am frank with my clients as to my findings and conclusions, and what I am and am not willing or able to say; to their credit, my clients have always handled that well, even if they have at times been disappointed.</p>
<p>The post, &#8221;<a href="http://www.cybercrimereview.com/2013/05/forensic-fraud-now-available-on-daytime.html">Forensic Fraud: Now Available on Daytime TV</a>&#8221; by Marielle Dirkx, highlights two cases. The first is the notorious Jodi Arias murder trial taking place in Arizona right now. At that trial, a forensic expert presented what he claimed was evidence from a photograph taken by Arias of her boyfriend, Travis Alexander, just before she killed him (something she admits, but claims was in self-defense). The expert blew up the photograph and purported to show a reflection of Arias in Alexander&#8217;s eye. Furthermore, he claimed that his enhancement of the reflection showed that Arias was not holding a weapon at the time she took the photograph.</p>
<p>See for yourself:</p>
<div class="wp-caption alignnone" style="width: 410px"><a href="http://www.cybercrimereview.com/2013/05/forensic-fraud-now-available-on-daytime.html"><img alt="" src="http://1.bp.blogspot.com/-w39bf408mNA/UXw72nX-58I/AAAAAAAAAoE/4vKwZWBDK04/s400/enhance.jpg" width="400" height="224" /></a><p class="wp-caption-text">Obvious, right?</p></div>
<p>Clear, right? And from this processed enlargement, &#8220;According to the expert, Arias was standing a few feet away from Alexander, holding the camera with both hands at the time the picture was taken; and he further asserted that he could state with scientific certainty that she was not holding either a gun or a knife.&#8221;</p>
<p><em>Facepalm</em>.</p>
<p>According to Dirkx, the expert&#8217;s testimony and evidence were not admitted.</p>
<p>The second cases is too detailed to summarize here, but it involves a &#8220;go-to&#8221; expert for prosecutors in Mississippi, a dentist who &#8220;routinely testified as a wound pattern expert, a trace metals expert, a gun shot residue expert, a gunshot reconstruction expert (he once performed a ballistics analysis by shooting dogs from the pound), a crime scene investigator, a blood spatter expert, a &#8216;tool mark&#8217; expert, a fingernail scratch expert, and an expert in &#8216;liquid splash patterns.&#8217;&#8221; In the case in question, this dentist(!) used Photoshop and his PC to &#8220;enhance&#8221; surveillance video that  he claimed showed details about the alleged crime. Problem was, the FBI had processed the same video and said no such details appeared. Apparently, the prosecution did not see fit to share that FBI analysis with the defense or the court, and the defendants were sent to prison <em>for ten years</em> before their conviction was overturned due to that omission.</p>
<p>Go read the whole thing; it&#8217;s worth it.  ..bruce..</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2013/05/01/giving-forensic-experts-a-bad-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weighing in on Project Orca</title>
		<link>http://bfwa.com/2012/11/10/weighing-in-on-project-orca/</link>
		<comments>http://bfwa.com/2012/11/10/weighing-in-on-project-orca/#comments</comments>
		<pubDate>Sat, 10 Nov 2012 18:01:43 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Pitfalls]]></category>
		<category><![CDATA[Quality assurance]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=257</guid>
		<description><![CDATA[Cross posted from And Still I Persist] [Note: I am currently in transit from Colorado to Florida and am composing this post as I have time and 'net access.] &#8220;All the most important mistakes are made on the first day.&#8221; - The Art of Systems Architecting (Maier &#38; Rechtin) Project Orca was the Romney campaign&#8217;s [...]]]></description>
				<content:encoded><![CDATA[<p>Cross posted from <a href="http://andstillipersist.com/2012/11/weighing-in-on-project-orca/">And Still I Persist</a>]</p>
<p>[Note: I am currently in transit from Colorado to Florida and am composing this post as I have time and 'net access.]</p>
<blockquote><p>&#8220;All the most important mistakes are made on the first day.&#8221;</p>
<p>- <a href="http://www.amazon.com/Art-Systems-Architecting-Third-Engineering/dp/1420079131"><em>The Art of Systems Architecting</em></a> (Maier &amp; Rechtin)</p></blockquote>
<p>Project Orca was the Romney campaign&#8217;s technological effort to track in near-real-time actual voting in precincts all over the United States, with the intent of using that information in combination with individual-specific demographic databases to  increase or pull back phone-call and door-knock get-out-the-vote (GOTV) efforts based on what was happening there. Since it appears more and more that Romney lost largely because of a lack of Republican turnout, it&#8217;s safe to say that the Romney/RNC GOTV effort was a failure. What is less clear is how much of an impact Orca had on that failure.</p>
<p>Three important disclosures up front. First, I was a Project Orca volunteer in Colorado. Second, I have no direct knowledge of how Orca was envisioned, developed, and operated beyond my own experience as an end user. Third, I&#8217;ve worked in software engineering and information technology since 1974, and my major professional focus since 1994 or so has been on how and why IT projects fail or succeed &#8212; a subject on which I&#8217;ve taught seminars, published books and articles, consulted in large corporations, and testified in courts and before Congress.</p>
<p>That said, the flap over Orca has made it all the way to the Drudge Report, largely due to two key discussions. The first is by JohnE over at Ace of Spades, who wrote <a href="http://ace.mu.nu/archives/334783.php">the initial scathing report on Orca</a> and followed it up with <a href="http://ace.mu.nu/archives/334825.php">a reply to some of the push-back from the Romney campaign</a>. The second is by Joel Pollack over at Breitbart, who had <a href="http://www.breitbart.com/Big-Government/2012/11/08/Orca-How-the-Romney-Campaign-Suppressed-Its-Own-Vote">a Romney worker in Colorado who spoke of some of the problems</a>.</p>
<p>My own experience matches much of what JohnE (who was also in Colorado) stated. I participated in four training calls. The first three all gave the same information about how the system would work, though &#8212; as JohnE noted &#8212; the Romney people kept refering to the Orca software as an &#8220;app&#8221;, even though it was simply a website that you logged into. (From JohnE&#8217;s comments, it sounds as though the use of the term &#8220;app&#8221; confused at least some Orca volunteers.)</p>
<p>Unlike JohnE, I was very clear from both the calls and the e-mails I receive that I needed to pick up my poll watcher certification and bring it with me to my assigned polling place on Election Day, so I am curious about his confusion. On the other hand, for my particular county (Douglas County), it appears that the certifications weren&#8217;t ready until the day before Election Day, which strikes me as cutting it a bit close. But I did drive down to Castle Rock on Monday afternoon and picked it up.</p>
<p>There was one more call the night before Election Day, but that was just a very brief, rah-rah call. After that Monday night call, I tried logging into the Orca web site to test out my password, but the log-in failed. I found that puzzling, but just assumed that they had the system locked down ether for security or administrative purposes.</p>
<p>Since Colorado is one of the few states that does not allow any electronic devices (phones, tablets, laptops) in polling places, I was also very clear from the training that I would have to print out the list of registered voters, bring it with me, mark off voters as they identified themselves at the polling place, and then periodically run out to my car and enter voting information via my iPad or iPhone. I printed out the list &#8212; and immediately discovered what I considered the first, admittedly minor, glitch: the list, a PDF file over 60 pages long, was formatted in such a way that you could not three-hole-punch the sheets (to put in a binder) without punching through the check boxes (for tracking voting and reporting) for some of the voters on each page. As I said, minor, but my technical writing background made me frown a bit. Since I own Adobe Acrobat, I solved the problem via the kludge of adding headers and footers to each page and then telling the pages to shrink themselves to fit.</p>
<p>So, with two binders in hand (I printed two copies of the list), with iPhone, my iPad, and my laptop in the car &#8212; along with two Black &amp; Decker power boxes, and a couple of folding camp chairs &#8212; I showed up at my polling place at 6:45 am. I also brought with me three dozen fresh donuts (a suggestion from one of the training calls) that were greatly welcomed and did much to smooth relations with the actual poll workers.</p>
<p>Everything went well until the first time I went out to the car to report voters. I tried to log into the Orca website, and once again I got a &#8220;login failed&#8221; error message. (Second minor but telling item: that error message had a typo in it. The fact that such a typo was in a high-probability error message in a live system with over 30,000 anticipated users speaks to haste and sloppiness.) I called the help number given in the error message, and got a support person at the Boston command center who said they would reset my password and gave me the new code, but that it would take a little while for the new code to go live.</p>
<p>When I came back out again an hour or so later and tried to log in, the new password didn&#8217;t work either. The Orca system also had a call-in option, so I tried that and was told that my PIN was invalid.</p>
<p>At this point, it was about 8:30 in the morning. The next eight or so hours were all more of the same &#8212; I would call, the password would be reset, I would wait a while, I would try to log in, it would fail. Rinse and repeat. I was told by some of the support people I spoke with that almost no one in Colorado was able to log in &#8212; a geographical uniqueness that I found puzzling, since the login screen just asked for username (an e-mail address) and password. Another support person mentioned that there were similar problems being reported for North Carolina. Finally, sometime around 4:30 to 5:00 pm, I was given a new pin for the dial-in line &#8212; and that finally worked. I reported all the voters who had voted so far that day and did updated reports twice more before the poll finally closed at 7:00 pm.</p>
<p>JohnE pushes back (with justifiable skepticism) against Zac Moffat&#8217;s claims that &#8220;the campaign had voting data from 91 percent of counties&#8221; &#8212; not that they is necessarily inaccurate, but that it could be largely irrelevant. As JohnE points out, there can be hundreds of precincts in a single county; beyond that, having voting data from a given county does not necessarily mean having actionable, timely, and sufficiently complete data throughout the day in order to make GOTV decisions for that county (or for a given precinct in that county).</p>
<p>There is still no evidence that there were significant Orca problems outside of Colorado; we&#8217;ll have to wait to see if someone on the inside of Orca development decides to leak. But here are some observations from an large-scale IT system development perspective.</p>
<blockquote><p>&#8220;A complex system that works is invariably found to have evolved from a simple system that works. . . . A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.&#8221;</p>
<p>&#8211; <em>Systemantics</em> (John Gall)
</p></blockquote>
<p>First, the Orca folks basically released version 1.0 (or, perhaps more accurately, version 0.9 or lower) into a massive, live environment on the single most critical day, Election Day. This is commonly known in IT circles as the &#8220;Big Bang&#8221; approach, and it is a well-known harbinger of disaster. Even if the Orca developers were all geniuses, this still would be a grave error. We&#8217;re not talking about an iOS or Android app being used by a single person on his/her device for entertainment or productivity; we&#8217;re talking about a massive web-based system that has to <em>accept data from</em> (not just deliver content to) possibly tens of thousands of users simultaneously and in real time. There should have been days, if not weeks, of live tests and trials to see how the system performed and to get the kinks worked out. Instead, as far as I can tell, the first time most Orca volunteers actually used (or tried to use) the system was on Election Day. Even if the system worked perfectly, I doubt that the majority of users &#8212; who had no real training on the system &#8212; would have used it in an effective manner. </p>
<blockquote><p>&#8220;There are products that you shouldn’t develop, companies you shouldn’t challenge, customers you shouldn’t win, markets you shouldn’t enter, recommendations from the board of directors you shouldn’t follow.&#8221;</p>
<p>&#8211; <em>The Art of &#8216;Ware</em> (Webster)
</p></blockquote>
<p>Beyond that &#8212; and as per the quote above (paraphrasing Sun Tzu), as well as the one at the start of this post &#8212; the real question is: should this have been attempted in the first place? There are anecdotal reports that the focus on Orca took away resources &#8212; especially feet-on-the-ground resources &#8212; for local GOTV efforts. And GOTV is exactly where the Republicans failed. If work on Orca had been started 3 or 4 years ago, and if it had been used on Election Day 2010 &#8212; both as a real-world test and to verify the expected benefits of matching actual voters with demographic information to predict results in a given precinct &#8212; then it might have been ready for prime time on Election Day 2012. </p>
<p>But to spend signficant time, money, and resources (including tying up some 30,000+ local volunteers) for an untested system and an untried concept was a recipe for disaster &#8212; a well-known recipe, I might add, for those of us who have studied large-scale IT projects (which, frankly, are prone to failure anyway). </p>
<p>&#8220;But,&#8221; you ask, &#8220;you signed up to volunteer.&#8221; Yes, I did. But I had no visibility into the project and no inherent reason in advance to assume that things weren&#8217;t being done well, beyond the few niggling questions I had prior to Election Day. And, to be perfectly fair, I have no evidence of the extent of problems beyond Colorado, aside from the acknowledged 90-minute downtime on Election Day morning. But, even if those are the only two failures, can you seriously argue that it was a success? A time-critical, mission-critical system whose entire purpose for existence is to be used in a single 12-hour window is down for over 10% of that time in all states and is down all day in one critical swing state? </p>
<p>And, finally, the bottom line: if the purpose of Orca was to provide real-time intelligence on actual voting trends and make GOTV more effective, then where are the results? By all accounts, the Romney campaigned was stunned by their loss; if Orca was providing accurate, real-time indication of voting, as the project directors claimed it would in the training calls (actual quote [from memory]: &#8220;We&#8217;ll know ahead of anyone else how the election is turning out.&#8221;), then Romney should have had his concession speech written well in advance. And if its goal was to trigger targeted GOTV efforts in swing states, then why did Romney lose almost every swing state? Measured by its stated goals, Orca was a failure, pure and simple. Worse yet, it may have diverted critical resources from more effective GOTV efforts. </p>
<blockquote><p>&#8220;Start out stupid and work up from there.&#8221;<br />
&#8211; Bruce Henderson
</p></blockquote>
<p>I&#8217;d love to be able to do a project post mortem on Orca, as I have done on so many troubled, failing, or failed projects. But even without access to people and documents, I can hazard a guess at some of the likely factors:</p>
<ul>
<li>A late start and an impossibly short schedule.</li>
<li>Because of these above, a waterfall (single pass) approach to design, development and deployment, instead of an iterative approach.</il>
<li>Lack of a single chief software architect, with resulting problems at subsystem interfaces.</li>
<li>A large development team with no prior track record developing and releasing software as a single team.</li>
<li> Along the same lines, key components divided up among separate teams with relatively late integration and testing.</li>
<li>And possibly some turnover (departure) of key personnel through the project, along with new personnel added late.</li>
<li>Insufficient resources (money, personnel, equipment, time) devoted to quality assurance &#8212; and by &#8220;quality assurance&#8221;, I mean not just a wide range of testing (including, as JohnE points out, stress testing), but also individuals and teams with proper expertise, agreed-upon standards and guidelines, reviews, metrics, defect management, and so on.</li>
<li>A firm belief &#8212; without any real-world evidence &#8212; that the idea would actually work and that the results would actually be worth the diversion of resources (including volunteers).</li>
</ul>
<p>I&#8217;m happy to talk with anyone from the project who wants to set me straight or explain what really happened. But, in the end, what really happened was that Orca failed to achieve its goals, and Romney lost what should have been a very winnable election.  ..bruce w..</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2012/11/10/weighing-in-on-project-orca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RISE: The Mythical Man-Month (Frederick P. Brooks, Jr., 1975/1995)</title>
		<link>http://bfwa.com/2012/06/04/rise-the-mythical-man-month-frederick-p-brooks-jr-19751995/</link>
		<comments>http://bfwa.com/2012/06/04/rise-the-mythical-man-month-frederick-p-brooks-jr-19751995/#comments</comments>
		<pubDate>Tue, 05 Jun 2012 00:01:41 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[IT Project Management]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[RISE]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=218</guid>
		<description><![CDATA[[The second in a series of posts on Readings in Software Engineering. Previous post: The Psychology of Computer Programming, Gerald M. Weinberg (1971/1998)] The Mythical Man-Month: Essays on Software Engineering, Frederick P. Brooks, Jr. Addison-Wesley Publishing Company, Reading, MA, 1975. Softbound, 195 pages. Personal acquisition date: unknown. Original edition out of print. The Mythical Man-Month: Essays [...]]]></description>
				<content:encoded><![CDATA[<p>[<em>The second in a 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>. <em>Previous post: <a href="http://bfwa.com/2012/05/21/rise-the-psychology-of-computer-programming-gerald-m-weinberg-19711998/"><strong>The Psychology of Computer Programming</strong>, Gerald M. Weinberg (1971/1998)</a></em>]</p>
<p><strong>The Mythical Man-Month: Essays on Software Engineering</strong>, Frederick P. Brooks, Jr. Addison-Wesley Publishing Company, Reading, MA, 1975. Softbound, 195 pages. Personal acquisition date: unknown. Original edition out of print.</p>
<p><a href="http://www.amazon.com/The-Mythical-Man-Month-Engineering-Anniversary/dp/0201835959/ref=sr_1_1?ie=UTF8&amp;qid=1338833806&amp;sr=8-1"><strong>The Mythical Man-Month: Essays on Software Engineering (Anniversary Edition)</strong></a>, Frederick P. Brooks, Jr. Addison-Wesley, Boston, MA, 1995. Softbound, 322 pages. Personal acquisition date: unknown (I&#8217;ve bought and given away several copies over the years). Available in <a href="http://www.amazon.com/The-Mythical-Man-Month-Engineering-ebook/dp/B000OZ0N6M/ref=tmm_kin_title_0?ie=UTF8&amp;m=AG56TWVU5XWC2&amp;qid=1338833806&amp;sr=8-1">Kindle edition</a> as well.</p>
<h2><strong>Seminal work; highest recommendation.<br />
</strong></h2>
<p>===========================</p>
<p>(<em>All quotes and citations are from the 1995 Anniversary edition, which contains the slightly-edited text and original page numbering of Brooks’s original book, followed by four new chapters: two additional essays, and two retrospectives on the original edition.)</em></p>
<p><em>The Mythical Man-Month</em> is probably the single best-known work in software engineering, as well it should be: it is a classic, in every sense of the word.</p>
<p>First of all, it is (for a thin volume) a remarkably comprehensive look at the practice of professional software engineering. Brooks&#8217;s essays cover a wide ranges of topics, with a particular focus on where things are likely to go wrong and what must be done to make things go right. For years, whenever I thought I had conceived some new issue or principle in software development, I would go back and look through Brooks and discover he had already noted it.</p>
<p>Second, it is highly accessible. Brooks&#8217;s style is clear, concise, and very readable. It is a book that anyone in a given organization should be able to read and understand. Furthermore, these are true essays: wonderfully written and downright lyric in places. One of my favorite passages is at the end of his discussion as to the &#8216;Joys of the Craft [of Programming]&#8216;:</p>
<blockquote><p>Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this very tractability has its own problems.)</p>
<p>Yet the program construct, unlike the poet&#8217;s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.&#8221; (pp. 7-8)</p></blockquote>
<p>Finally, it remains highly relevant for our day, perhaps sadly so. Much of my professional work deals with troubled or failed IT projects, and my analysis of their struggles &#8212; whether <em>in vivo</em> or <em>post mortem</em> &#8212; usually reveal the same core problems that Brooks warned us of nearly 40 years ago. It seems that in the software industry, we not only insist on re-inventing the wheel, we insist on re-inventing the flat tire. As I said in my look at <a href="http://bfwa.com/2012/05/21/rise-the-psychology-of-computer-programming-gerald-m-weinberg-19711998/"><strong>The Psychology of Computer Programming</strong></a>, billions of dollars wasted in failed IT projects could have been saved if those involved had read and heeded Brooks and Weinberg.</p>
<p><span id="more-218"></span></p>
<p>While Brooks is, in fact, mostly focusing on the development of what he calls <em>programming systems products</em> &#8212; in effect, writing commercial operating systems and related utilities &#8212; most of what he has to say applies to any large scale software development effort. Here, then, are some selected quotes from Brooks (all emphasis in the original):</p>
<blockquote><p><strong>The Woes of the [Programming] Craft</strong>. . . .<br />
First, one must perform perfectly. The computer resembles the magic of legend in this respect, too. If one character, on pause, of the incantation is not strictly in proper form, the magic doesn&#8217;t work. . . .</p>
<p>Second, other people set one&#8217;s objectives, provide one&#8217;s resources, and furnish one&#8217;s information. One rarely controls the circumstances of his work, or even its goal. . . .</p>
<p>The next woe is that designing grand concepts is fun; finding nitty little bugs is just work. . . .</p>
<p>Next, one finds that debugging has a linear convergence, or worse, where one somehow expects a quadratic sort of approach to the end. So testing drags on and on, the last difficult bugs taking more time to find than the first. . . .</p>
<p>The last woe, and sometimes the last straw, is that the product over which one has labored so long appears to be obsolete upon (or before) completion. (pp. 8-9, &#8220;The Tar Pit&#8221;)</p>
<p>The second fallacious thought mode is expressed in the very unit of effort used in estimating and scheduling: the man-month. Cost does indeed vary as the product of the number of men and the number of months. Progress does not. <em>Hence the man-month as a unit for measuring the size of a job is a dangerous and deceptive myth</em>. It implies that that men and months are interchangeable.</p>
<p>Men and months are interchangeable commodities only when a task can be partitioned among many workers with no communications among them. This is true of reaping wheat or picking cotton; it is not even approximately true of system programming. (p. 16, &#8220;The Mythical Man-Month&#8221;)</p>
<p>Oversimplifying outrageously, we state Brooks&#8217;s Law: <em>Adding manpower to a late project makes it later. </em> (p. 25, &#8220;The Mythical Man-Month&#8221;)</p>
<p>This, then, is the problem with the small, sharp team concept: <em>it is too slow for really big systems</em>. (p. 31, <em>The Surgical Team</em>)</p>
<p>I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas. . . .</p>
<p>Conceptual integrity in turn dictates that the design must proceed from one mind, or from a very small number of agreeing resonate minds. (pp, 42 &amp; 44, &#8220;Aristocracy, Democracy, and System Design&#8221;)</p>
<p>An architect&#8217;s first work is apt to be spare and clean. He knows he doesn&#8217;t know what he&#8217;s doing, so he does it carefully and with great restraint.</p>
<p>As he designs the first work, frill after frill and embellishment after embellishment occur to him. These get stored away to be used &#8220;next time.&#8221; Sooner or later, the first system is finished, and the architect, with firm confidence and a demonstrated mastery of that class of systems, is ready to build a second system.</p>
<p>This second is the most dangerous system a man ever designs. . . . The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one. (p. 55, &#8220;The Second-System Effect&#8221;)</p>
<p>The manual, or written specification, is a necessary tool, though not a sufficient one. The manual is the external specification of the product. It describes and prescribes every detail of what the user sees. As such, it is the chief product of the architect.</p>
<p>Round and round goes its preparation cycle, as feedback from users and implementers show where the design is awkward to use or build. For the sake of implementers it is important that the changes be quantized &#8212; that there be dated versions appearing on the schedule.</p>
<p>The manual must not only describe everything the user does see, including all interfaces; it must also refrain from describing what the user does not see. That is the implementer&#8217;s business, and there his design freedom must be unconstrained. The architect must always be prepared to show <em>an</em> implementation for any feature he describes, but he must not attempt to dictate <em>the</em> implementation. (p. 62, &#8220;Passing the Word&#8221;)</p>
<p>If there are <em>n</em> workers on a project, there are (<em>n</em><sup>2</sup>-<em>n</em>)/2 interfaces across which there may be communication, and there are potentially almost 2<sup><em>n</em></sup> teams within which communication much occur. The purpose of organization is to reduce the amount of communication and coordination necessary; hence organization is a radical attack on the communication problems treated above. (pp. 78-79, &#8220;Why Did The Tower of Babel Fail?&#8221;)</p>
<p>[Charles Portman] found his programming teams missing schedules by about one-half &#8212; each job was taking approximately twice as long as estimated. The estimates were very careful, done by experienced teams estimating man-hours for several hundred subtasks on a PERT chart. When the slippage pattern occurred, he asked them to keep careful daily logs of time usage. These showed that the estimating error could be entirely accounted for by the fact that his teams were only realizing 50 percent of the working week as actual programming and debugging time. Machine downtime, higher-priority short unrelated jobs, meetings, paperwork, company business, sickness, personal time, etc., accounted for the rest. In short, the estimates made an unrealistic assumption about the number of technical hours per man-year.&#8221; (pp 89-90, &#8220;Calling the Shot&#8221;)</p>
<p>Beyond craftsmanship lies invention, and it is here that lean, spare, fast programs are born. Almost always these are the result of strategic breakthrough rather than tactical cleverness. Sometimes the strategic breakthrough will be a new algorithm . . . Much more often, strategic breakthrough will come from redoing the representation of your data or table. This is where the heart of a program lies. Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won&#8217;t usually need your flowcharts; they&#8217;ll be obvious. (p. 102, &#8220;Ten Pounds in a Five-Pound Sack&#8221;)</p>
<p><strong>Why Have Formal Documents?</strong></p>
<p>First, the writing the decisions down is essential. Only when one writes do the gaps appear and the inconsistencies protrude. The act of writing turns out to require hundreds of mini-decisions, and it is the existence of these that distinguishes clear, exact policies from fuzzy ones.</p>
<p>Second, the documents will communicate the decisions to others. The manager will be continually amazed that policies he took for common knowledge are totally unknown by some member of his team. Since his fundamental job is to keep everybody going in the same direction, his chief daily task will be communication, not decision-making, and his documents will immensely lighten his load.</p>
<p>Finally, a manager&#8217;s documents give him a data base and a checklist. By reviewing them periodically, he sees where he is, and he sees what changes of emphasis or shifts in direction are needed. (p. 111, &#8220;The Documentary Hypothesis&#8221;)</p>
<p>The management question, therefore, is not <em>whether</em> to build a pilot system and throw it away. You <em>will</em> do that. The only question is whether to plan in advance to build a throwaway, or to promise to deliver the throwaway to customers. Seen this way, the answer is much clearer. Delivering that throwaway to customers buys time, but it does so only at the cost of agony for the user, distraction for the builders while they do the redesign, and a bad reputation for the product that the best redesign will find hard to live down.</p>
<p>Hence, <em>plan to throw one away; you will, anyhow</em>. (p. 116, &#8220;Plan to Throw One Away&#8221;)</p>
<p>The manager of a project, then, needs to establish a philosophy and set aside resources for the building of common [development] tools. At the same time, he must recognize the need for specialized tools, and not begrudge his working teams their own tool-building. This temptation is insidious. One feels that if all those scattered tool builders were gathered in to augment the common tool team, greater efficiency would result. But it is not so. (p. 128, &#8220;Sharp Tools&#8221;)</p>
<p>Testing the Specification. Long before any code exists, the specification must be handed to an outside testing group to be scrutinized for completeness and clarity. As [V. A.] Vyssotsky [of Bell Labs] says, the developers themselves cannot do this: &#8220;They won&#8217;t tell you they don&#8217;t understand it; they will happily invent their way through the gaps and obscurities.&#8221; (p. 142, &#8220;The Whole and the Parts&#8221;)</p>
<p>When one hears of disastrous schedule slippage in a project, he imagines that a series of major calamities must have befallen it. Usually, however, the disaster is due to termites, not tornadoes, and the schedule has slipped imperceptibly but inexorably. Indeed, major calamities are easier to handle; one responds with major force, radical reorganization, the invention of new approaches. The whole team rises to the occasion.</p>
<p>But the day-by-day slippage is harder to recognize, harder to prevent, harder to make up. Yesterday, a key man was sick, and a meeting couldn&#8217;t be held. Today the machines are all down, because lightning struck the building&#8217;s power transformer. Tomorrow the disk routines won&#8217;t start testing, because the first disk is a week late from the factory. Snow, jury duty, family problems, emergency meetings with customers, executive audits &#8212; the list goes on and on. Each one only postpones some activity by a half-day or a day. And the schedule slips, one day at a time. (p. 154, &#8220;Hatching a Catastrophe&#8221;)</p>
<p>The flow chart is a most thoroughly oversold piece of program documentation. Many programs don&#8217;t need flow charts at all; few programs need more than a one-page flow chart. (p. 167, &#8220;The Other Face&#8221;)</p>
<p>Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will be any &#8212; no inventions that will do for software productivity, reliability, and simplicity what electronics, transistors, and large-scale integration did for computer hardware. . . .</p>
<p><em>I believe that the hard part of building software to be the specification, design, and testing of the conceptual construct, not the labor of representing it and testing the fidelity of the representation</em>. We still make syntax errors, to be sure; but they are fuzz compared to the conceptual errors in most systems.</p>
<p>If this is true, building software will always be hard. There is inherently no silver bullet. (pp. 181-182, &#8220;No Silver Bullet&#8221;)</p>
<p>The biggest mistake in the &#8220;Build one to throw away&#8221; concept is that it implicitly assumes the classical sequential or waterfall model of software construction.&#8221; (p. 265, &#8220;<em>The Mythical Man-Month</em> after 20 Years&#8221;)</p>
<p>&#8220;I dismissed Parnas&#8217;s concept [of information hiding and encapsulation] as a &#8220;recipe for disaster&#8221; in Chapter 7. Parnas was right, and I was wrong. I am now convinced that information hiding, today often embodied in object-oriented programming, is the only way of raising the level of software design.&#8221; (p. 272, &#8220;<em>The Mythical Man-Month</em> after 20 Years&#8221;)</p>
<p>The &#8220;outrageously simplified&#8221; statement of Brooks&#8217;s Law is made more useful by these careful treatments [by other researchers] of the proper qualifications. On balance, I stand by the bald statement as the best zeroth-order approximation of truth, a rule of thumb to warn managers against blindly making the instinctive fix to a late project. (p. 275, &#8220;<em>The Mythical Man-Month</em> after 20 Years&#8221;)</p>
<p>The tar pit of software engineering will continue to be sticky for a long time to come. One can expect the human race to continue attempting systems just within or just beyond our reach; and software systems are perhaps the most intricate of man&#8217;s handiworks. This complex craft will demand our continual development of the discipline, our learning to compose in larger units, our best use of new tools, our best adaptation of proven engineering management methods, liberal application of common sense, and a God-given humility to recognize our fallibility and limitations. (p. 289, &#8220;<em>The Mythical Man-Month</em> after 20 Years&#8221;)</p></blockquote>
<p>As with Weinberg, some of Brooks&#8217;s discussions are dated technically&#8230;or, at least, appear to be. One entire essay, &#8220;Ten Pounds in a Five-Pound Sack&#8221;, is devoted to dealing with memory management and tradeoffs between memory usage, functionality, and speed. That would seem irrelevant in today&#8217;s world of multi-gigabyte RAM, much less having virtual memory management standard in just about every operating system. And yet we have watched the emergence of &#8216;bloatware&#8217; over the past few decades, where software keeps loading slower, running slower, and using more system resources, even as memory gets cheaper and processors get faster (or divide into multiple cores). What used to be craft is now institutionalized sloppiness.</p>
<p>If you are involved in software engineering and IT project management, there are many, many books you should read and be familiar with. But if you need to start somewhere, start here, and read this book. Read it a few times, in fact. The project &#8212; and the job &#8212; you save may be your own.  ..bruce..</p>
<h3>TABLE OF CONTENTS (adapted from the 1995 Anniversary Edition)</h3>
<p>Chapter 1: The Tar Pit<br />
Chapter 2: The Mythical Man-Month<br />
Chapter 3: The Surgical Team<br />
Chapter 4: Aristocracy, Democracy, and System Design<br />
Chapter 5: The Second-System Effect<br />
Chapter 6: Passing the Word<br />
Chapter 7: Why Did The Tower of Babel Fail?<br />
Chapter 8: Calling the Shot<br />
Chapter 9: Ten Pounds in a Five-Pound Sack<br />
Chapter 10: The Documentary Hypothesis<br />
Chapter 11: Plan to Throw One Away<br />
Chapter 12: Sharp Tools<br />
Chapter 13: The Whole and the Parts<br />
Chapter 14: Hatching a Catastrophe<br />
Chapter 15: The Other Face</p>
<p><em>(Added to the Anniversary Edition)</em></p>
<p>Chapter 16: No Silver Bullet &#8212; Essence and Accident<br />
Chapter 17: &#8220;No Silver Bullet&#8221; Refired<br />
Chapter 18: Propositions of <em>The Mythical Man-Month</em>: True or False?<br />
Chapter 19: <em>The Mythical Man-Month</em> after 20 Years</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2012/06/04/rise-the-mythical-man-month-frederick-p-brooks-jr-19751995/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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"] [Version 1.1 of this post, revised/extended on 05/22/2012] 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 [...]]]></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>[<em>Version 1.1 of this post, revised/extended on 05/22/2012</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>As per the table of contents given at the end of this post, Weinberg covered four major themes in his book: Programming as Human Performance; Programming as a Social Activity; Programming as an Individual Activity; and Programming Tools. As Weinberg himself points out (in his 1998 commentary on his 1971 work), he was really writing more about the anthropology of computer programming, rather than the psychology <em>per se</em>. The book is highly readable, largely because Weinberg has a conversational style of writing and fills the book with actual stories and anecdotes of observed behavior on programming projects.</p>
<p><span id="more-176"></span></p>
<p>Here is just a small sampling of the 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; as 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 are the aforementioned anecdotes. 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 &#8212; who was only 38 years old when this book came out &#8212; would go on to write &#8220;<a href="http://en.wikipedia.org/wiki/Gerald_Weinberg">more than 40 books and over 400 articles</a>&#8220;, and he is still going strong.</p>
<p>In short, Weinberg really was there first with an overarching view, set down in nearly 300 pages over 40 years ago, 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>1</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>A final note: I reserve the right to go back and substantially edit my RISE posts after the fact, particularly as I get several of these under my belt and start to settle in on a standard approach and format. Iterative writing, so to speak. ..bruce..</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>4</slash:comments>
		</item>
		<item>
		<title>So long, Steve, and Godspeed.</title>
		<link>http://bfwa.com/2011/10/05/so-long-steve-and-godspeed/</link>
		<comments>http://bfwa.com/2011/10/05/so-long-steve-and-godspeed/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 02:17:44 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Intellectual property]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=167</guid>
		<description><![CDATA[The second personal computer I ever owned[1] was an Apple II, with no floppy drive. I bought it, along with a small color TV, from my close friend Robert Trammel while we were both living in Houston sometime around 1980.We had already spent hours together programming on it, then carefully (though not always successfully) saving [...]]]></description>
				<content:encoded><![CDATA[<p>The second personal computer I ever owned[1] was an Apple II, with no floppy drive. I bought it, along with a small color TV, from my close friend Robert Trammel while we were both living in Houston sometime around 1980.We had already spent hours together programming on it, then carefully (though not always successfully) saving our programs out to cassette tape. After three months, I sold the computer and TV back to Robert &#8212; not because I didn&#8217;t like it, but because I was spending far too much time on it.</p>
<p>A few years later &#8212; in 1982 &#8212; my close friend Wayne Holder hired me into his nascent software company, Oasis Systems, in part to help with his existing and planned word processing utilities (The Word Plus, Punctuation + Style), but mostly to develop computer games. And we did, developing Sundog: Frozen Legacy on the Apple II, a game for which I still get e-mails (and which Wayne is even now working on resurrecting for modern platforms). In January 1984, a few months before Sundog shipped, we were invited by Guy Kawasaki to come up to Apple to see  a preview of the Mac and to talk about what software we could port to the Mac. Through my connections with computer stores in San Diego, I was able to get a personal loan of a Mac for a few days at home prior to the official announcement in Cupertino later that month, which Wayne and I attended as well. That was my first time seeing Steve Jobs in person, and it remains a memorable highlight of my professional life.</p>
<p>When the Mac shipped a few days later, I went down to the one computer store in San Diego that I knew would be getting machines from Apple. I took $3000 in cash with me and managed to convince the store owner &#8212; a friend &#8212; to let me have one of the three Macs he had to sell. Through a connection with Phil Lemmons &#8212; editor-in-chief at BYTE &#8212; I ended up writing the official BYTE review of the 128K Macintosh (August 1984 issue). By the end of 1984, I was writing full-time for BYTE, including on-going coverage of the Macintosh, particularly once my BYTE column started in mid-1985. After a few years of writing for BYTE, I switched to writing for Macworld magazine. Steve was now long-gone from Apple, and Apple was having some of its own problems going forward.</p>
<p>But in late 1987, I was contacted by Addison-Wesley. They were interested in having me write a book about Steve Jobs&#8217; new project at NeXT. Folks at NeXT had apparently suggested me to Addison-Wesley, probably due to my writing at BYTE and Macworld. I leapt at the opportunity, particularly since in coincided with our family moving from Utah to just outside Santa Cruz (where I would be doing technical writing for Borland on a consulting basis). Once there, I found myself invited to visit NeXT HQ on Deer Creek Road, sit in on meetings, and attend the 0.3 NeXTstep Dev Camp. And, yes, that meant getting actual face time with Steve Jobs as well &#8212; not a lot, but this was a man whose creations had been impacting my personal and professional life for over a decade at this point.</p>
<p>The writing of the book dragged out as I waited to get my hands on an actual NeXT cube, which finally happened (if I recall correctly) at the end of 1988 or early 1989. I wrote the first several drafts of the book on that NeXT cube itself. <a href="http://www.amazon.com/Next-Book-Bruce-F-Webster/dp/0201158515">The book</a> came out in the fall of 1989; it remains the single most successful book I&#8217;ve ever written, due to the intense interest in NeXT itself, more than any particular writing skills or technical insight on my part.</p>
<p>The following year, I found myself working with a world-class typographer (<a href="http://en.wikipedia.org/wiki/Mike_Parker_%28American_typographer%29">Mike Parker</a>) and graphic designer (<a href="http://www.jacobashercs.com/Victor.html">Vic Spindler</a>) to create a design-oriented desktop publishing system. I was doing all the software prototyping on my NeXT cube, and we made the decision to make the NeXT our first target platform. For five years &#8212; 1990 to 1995 &#8212; I served as chief architect and CTO at Pages Software Inc, where we developed Pages by Pages and then WebPages, while spending nearly two years just trying to raise venture funding. We closed on funding at the start of 1992 and shipped our first version of Pages in early 1994. We quickly sold all that we were going to in the all-too-small NeXTstep market. My frustrations at seeing larger firm try to leverage off of NeXT&#8217;s incredible innovations led to an op-ed piece in the November 1994 issue of BYTE, &#8220;<a href="http://www.skytel.co.cr/bsd/research/1994/11.htm">Whither NextStep?</a>&#8221; The day that issue came out was the last time that Steve Jobs and I spoke &#8212; he called me from the back of a car somewhere to ask me what the hell I was doing writing that. I said, telling the truth. Pages would close its door the next year, unable to secure additional funding to move its technology to Windows.</p>
<p>When Steve engineered his brilliant reverse takeover of Apple &#8212; getting Apple to buy NeXT for $400 million, then slowly moving himself into the CEO seat &#8212; I was not optimistic. I still had unconditional praise for the NextStep technology, but I was dubious about Steve&#8217;s ability to sell technology to markets and to compete with Microsoft.</p>
<p>Boy, was I wrong. I was not only wrong about his abilities at Apple, I was wrong in my BYTE article about NextStep being on a downward slope. NextStep, of course, was the foundation of Mac OS X, and Steve transformed Apple into the most-admired, most-imitated, and most-valuable company in the world. And I was tickled that, when Apple brought out its own word processor, it was named &#8220;Pages&#8221;. Steve had always liked that name when we were developing (and shipping) our own product years before; glad he was able to use it.</p>
<p>To quote John Perry Barlow over on FB, &#8220;The world is suddenly a less interesting place.&#8221;  ..bruce w..</p>
<p>[1] The first was an HP-67 card-reading programmable calculator.</p>
<p>[Cross-posted from <a href="http://andstillipersist.com/2011/10/so-long-steve-and-godspeed/">And Still I Persist</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2011/10/05/so-long-steve-and-godspeed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The need for e-discovery tools</title>
		<link>http://bfwa.com/2011/03/05/the-need-for-e-discovery-tools/</link>
		<comments>http://bfwa.com/2011/03/05/the-need-for-e-discovery-tools/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 16:09:53 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Lawsuits]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=163</guid>
		<description><![CDATA[John Markoff in the New York Times has a detailed article on the emergence of software tools to help in the analysis of electronic documents (and, one could easily presume, scanned and OCR&#8217;d physical documents) in litigation: Now, thanks to advances in artificial intelligence, “e-discovery” software can analyze documents in a fraction of the time [...]]]></description>
				<content:encoded><![CDATA[<p>John Markoff in the New York Times has a detailed article on the<a href="http://www.nytimes.com/2011/03/05/science/05legal.html?_r=1&amp;hp"> emergence of software tools to help in the analysis of electronic documents</a> (and, one could easily presume, scanned and OCR&#8217;d physical documents) in litigation:</p>
<blockquote><p>Now, thanks to advances in artificial  intelligence, “e-discovery” software can analyze documents in a fraction  of the time for a fraction of the cost. In January, for example, Blackstone Discovery of Palo Alto, Calif., helped analyze 1.5 million documents for less than $100,000.</p>
<p>Some programs go beyond just finding documents with relevant terms at  computer speeds. They can extract relevant concepts — like documents  relevant to social protest in the Middle East — even in the absence of  specific terms, and deduce patterns of behavior that would have eluded  lawyers examining millions of documents.</p>
<p>“From a legal staffing viewpoint, it means that a lot of people who used  to be allocated to conduct document review are no longer able to be  billed out,” said Bill Herr, who as a lawyer at a major chemical company  used to muster auditoriums of lawyers to read documents for weeks on  end. “People get bored, people get headaches. Computers don’t.”</p></blockquote>
<p>Since I work in litigation support myself and have to search and read documents &#8212; I&#8217;ve had individual cases with over a million pages of documents &#8212; I welcome such tools as these. Still, the overall theme in the article seems to be that humans will lose jobs due to these tools:</p>
<blockquote><p>Quantifying the employment impact of these new technologies is  difficult. Mike Lynch, the founder of Autonomy, is convinced that “legal  is a sector that will likely employ fewer, not more, people in the U.S.  in the future.” He estimated that the shift from manual document  discovery to e-discovery would lead to a manpower reduction in which one  lawyer would suffice for work that once required 500 and that the  newest generation of software, which can detect duplicates and find  clusters of important documents on a particular topic, could cut the  head count by another 50 percent.</p></blockquote>
<p>What the article does <em>not </em>address is the <a href="http://bandl.typepad.com/bandl/2010/04/most-ediscovery-costs-wasted-on-extraneous-information.html">enormous financial burden</a> that e-discovery has imposed on both parties in modern civil litigation (see also <a href="http://estorian.dcig.com/2009/06/the-cost-of-ediscovery-is-brin.html">here</a> and <a href="http://www.law.com/jsp/article.jsp?id=1202437930333&amp;slreturn=1&amp;hbxlogin=1">here</a>).</p>
<p>It used to be that each side would gather physical documents from files and storage boxes, review them for responsiveness, then produce them to the other side. Outside of large corporations, most parties would not have great volumes of such documents.</p>
<p>However, with the advent and pervasiveness of digital technology &#8212; computers, e-mail, servers, instant messaging, and so on &#8212; even a relatively small firm or organization can find itself with gigabytes, if not terabytes, of potentially relevant production. And, to avoid court sanctions, all of that has to be combed through and reviewed for responsiveness. Most organizations below a certain size just can&#8217;t afford to do that the old-fashioned way with &#8220;a platoon of lawyers and paralegals who [work] for months at high hourly rates&#8221;.</p>
<p>The article also does not address the existing document organization and search tools that are a bit less artificially intelligent &#8212; and a lot cheaper &#8212; than the tools he covers, but that still allow complex search terms to be set up. I make heavy use of <a href="http://www.dtsearch.com/">dtSearch</a> in most of the cases I work on (and can recommend it highly). I&#8217;ve also used such standard legal document management tools as Summation and Concordance.</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2011/03/05/the-need-for-e-discovery-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>But, wait! (More on SSDs and e-discovery)</title>
		<link>http://bfwa.com/2011/03/01/but-wait-more-on-ssds-and-e-discovery/</link>
		<comments>http://bfwa.com/2011/03/01/but-wait-more-on-ssds-and-e-discovery/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 18:23:08 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Lawsuits]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=161</guid>
		<description><![CDATA[OK, just last week I wrote a post on a report out of UCSD regarding difficulties in erasing data from solid-state disks (SSDs). But now out of Australia comes a somewhat contradictory report that some SSDs actually erase &#8216;slack&#8217; (unused) space themselves without any user or system intervention &#8212; and, furthermore, that they can do [...]]]></description>
				<content:encoded><![CDATA[<p>OK, just last week I wrote a post on a report out of UCSD regarding <a href="http://bfwa.com/2011/02/24/e-discovery-and-solid-state-drives-ssds/">difficulties in erasing data from solid-state disks</a> (SSDs). But now out of Australia comes a somewhat contradictory report that s<a href="http://news.techworld.com/security/3263093/ssd-fimware-destroys-digital-evidence-researchers-find/">ome SSDs actually erase &#8216;slack&#8217; (unused) space themselves without any user or system intervention</a> &#8212; and, furthermore, that they can do so even when disconnected from a computer and a &#8216;write blocker&#8217; installed:</p>
<blockquote><p>After conducting a series of experiments comparing a sample Corsair  64GB SSD with a conventional Hitachi 80GB  magnetic hard drive (HDD),  the team found a layer cake of data recovery problems caused by the  ‘garbage collection’ or purging algorithms used in SSDs to keep them at  peak performance.</p>
<p>After examining an SSD for traces of data after it had been quick  formatted, the team expected the purging routines to kick in around  30-60 minutes later, a process that must happen on SSDs before new data  can be written to those blocks. To their surprise, this happened in only  three minutes, after which only 1,064 out of 316,666 evidence files  were recoverable from the drive.</p>
<p>Going a stage further, they removed the drive from the PC and  connected a ‘write blocker’, a piece of hardware designed to isolate the  drive and stop any purging of its contents. Incredibly, after leaving  this attached for only 20 minutes, almost 19 percent of its files had  been wiped for good, a process the researchers put down the ability of  SSDs to initiate certain routines independent of a computer.</p>
<p>For comparison, on the equivalent hard drive all data was  recoverable, regardless of the time elapsed, as a forensic examiner  would expect</p>
<p>“Even in the absence of computer instructions, a modern solid-state  storage device can permanently destroy evidence to a quite remarkable  degree, during a short space of time, in a manner that a magnetic hard  drive would not,” the team concludes.</p>
<p>The results are concerning on a number of levels, forensic, legal and technical.</p></blockquote>
<p>Yeah, I&#8217;ll say, though I suspect most of the concerns are legal and forensic. Hat tip to <a href="http://hardware.slashdot.org/story/11/03/01/1740240/SSDs-Cause-Crisis-For-Digital-Forensics">Slashdot</a>.  ..bruce..</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2011/03/01/but-wait-more-on-ssds-and-e-discovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;The Information: A History, a Theory, a Flood &#8221; &#8212; a review by Freeman Dyson</title>
		<link>http://bfwa.com/2011/02/27/the-information-a-history-a-theory-a-flood-a-review-by-freeman-dyson/</link>
		<comments>http://bfwa.com/2011/02/27/the-information-a-history-a-theory-a-flood-a-review-by-freeman-dyson/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 01:11:33 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Surviving Complexity]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=157</guid>
		<description><![CDATA[Freeman Dyson and James Gleick are both authors always worth reading. In this case, Dyson has reviewed Gleick&#8217;s newest book in an essay titled &#8220;How We Know&#8221;. An excerpt: According to Gleick, the impact of information on human affairs came in three installments: first the history, the thousands of years during which people created and [...]]]></description>
				<content:encoded><![CDATA[<p>Freeman Dyson and James Gleick are both authors always worth reading. In this case, <a href="http://www.nybooks.com/articles/archives/2011/mar/10/how-we-know/"><strong>Dyson has reviewed Gleick&#8217;s newest book</strong></a> in an essay titled &#8220;How We Know&#8221;. An excerpt:</p>
<blockquote><p>According to Gleick, the impact of information on human affairs came in  three installments: first the history, the thousands of years during  which people created and exchanged information without the concept of  measuring it; second the theory, first formulated by Shannon; third the  flood, in which we now live. The flood began quietly. The event that  made the flood plainly visible occurred in 1965, when Gordon Moore  stated Moore’s Law. Moore was an electrical engineer, founder of the  Intel Corporation, a company that manufactured components for computers  and other electronic gadgets. His law said that the price of electronic  components would decrease and their numbers would increase by a factor  of two every eighteen months. This implied that the price would decrease  and the numbers would increase by a factor of a hundred every decade.  Moore’s prediction of continued growth has turned out to be  astonishingly accurate during the forty-five years since he announced  it. In these four and a half decades, the price has decreased and the  numbers have increased by a factor of a billion, nine powers of ten.  Nine powers of ten are enough to turn a trickle into a flood.</p></blockquote>
<p>I&#8217;ve lived through most of the information age (if we peg it at 1940 or so; I was born in 1953), and I&#8217;ve worked in information technology for almost 40 years (since 1974). I remember seeing a second megabyte of core memory that was being added to the IBM 360/65 on campus in the mid-1970s: it was the size of a giant shoebox, and it cost $250,000. Now the<a href="http://www.amazon.com/Crucial-240-pin-PC2-5300-memory-module/dp/B0006I1TRY/ref=sr_1_3?ie=UTF8&amp;qid=1298854730&amp;sr=8-3"> cost per megabyte for 1GB RAM SIMMs sold over Amazon is as low as $0.02</a>, and there&#8217;s 1,024 megabytes on that little stick. I have something approaching 15 <em>terabytes </em>of hard disk storage on the various computers in our house, and &#8212; as per Dyson&#8217;s review and Gleick&#8217;s book &#8212; my biggest challenge is keeping it organized and accessible. There&#8217;s a high level of redundancy, with numerous minor (or major) variations; at the same time, I fear that a disk failure will forever deprive me of files that I might someday want or need again, whether that&#8217;s tomorrow or ten years from now.</p>
<p>I&#8217;ll read the book when it comes out (I have a copy <a href="http://www.amazon.com/Information-History-Theory-Flood/dp/0375423729/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1298855409&amp;sr=8-1-catcorr">preordered from Amazon</a>); in the meantime, Dyson&#8217;s review is well worth reading.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2011/02/27/the-information-a-history-a-theory-a-flood-a-review-by-freeman-dyson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-discovery and solid-state drives (SSDs)</title>
		<link>http://bfwa.com/2011/02/24/e-discovery-and-solid-state-drives-ssds/</link>
		<comments>http://bfwa.com/2011/02/24/e-discovery-and-solid-state-drives-ssds/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 03:46:43 +0000</pubDate>
		<dc:creator>bfwebster</dc:creator>
				<category><![CDATA[Lawsuits]]></category>
		<category><![CDATA[Main]]></category>
		<category><![CDATA[Risk management]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bfwa.com/?p=154</guid>
		<description><![CDATA[E-discovery &#8212; the recovery, analysis, and production of evidence stored in digital form on various media &#8212; has become a major issue in litigation because of how much data simple devices can hold and the resulting duplication and multiplication of documents, files, and other digital types of evidence. Because of the risks and costs of [...]]]></description>
				<content:encoded><![CDATA[<p>E-discovery &#8212; the recovery, analysis, and production of evidence stored in digital form on various media &#8212; has become a major issue in litigation because of how much data simple devices can hold and the resulting duplication and multiplication of documents, files, and other digital types of evidence. Because of the risks and costs of e-discovery in litigation, many organizations have established written policies, often backed by automated tools, to erase and otherwise dispose of electronic files past a certain date or when no longer needed (absent pending relevant litigation, that is).</p>
<p>At the same time, classic rotating storage devices &#8212; such as platter-based hard disk drives &#8212; are slowly being supplemented and in some cases supplanted by solid-state media, that is, storage devices that have no moving parts at all. In particular, solid-state disks (SSDs) look and behave just like classic hard disk drives, but with usually faster response times and much lower chance of hardware failure. In particular, USB drives have become ubiquitous as a mechanism for moving files between unconnected computers, while laptops are starting to offer SSDs as the principal internal storage for both speed and weight improvements.</p>
<p>So far, so good. Except that out of the University of California at San Diego comes research that shows that in many cases, standard file- and disk-erasing techniques leave behind recoverable data when used on SSDs:</p>
<blockquote><p>At the <a href="http://nvsl.ucsd.edu/index.html">Non-volatile       Systems Laboratory</a> we have designed a procedure to bypass the  flash translation layer (FTL) on SSDs and directly access the 	  raw NAND flash chips to audit the success of any given sanitization  technique. Our results show that naïvely applying techniques designed  for sanitizing hard drives on SSDs, such as overwriting 	  and using built-in secure erase commands is unreliable and sometimes  results in all the data remaining intact. Furthermore, our results also  show that  	  sanitizing single files on an SSD is much more difficult than on a  traditional hard drive. We are working on designing new FTLs that  correct these issues and also exploit properties of flash memory to  maintain performance while sanitizing the flash drive.</p></blockquote>
<p>I imaging that word of this will quickly spread to companies that perform computer forensics (including recovery of data for storage devices). In the meantime, many organizations may continue to make us of USB drives and internal SSDs in laptops (and, eventually, desktops), and by so doing may leave themselves open to discovery of data that they thought purged in the course of normal, documented operations.</p>
]]></content:encoded>
			<wfw:commentRss>http://bfwa.com/2011/02/24/e-discovery-and-solid-state-drives-ssds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
