And The Number Of Thy Counting Shall Be Nine

I’ve always wondered why the snooze button on an alarm clock goes in nine minute intervals.  I was hoping for some psychological or physiological explanation (e.x. nine minutes was just “odd” enough that people wouldn’t get completely comfortable or something to that effect), but the real explanation is much more mundane.  It turns out that the first clock with a snooze button was a mechanical one and the gear configuration was such that they could either choose nine-plus minutes or ten-plus minutes (it wasn’t possible to make it exactly ten minutes).  They chose nine-plus because it was closer to ten minutes without going over.  When digital clocks came out it appears that the chip designers just copied the interval from the mechanical clocks, although with digital it was possible to make it precisely nine minutes.  And hence a standard was born.

If You’re Indispensible You Can’t Move

It always annoys me a bit when someone pops up with a question about some code I worked on five years ago and thinks I should remember the complete details of some method or function that I wrote.  Hell, I can barely remember what I did yesterday at times.

Of course I also make a convenient “authority” to cite when someone wants something that may not have been intended, since I’m no longer on that project.  The current project manager sent me a portion of an IM session with someone who claims I told them a particular thing would work (or that they told me that a certain thing was a requirement).  I suppose they didn’t realize that the current team would ask me about it.  Not that it helps anyone, since I don’t have any memory of it after all this time.

Let this be a lesson about why it’s a good idea to keep good requirements documents as well as project logs (or a “decisions” document).  This old project was one that grew “organically” out of some smaller application and it was never documented and the customer wasn’t interested in spending any money to create documentation.  That was also the reason that it was such a cast iron bitch getting myself out of it.  If you are the one who best understands the code and there isn’t any documentation, then they don’t want to let you move on to other work.  But after five years on the project they’d reached a point where it was all maintenance and I was going a bit nuts.  It took a full year after I requested a new assignment before I was allowed to move.  I moved to another project in January 2001 and it took until late 2002 before they were really self-sufficient (the really annoying part was that I had to give them the same lessons several times, usually after they claimed to have “lost” their notes from the previous “knowledge transfer” session). 

A Cold Day In Washington

I was trying to watch the FoxNews streaming feed from Washington, DC but it kept cutting out so I gave up a minute ago.  But from what I saw it looked pretty cold there.  The Marine Band was playing in the background while people filed in for the ceremony.  I kind of felt sorry for them having to perform in that kind of weather.  I’ve done that sort of thing and it’s not easy.  My biggest problem was cold hands.  It makes them stiff and you have to really work to keep them warm (I was a percussionist).

The other annoying fact of physics is that cold instruments go flat.  The seemed to be compensating pretty well so far (but I wonder how far those brass players have their slides pushed in).  I recall one performance when I was in college when I was in the pit where it was so cold that I had to stop playing the marimba because the band had collectively gone flat (it was probably about 15° outside).  At least I was able to detune the tympani to match the band (the advantage of a continuously tunable instrument).

Old Habits Die Hard

I thought that after more than a year working from home I’d eradicated the habit.  However, spending just half-a-day in the office yesterday has reawakened my almost automatic impulse to dial ‘9’ before phone numbers (which our PBX requires to get an outside line).  Unfortunately, doing this at home results in a screwed up call.

It’s amazing how such a small bit of reinforcement can cause an old habit to come back full force. 

Low Expectations

I generally have low expectations for my dealings with large companies.  In fact, I usually expect the worst.  This allows me to be pleasantly surprised if it doesn’t happen.

I’m now using Verizon Fios for my Internet service (15M/2M) and I’ve been very pleased with it (there has only been one outage and that was caused by a technician who accidentally unplugged my connection while hooking up another one; the helpdesk got it corrected within an hour).  In fact, I unplugged the cable modem the day they installed Fios and never plugged it back in.

So it was with a bit of trepidation that I phoned Charter a few months ago to cancel my Internet service with them.  I had already experienced problems with their billing system trying to charge me rent for a modem that I owned.  While they eventually corrected it, I suspected that this would cause a problem during the cancellation of service.  And I was not to be disappointed in that respect, since my next bill arrived with a charge of $45.00 for “unreturned equipment/cable modem.”  I called them the same day and they removed the charge.  All was well for the next bill.  But this last bill came marked “past due” and the $45.00 charge had returned with the addition of an extra $3.25 late fee (although there were no details given, it just appeared as the “outstanding balance”).  As I was sitting here this morning summoning the wherewithal to call them again, they called me.  At first I was a bit ticked, since it was an automated message that informed me to call customer service about “an important issue with your account.”  But the message allowed me to press ‘9’ to connect to a rep, so I went ahead and did it.

