Book From Cool Tools – Rules for Debugging

Via Kevin Kelly’s Cool Tools mailing list come a recommendation for Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems by David J. Agans. I paste the summary from Kevin’s email below. If you’ve programmed for more than a few years you’ve probably worked them out for yourself but its probaby worth having them pinned above your desk so you can “grab the bar”.

The Rules – Suitable for Framing

  • Understand the system
  • Make it fail
  • Quit thinking and look
  • Divide and conquer
  • Change one thing at a time
  • Keep an audit trail
  • Check the plug
  • Get a fresh view
  • If you didn’t fix it, it ain’t fixed
  • Change One Thing at a Time

On nuclear-powered subs, there’s a brass bar in front of the control panel for the power plant. When status alarms begin to go off, the engineers are trained to grab the brass bar with both hands and hold on until they’ve looked at all the dials and indicators, and understand exactly what’s going on in the system. What this does is help them overcome the temptation to start “fixing” things, throwing switches and opening valves. These quick fixes confuse the automatic recovery systems, bury the original fault beneath an onslaught of new conditions, and may cause a real, major disasters. It’s more
effective to remember to do something (“Grab the bar!”) than to remember not to do something (“Don’t touch that dial!”)

So, grab the bar!

Understand the System
You need a working knowledge of what the system is supposed to do, how it’s designed, and, in some cases, why it was designed that way. If you don’t understand some part of the system, that always seems to be where the problem is. (This is not just Murphy’s Law; if you don’t understand it when you design it, you’re more likely to mess up.)

Make It Fail
So you can tell if you’ve fixed it. Once you think you’ve fixed the problem, having a surefire way to make it fail gives you a surefire test of whether you fixed it. If without the fix it fails 100 percent of the time when you do X, and with the fix it fails zero times when you do X, you know you’ve really fixed the bug.

If You Didn’t Fix It, It Ain’t Fixed
When you think you’ve fixed an engineering design, take the fix out. Make sure it’s broken again. Put the fix back in. Make sure it’s fixed again. Until you’ve cycled from fixed to broken and back to fixed again, changing only the intended fix, you haven’t proved that you fixed it.

Ask for help
There are at least three reasons to ask for help, not counting the desire to dump the whole problem into someone else’s lap: a fresh view, expertise, and experience. And people are usually willing to help because it gives them a chance to demonstrate how clever they are.

No matter what kind of help you bring in, when you describe the problem, keep one thing in mind: Report symptoms, not theories. The reason you went to someone else for fresh insight is that your theories aren’t getting you anywhere. If you go to someone fresh and lay a theory on her, you drag her right down into the same rut you’re in. At the same time, you’ve probably hidden some key details she needs to know, because your bias says they’re not important. So be firm about this. When you ask for help, describe what happened. Describe what you’ve seen. Describe conditions if you can. Make sure you tell her what’s intermittent and what isn’t. But don’t talk about what you think it the cause of the problem.

Though the terms are often interchanged, there’s a difference between debugging and troubleshooting, and there’s a difference between this debugging book and the hundreds of troubleshooting guides available today. Debugging usually means figuring out why a design doesn’t work as planned. Troubleshooting usually means figuring out what’s broken in a particular copy of a product when the product’s design is known to be good–there’s a deleted file, a broken wire, or a bad part. Software engineers debug; car mechanics troubleshoot. Car designers debug (in an ideal world). Doctors troubleshoot the human body–they never got a chance to debug it. (It took God one day to design, prototype, and release the product; talk about schedule pressure! I can we can forgive priority-two bugs like bunions and mail pattern baldness.)

The techniques in this book apply to both debugging and troubleshooting. These techniques don’t care how the program got in there; they just tell you how to find it. So they work whether the problem is a broken design or a broken part. Toubleshooting books, on the other hand, work only a broken part.

The world's first Patent Trolls go all Open Sourcey

I see Unisys are cuddling up to Redhat (nee JBoss). Shouldn’t somebody have bought the shameful shell of Unisys by now?

Maybe they were too embarassed, and who could blame them?

Should EI Invest Directly in Irish VC Companies?

Several newspapers report on the plan for the government to provide 200 million euro to directly fund Irish VC companies. Damien Mulley asks what entpreneurs think of the idea.

