• Categories

  • Archives

  • Recent Posts

HR 3200 from a systems design perspective (Part II)

In the first part of this three-part series, I briefly outlined the parallels between developing software and crafting legislation, while pointing out the great risks and issues in the latter. I also indicated what I felt were some of the general structural flaws  in HR 3200, the House bill on health care reform — not criticizing any actual proposals, but rather highlighting some of the design and implementation problems that make it hard to understand HR 3200 and even harder to predict its consequences.

Here in Part II, I’ll talk about some of the well-established maxims and heuristics of complex systems development, and how they apply to legislation in general and to HR 3200 in particular. (More after the jump.)

Read the rest »

HR 3200 from a systems design perspective (Part I)

[Welcome Slashdotters -- feel free to leave comments here or there. But no debates on health care reform or what HR 3200 does or does not do, please -- just on the concept itself.]

[Part II is now up.]

On the occasions where I have reviewed the actual text of major legislation, I have been struck by the parallels between legislation and software, particularly in terms of the pitfalls and issues with architecture, design, implementation, testing, and deployment. Some of the tradeoffs are even the same, such as trading off the risk of “analysis paralysis” (never moving beyond the research and analysis phase) and the risks of unintended consequences from rushing ill-formed software into production. Yet another similarity is that both software and legislation tend to leverage off of, interact with, call upon, extend, and/or replace existing software and legislation.  Finally, the more complex a given system or piece of legislation is, the less likely that it will achieve the original intent.

But there are some critical differences that make legislation design both harder and higher-risk than systems design. (More after the jump.)

Read the rest »

Book review: “Why New Systems Fail”

My review of Why New Systems Fail by Phil Simon is now up on Slashdot. Here’s the opening paragraph:

Over the last forty years, a small set of classic works on risks and pitfalls in software engineering and IT project management have been published and remained in print. The authors are well known, or should be: Gerry Weinberg, Fred Brooks, Ed Yourdon, Capers Jones, Stephen Flowers, Robert Glass, Tom DeMarco, Tim Lister, Steve McConnell, Steve Maguire, and so on. These books all focus largely on projects where actual software development is going on. A new book by Phil Simon, Why New Systems Fail, is likewise a risks-and-pitfalls book, but Simon covers largely uncharted territory for the genre: selection and implementation of enterprise-level, customizable, off-the-shelf (COTS) software packages, such as accounting systems, human resource systems, and enterprise resource planning (ERP) software. As such, Simon’s book is not only useful, it is important.

Go read the whole thing. ..bruce..

Techno-blindness

A few decades back, when handheld electronic calculators were still pretty neat, someone did a study on the authority people gave to them. As I recall, those conducting the study built some normal-looking calculators that were designed with specific errors in the calculation circuits such that in certain cases the calculators would give wrong answers. The studies in the subject were asked to perform a specific set of arithmetic calculations using these calculators. For some of these calculations, the doctored calculators were certain to give the wrong answer. They were then asked to check the answers by hand and give what they felt was the correct answer.

A large percentage of the subjects — when given a wrong answer by the calculator — would get the right answer when they carried out their calculations by hand. But most of them would assume that they had made a mistake in their manual calculations and that the calculator was correct, and so put down the wrong answer. These individuals couldn’t conceive that that the calculator was giving a wrong answer, and so they would doubt their own by-hand calculations.

Nice story, but old. Why am I telling this? I had a nearly identical experience yesterday, except it didn’t involve a calculator — it involved a GPS unit.

For the last four years, I have lived about 25 miles southeast of downtown Denver. During that period I have driven to and from Wyoming — north of us — multiple times, via the I-25 freeway, so I have a general sense of what lies between Denver and Cheyenne. On the other hand, it’s been probably at least a year since I’ve made that drive, so it’s not exactly fresh in my mind.

Yesterday, I had to drive to Ft. Collins, which is between Denver and Cheyenne (WY), to testify at a trial. I had it pretty fixed in my mind that the trip to Ft. Collins would take about 90 to 105 minutes. I was supposed to be there by 2:30 pm, so I planned on leaving around 12:30 pm, giving myself some slack. Around noon, I got a call from my client’s lawyer, asking if I could be there by 2:00 pm instead. I told him I thought I could make it by then, got things pulled together, and got into the car. I punched the courthouse address into our GPS system — a Magellan Maestro 4250 — asked it to plot my route (“fastest time”), and drove off.

A few miles into my drive, I noticed that the GPS unit showed an arrival time of 2:20 pm. That seemed a bit long to me, and I remembered that I had changed the time zone on the GPS system during my recent three-week trip to California. So I popped the GPS out of its cradle, worked the menus to set the time zone back to Mountain Time, backed out to the map display, and stuck it in its cradle again.

And panicked: the arrival time was now 3:20 pm (which I should have already known, since I was changing from Pacific to Mountain time). I was going to be over an hour late. I might not even be allowed to testify; I was scheduled to be the last witness before my client’s lawyer rested my client’s case. At the best, I was looking at a scolding from the judge and a negative impression on the jury.

Now, with this GPS unit, I’ve occasionally had circumstances where the time-to-destination estimate shifts abruptly, but never by more than a modest number of minutes. I was going a back route, and I thought that the GPS might re-adjust the time estimate when I got onto the E-470 toll road, heading north.