I guess I’m not sure how I feel about this whole thing.  The reps have all been very polite and nice about trying to fix the problem.  I’m just a bit frustrated that it won’t stay fixed.  Verizon is in the process of getting a franchise agreement with the city of Keller and if Charter keeps screwing things up it will be pretty tempting to switch.  I’ve already got the Verizon equipment installed and it would just require them hooking up to the coax on the outside of the house.  There might be a few equipment switching pains (e.x. getting the Tivo to control their digital cable box as well as getting their guide data), but overall it seems fairly simple to switch.

The Keller city council was supposed to vote on the agreement last night, although I haven’t seen anything in today’s paper indicating the outcome.  Given how eager they’ve been to get Fios in the city I’d hope that the agreement would happen pretty quickly.  However, this council seems arbitrary and capricious to me at times, so there’s no telling how it turned out.

Web Frustration

One thing that will turn me off to a website almost instantly is when that website attempts to drive you into a local store to get basic information.  The other is a website that forces you to submit some sort of contact form to get info, which I almost never do.  But I don’t want to get into that right now as I’m concerned with the first case.  In my searches for home organization “stuff” I’ve tried to use the websites for both Home Depot and Lowe’s, with little success.

Home Depot’s site only seems to show items that they sell online.  For other items they force you to go into their stores just to get information.  I can understand that they wouldn’t want to sell certain items online, but they could at least give information on their products online so I can do some basic research and generate ideas.  By refusing to put their full product line online they effectively remove their site from consideration for me when I’m trying to come up with a solution, since I never know when a search of the site will turn up a useful item or a message telling me to go to the store.  Worse still is that items that they do carry online don’t seem to be in the stores.  I looked on their site to get an idea of the types of shelving hardware they carried.  I used the items I found to create a list which I took to the store.  But when I got to the store I couldn’t find that brand of hardware anywhere.  Fortunately they had almost equivalent items from Rubbermaid (wall standards, shelf brackets, and shelving).  But in the end, their website wasn’t even useful for my visit to the store.  I had to revise my plan in my head to fit the available items which weren’t on their site.  Finally, their site has some kind of bug with regards to item links.  If you’re browsing a category page and want to open an individual item’s page in a separate window you will instead get the category page again in the second window.  I tend to browse like this so I can examine an item without losing my place on the original page.  Because of this bug I have to wait for the (slow) category page to load in the second window and then wait again while the (slow) item page loads. 

As for Lowe’s, they are somewhat better, but only marginally.  They demand your ZIP code as soon as you start looking at items to determine if the items are available at the nearest store.  But I ran into an infuriating situation where when I clicked an item it informed me that it wasn’t available in the nearest store and my choices were to search again or continue browsing.  I interpreted the “continue” option to mean that I could see the item anyway, but selecting it returned me to the home page.  Frankly, that’s a crappy thing to do and it kind of ticked me off, since it interrupted my flow. 

In general a website should provide as much information as possible about the company’s available products.  The marketers may want to drive local store visits and revenue but this desire should never get in the way of the customer obtaining information.  Trying to make the customer fit into the company’s mold of how business should work will only annoy the customer and potentially drive that customer to look at a competitor. 

I kind of prefer Lowe’s over Home Depot, at least in that their stores seem to be a little nicer.  However, whichever of them that would allow me to browse their product line without hassling me about going to the store to get information would get more of my business.  If they want to drive store visits they can put messages on the product descriptions about store availability as long as they don’t prevent browsing the item based on that.  As an example, Radio Shack’s website is good about this.  It will show you the availability of an item both online and at your three closest stores.

Rambling Obsession

The cleanup I mentioned in the previous posting has extended itself far beyond its original scope.  I went back into that closet and pulled out four more boxes, three of which had old software in the original boxes.  It took up a lot of space so I took the manuals and CDs I wanted to keep out of the boxes and threw the rest away.  I also threw out even more obsolete computer junk as well as a bunch of catalogs and magazines that had piled up.  In all I put out seven big trash bags of junk and I’ve got a bunch of old phone books to put out Friday when the recycling truck comes by (it doesn’t help that at least three competing companies cover this area, all of whom leave monster phone books on my door; it seems really wasteful as I hardly ever use a phone book anymore, instead using online search tools to find phone numbers).

It really pained me to throw out some of that software, since I spent so much on it.  For example I had four obsolete copies of SuSE Linux Professional Edition (6.1, 7.1, 8.0, and 8.1; the current version is 9.2), each of which cost approximately $70.00 when new.  Unfortunately, this kind of software gets stale really quickly because of security updates and other changes, so it really wouldn’t do me much good to install an older version since it would be so far behind (especially in terms of security updates). 