Well first of all lets look at it from Enterprise Ireland’s perspective. They divest themselves of significant sums of money each year through CORD, RTI and a host of other schemes. They also co-invest in venture backed initiatives and the Irish “big three” (Trinity, Act, Delta) are the guys they bump into time and time again. So its clear that somebody had the brainstorming idea of saving a huge amount of the tax payers money by directly investing in these companies and leaving them to it. I’m presuming that these funds will be invested under the standard terms as a VC limited partner.

So does this mean that EI will not be offering matching funds anymore? Or is this in addition to the joint investment model, which introduces the concept of double funding, something EI has shied away from in the past (every try to get an RTI grant while you’re receiving CORD money? not a chance buddy). What will happen to the Seed Capital Scheme? Nobody has answered these questions as yet.

Now saving the tax payers money is never a bad idea but its not really EI’s job. EI’s role is to foster the creation of export driven businesses that enable Ireland plc. to compete in a global market place. They have to be efficient for sure, but efficient at what? This gambit seens like a low cost way of disbursing funds rather than a way of adding value to the creation of strong businesses that can compete with the best in the world. Lets be clear, this is not a dig at the irish VC community, but with the best will in the world their job is to generate 10x returns for their limited partners. If that can be achieved by flogging the IP overseas and closing down the Irish arm of the business so be it. This is not exaclty congruent with EI’s goals.

At the the Recent InterTrade Ireland Private Equity Conference several themes emerged. The first is that VC investment and regional development are not well aligned. So don’t expect much of that 200m euros to land outside the pale. The second is that early stage investing will never be a marketing mediated activity. So nobody in the irish VC community is going to pay you 50-100k to develop your idea, investigate the market, learn about your customers etc. This is the gap that EI needs to fill with its 200m, not subsidising successful VCs with money over which it looses control the day after it is invested.

Never attribute to malice what can be accounted for by stupidity

Darren points out that Microsoft’s new ad-center doesn’t support Firefox (or I believe any browser other than IE). This is a patently stupid position and the immediate reaction is to look on it as a deliberate attempt to exclude Firefox and other browsers. However I believe the explanation is simpler and runs right to the very heart of Microsoft’s culture.

Most people in Microsoft drink the coolaid and are completely immersed in Microsoft culture. In their eyes Safari and Firefox users are marginal communities they don’t understand and could care less about. All their internal propaganda tells them that IE is the world’s most popular browser and also has the biggest market share. There complete technology stack is based on activeX controls and the the minute they start coding it takes a huge amount of energy to buck the status quo inside MIcrosoft and say we will work with the other browsers. They have time to market constraints just like the rest of us. So they take the path of least resistance, whack their site together with Visual Studio Web tools and hey presto, instant incompatiblity, straight out of the box.

It would take a message from Bill to change this but that ain’t about to happen, despite all Robert Scoble’s good works.

Just spotted this, looks like Robert agrees with me.

Detailed Maps of Europe

Google has launched detailed maps of Europe. Great to be able to zoom into the south coast of Spain or the Costa Brava.

Anybody got any idea how to get these maps to come up in English? My Spanish is good enough to negotiate Spain but I’m totally out of my depth with the German Maps.

Ouch – Truth hurts – Trevelyan on robotic mine clearance.

James Trevelyan writes cogently on why Robots are not an appropriate solution for landmine clearance. Readers will be aware of my previous post on this topic where I proposed a robotic solution. Well James well and truely sank my boat with his excellent analysis of why robots won’t work, then in the last paragraph he gives me renewed hope,

Sandia Laboratories and some other groups are working on highly sensitive chemical sniffers which could develop into devices to be carried by robots into unknown areas to see whether there are residual traces of explosive vapour. Dogs can also be used in this context – the MEDDS system used in South Africa for instance – see the US Army Website.

Here are some other relevant links from James’s website,

  • General overview on Demining research
  • Common myths about demining
  • An excellent paper on robotics in general with some significant detail on a robot that could successfully shear sheep

Skype – WIFI Phone

Netgear (via eHomeUpgrade) have today announced pre-order availability of a WIFI mobile. Retailing at $250 in the US and offering free mobile connectivity to the skype community when in WIFI range.

Once WIMAX takes off we can  expect similar devices to encompass this emerging technology (and as we know the devices will only get cheaper). Is it any wonder the mobile incumbents are scrambling to get into the broadband space.

Languages I've written at least one program in

Richard Rodgers punches a hole in Seth Godin's stats

Richard Rodgers splits valuable hairs with Seth Godin’s trite statement “In every profession….half the people are below the average”.

Nice Graph!