It didn’t. I had picked up a few minutes — the estimated time of arrival was now 3:18 pm — but that bought me very little. While driving at a, uh, vigorous rate of speed on E-470, I canceled the route to the courthouse, then called it up again (on ‘Previous Destinations’) to ensure that I was actually going to LaPorte Road in Fort Collins, Colorado. I was. I selected that destination again, asked the GPS to calculate the route — and again got an arrival time of 3:18 pm or so.

I was dumbfounded. I had been certain that Ft. Collins was an hour and a half, maybe 1:45, from my house, and the GPS system was telling me that it was actually close to three hours. Given how long it had been since my last trip up I-25, I now wondered if I was simply misremembering. I punched the map ‘zoom out’ button repeatedly to ensure that I was going to Ft. Collins. Sure enough — the map showed my course up E-470 to I-25 and then to a point about halfway to the Wyoming border: Ft. Collins.

I was now even more confused. While I was still at home, I had called up Google Maps and plotted a course from my house to the courthouse, and I was sure that it had told me that my driving time was 1:49. But now I was wondering if I had misread the Google Maps page, and it was actually telling me that the distance was 149 miles.

I continued my rapid drive up E-470, hoping against hope that the estimated time of arrival would magically drop an hour or more at some point. It didn’t. Finally, a few miles from the turnoff to I-25 North, I bit the bullet and called the lawyer (via the client’s cell phone) to give him the bad news: that I wouldn’t be there until 3:10 or so (I had picked up a few minutes, though not nearly as many as I had hoped). He was professional on the phone, but I know he felt blindsided — how could I be so stupid (and unprofessional) as to not leave in time to arrive on time? We hung up, and I continued the rapid pace.

I transferred onto I-25 North and saw that my next turnoff was 80 miles away. I wondered for the nth time how I could have been so wrong about the distance to Ft. Collins. Then something bubbled up through my brain: if the Ft. Collins turnoff was only 80 miles away, that meant that I would get off of I-25 around 2:15 pm — it surely wouldn’t take another 45 minutes to get to the courthouse, would it? I tried to think back to the Google map and wondered if Ft. Collins was a really, really long town; if I had to drive another 20 to 30 miles once I was off the freeway. I looked more carefully at my next exit, the one 80 miles away.

It was in Cheyenne, Wyoming. And I felt hope for about the first time in 45 minutes.

I canceled the route to the courthouse and punched in a new route to Ft. Collins, picking the first street name and number I could punch up. I pressed ‘fastest time’ (the same control I had punched both times for the courthouse) — and got an arrival time of 1:55 pm, well over an hour sooner than the GPS had given for the courthouse. I called up the courthouse address again (from ‘previous destinations’), asked as before for the fastest time — and got an arrival time of 1:56 pm. About that time, I passed a freeway sign indication that Ft. Collins was 37 miles away, so I knew I had the right time this time. I quickly called the lawyer back (actually the client, on his cell phone) and let him know that I would indeed be there by 2:00 pm.

And I was. I testified, left the courthouse, and headed back home at a much more leisurely pace, stopping in Longmont to have dinner with my daughter and grandsons.

This was a genuine bug in the GPS unit that I encountered. All three route calculations to the courthouse used the same address and the same preferences (fastest time), yet the first two times, the GPS was somehow routing me through Cheyenne, Wyoming. Furthermore, when I had zoomed out the map, it did not show me going up to Cheyenne and back; it clearly showed me going only partway to the Wyoming border and then getting off the freeway.

That said, I did exactly what those people in the calculator study did: I trusted the GPS more than my own experience (and more than my recollection of what Google Maps had said). What’s more, I had a set of local and regional atlases in the storage pouch behind the passenger seat; it would have taken me maybe 60 seconds to pull over to the side of the road, pull out an atlas, and verify just how far it was to Ft. Collins. But instead of doing that, I panicked, drove fast, and assumed that the GPS was correct, particularly when I got the same arrival time result the second time.

There was one more point of confusion in all this that likewise could have cleared things up sooner.  When I called the lawyer the first time, to give him the bad news, he asked where I was. I told him that I was on 470, approaching I-25. E-470 is the toll portion of the 470 beltway that goes about 3/4ths of the way around the Denver metropolitan area. I-25, which runs north-south, crosses 470 twice once north of Denver and again south of Denver. When I told the lawyer how late I was going to be and where I was, he likely assumed that I was at the southern intersection of I-25 and 470, which would put me about 80 miles from Ft. Collins and having to drive right through Denver (heavy traffic, lower speed limits) to get there. Instead, I was about 45 miles and outside of the Denver metropolis, with light traffic and a 75 MPH speed limit.

I’ve had this GPS unit for at least two years. As noted, I’ve had a few glitches in time and route calculation, but never anything of this magnitude. So I let what the machine was telling me override my own experience and knowledge. It is an error in judgment all too frequent when information technology is involved.

Food for thought.  ..bruce..

Fireflies, conveyor belts, and landfills

My newest Baseline column is up, and in it, I talk about technology lifecycles that can cause you grief:

Go read the whole thing.  ..bruce..