Then on Monday I went crazy in my office and pulled out a large table I’d been using for a computer desk as well as a large bookshelf.  I mounted some shelves on the wall to store a lot of the stuff from the bookshelf and rearranged the remaining furniture, which opened up a lot of space.  Unfortunately, all this activity has aggravated my back, which started giving me trouble just after Christmas. 

Now that I’ve got some space I’m looking into creating some sort of workbench/workcenter.  At present I’ve been working on computers at the dining table, which is annoying for several reasons (not the optimum height, have to string a long ethernet cable to connect it, have to drag all the peripherals in there for testing) not to mention messy.  I’ve also been cleaning my guns in the living room on the coffee table, which is very bad ergonomically (and makes my back problems worse).

I haven’t seen anything that I really like so far, so I’ve been considering custom building something (I have some rudimentary woodworking skills, but this would be something of a stretch for me).

This whole organization kick is turning into an obesssion of sorts.  Between it and work it’s been taking up all my time.  I just hope my back can hold out.

Ack.  As soon as I came up with the title to this post that damn Animotion song started playing in my head.  Crap.  Now it’s going to be there all day.

Boobie Prize

Over the weekend I decided to clean out the guest room closet.  It was the place where I dumped a bunch of stuff that I wasn’t sure what to do with when I moved.  It was a case of out-of-sight, out-of-mind.  It’s also where I keep all my suitcases and extra gun cases as well as the vacuum cleaner.  So every time I wanted to get to some of those items I was confronted with the pile-o-crap in there.

One of the things I kept in there was a stack of old computers and cases.  There were two whole computers, one empty case, and one partial computer (an old K6-2 450 missing a hard drive).  I pulled all of these out and it made quite a difference in the amount of useable space.  Since I didn’t really have a use for them, and they were pretty old I decided to pull out any useful parts and ditch what was left.

I’m not sure what I’m going to do with these parts, but here’s the haul:

  • Three PCI video cards (two TGUI9660’s and one unknown 3Dfx card)
  • Two modems (one ISA)
  • Three LNE100TX 10/100 Ethernet cards (PCI)
  • A SoundBlaster 32PNP (ISA)
  • Three hard drives (2.5 GB, 4.0 GB, and 1.6GB)
  • Two ATX 2.0 300 watt power supplies (Antec and PC Power & Cooling)
  • Three CD-ROM drives (24X to 48X)
  • An ASUS P5A with a K6-2 450 and 128MB of RAM
  • One full tower Inwin case (sans power supply)

Most of it isn’t very useful, but I just couldn’t bring myself to throw it out.  The hard drives I kept because I didn’t want any of the data to get out and I didn’t feel like messing with them to wipe the drives.  I suppose I could throw these parts together and make a system that could be used for web browsing and email (and probably put Linux on it, since it seems to work better with underpowered hardware than Windows, not to mention it’s a lot cheaper).  But I don’t have a need for such a system.

Anyhow, I put the two old computers and one empty case out on the street at 6:15am.  By 7:45am when I went out again both of the semi-whole computers were gone and the side of the empty case was off.  Obviously whomever took the other two decided that a completely bare case wasn’t worth messing with.

The two old computers were a Cyrix 133 (P5 equivalent) and a Pentium MMX 200, circa 1996.  So I suspect the person who took them won’t be getting quite the prize he or she expected.  Not to mention that I stripped them such that only the power supply, motherboard, processor, and memory were left.

Your Tax Dollars At Work

It seems that the FBI is going to throw out a $170 million software system and start over.

A new FBI (news – web sites) computer program designed to help agents share information to ward off terrorist attacks may have to be scrapped, the agency has concluded, forcing a further delay in a four-year, half-billion-dollar overhaul of its antiquated computer system.

The bureau is so convinced that the software, known as Virtual Case File, will not work as planned that it has taken steps to begin soliciting proposals from outside contractors for new software, officials said.

A prototype of the Virtual Case File was delivered to the FBI last month by Science Applications International Corp. of San Diego. But bureau officials consider it inadequate and already outdated, and are using it mainly on a trial basis to glean information from users that will be incorporated in a new design.

Science Applications has received about $170 million from the FBI for its work on the project. Sources said about $100 million of that would be essentially lost if the FBI were to scrap the software.

As someone who works in the field of building software systems, I can speculate a little about the possible reasons for this problem.  One common failing we see in the computer industry is that the software as delivered is not accepted by the customer.  Usually, this comes down to a fundamental misunderstanding of the requirements, either by the designers or sometimes by the customer (that’s not as weird as it sounds, more later on this) and a failure to properly involve stakeholders in design and development.  Further, the fact that they had to spend $170 million to get the system and only then find it isn’t suitable suggests they’re using a waterfall software development model, which while a fairly standard practice (especially in government), is especially prone to this type of failure, since the customer doesn’t really get to see anything until very late in the process (e.x. at system test or even at the user acceptance test stage).

I mentioned above that sometimes systems fail because the customer didn’t understand the requirements.  Some people are probably wondering how this is possible.  What often happens is that a customer sees a “pain point” in their current way of doing things and wants to “fix” it.  Often, you’ll also get conflicting viewpoints on this from different elements within the customer’s organization.  The job of a good designer is to ask questions and ferret out the real core requirements from the customer and get buy-in from all of the stakeholders.  The other side of this coin is the gung-ho, get-it-done-now type of customer who sets requirements that are really too low (i.e. what hardware or software to use, even if it doesn’t really fit the solution) and the designers don’t go back up the chain to find the real system requirements.  It can be difficult to get this kind of customer to reveal their true requirements, since asking questions is seen as either a challenge or a waste of time (e.x. Why aren’t you doing something productive?).  There is also a third problem in some organizations, where requirements are funneled through another group, so the primary stakeholders are not directly involved in requirements reviews between the designers and the customer.  Frequently, these third parties “filter” the requirements based on their own organizational biases so that the real requirements may or may not make it to the designer.

This is the area where I work—I have to understand the customer’s requirements and turn them into a system design.  This is a huge area of work in academia and is of great concern to all IT organizations.  I’ve had some training in the Systems Engineering and Architecture methodology from the SDOE Program offered through the Stevens Institute of Technology (specifically, the 625 and 650 courses).  My employer paid for this training because they’re trying to bring some order to the process of software development and I’ve found that while a bit tedious at first it offers some advantages.  Primarily, the proper management of requirements, while it takes longer up front, is shown to reduce the overall cost of the project as well as reducing defects and their associated costs.  A defect in requirements that is caught during a requirements review may only cost a few hours to fix, whereas a defect that makes it to the system test stage could cost hundreds or thousands of hours to fix (and programming time isn’t cheap), with corresponding delays in schedule as well as reduced customer satisfaction.  The goal of SE&A is to design the system the customer wants and be able to prove it when done (i.e. be able to show objectively that the requirements were met, rather than arguing over what the system is supposed to have done at the end).

While I don’t know what methodology the FBI and SAIC used, I would expect that for this level of failure to occur, the requirements were either not properly documented or understood or they were wrong to begin with and no one questioned them.  If the requirements changed during development (9/11?), then if they were using this type of process they could have evaluated the change in requirements and determined fairly quickly how they would ripple through the system as well as the impact in cost (SE&A promotes traceability of requirements from business/stakeholder needs to System Requirements down to components, so a change to the business requirements immediately tells you which components are likely to be affected). 

The waterfall method I mentioned above is simply one where you do requirements analysis, design, coding, testing, and delivery in that order and it’s all preplanned and laid out at the beginning.  Each step has to finish before the next one starts and the customer doesn’t see anything until testing or delivery.  If there is any doubt about requirements, this type of method is likely doomed to failure or will require heroic efforts on the part of the development team to save, since any misunderstandings can’t be fixed until afterwards and only with great effort and cost.

Since we saw such a spectacular failure with this project, perhaps the FBI should consider an iterative approach.  In this approach, once the requirements are analyzed and agreed to by the stakeholders, design and coding begins on some core part of the system and it is presented to the customer as a prototype.  The customer evaluates the prototype and any feedback is incorporated into the next iteration, which adds some new features as well.  This process repeats as needed until the system is complete. 

In addition to the iterative approach, they should also consider involving the real stakeholders in the requirements gathering and review process.  This includes real, live field agents in addition to their chain of command and the IT staff.  Everyone who touches the system in their jobs must be considered and there is no better way to do that than to actually talk to them.  This may be difficult in the government procurement arena, where these things are typically sent out as requests for bids with the requirements predetermined by some government functionary.  But if the FBI could break through this type of mentality, they may have a chance of delivering a system that actually works.

Link via Slashdot.

The Money Behind The Problem

If you think spyware is simply the product of some maladjusted geeks in a basement somewhere, you’d be wrong.  It turns out that there is quite a bit of venture capital involved.  The four biggest spyware/malware offenders have a total of $139 million in venture capital investments.

Link via Slashdot.