Talk About Quality

Tom Harris

Posts Tagged ‘carpentry

Don’t Watch Your Fingers

leave a comment »

When I talk about tools for coding, some people ask,

“How can we be free when the environment is computer-controlled?”

It’s all about the right metaphor. One of mine is woodworking.

“By definition, a jig guides your tool and a fixture guides your work.”

Thus begins Jim Stack in The Best Jigs and Fixtures for Your Workshop. And he claims the 30 best in his book. But here’s a similar example from another source, to give you the idea.

Self-Squaring Picture Frame Jig

There’s no improving on the authors’ explanation:

“If you’ve ever built a picture frame you’ve experienced the frustration of trying to get all of the parts to fit perfectly. While trying to “dry-fit” and clamp the frame’s pieces together the parts often fit perfectly. But add glue, and a little clamp pressure, and the parts begin to slide apart. It can be a frustrating race against the clock to even things out before the glue begins to set.

(By the way, by Stack’s definition, this example is really a fixture, not a jig.)

If you’ve ever tried framing a picture, you may know what they’re talking about.

Equally well if you’ve ever raced to get your program to compile and run before you go home.

Yes, that picture frame looks pretty tightly constrained. But it’s not limiting my creativity as a carpenter.  It’s just holding the pieces in alignment so they don’t all fall apart. I don’t find myself thinking creatively when I have glue all over my fingers and wood stuck to the carpet.

Your tools include the IDE and the compiler. Your work is, clearly, the code.

What kinds of add-ons (“jigs”) guide your tools? What kind of fixtures can help guide your work?

Here’s the rest of that site: Look through it and then make your own list for coding.

You don’t even have to watch your fingers.


Written by Tom Harris

June 2, 2007 at 11:19 pm

Posted in Agile, Prevention

Tagged with

Necessity is the Mother of Learning

leave a comment »

I may be an exception, but if there’s one thing I enjoy, it’s buying the right tool for a specific job, when the job needs doing. It gives me an excuse to buy a new toy, as well as the pleasure of having a task go smoothly. Faithful readers may remember my first post here, Choose and Use the Right Tools, where I didn’t, and how that turned out.

Today I got a second chance, when my son decided to move his PC to the other side of his desk. With my wife’s permission, we set out to drill another hole for the computer cables. (My wife designed the desk, which is probably worth a good deal more than the PC.)

This time, when I got home from work, I was already presented with a new special-purpose hole saw. There was a little concern that it cost $20, but I reassured everyone that it was fine—this time we would use the right tool and get the job done nicely.

We got all prepared: cleared the work area, measured and marked the hole center on the bottom of the desk to ensure clearing the frame of the desk, put masking tape on top to prevent chipping, and drilled a starter hole all the way through. Came to putting the hole saw in the drill, though, and … it wouldn’t fit.

My son sped up—started thinking of all sorts of quick ways to attach it to the drill anyway.

I slowed down. I decided I would either become much more knowledgeable about hole saws in 15 minutes, or we would put the whole thing away ’til tomorrow and ask at the store. Well, I learned about what a hole saw and drill look like together, what mandrels are and what arbors look like, and finally settled on the understanding that my drill should definitely accept bits with up to a 1/2″ diameter shank. Pretty technical, huh!

All I can say is that this newfound knowledge gave me the confidence to open the drill chuck a bit larger, and then the hole saw (1 cm metric shank—do the math) did fit. We continued the job, including drilling the hole half of the way from the top, and the other half of the way from the bottom, so that the finishing cut would be in the middle of the desk thickness where it wouldn’t damage either surface. Out popped a plug of wood, just like in the picture.

What, you might wonder, does all this have to do with learning, and software development?

For years I’ve been trying to learn about regular expressions because they seemed so useful. But I never got very far until this week. I had to prepare a demonstration of integrating a source code editor (my current favorite—Source Insight) with some XML-modified output from PC-Lint. Well, it took me more than a hole saw’s 15 minutes, but a lot less than “years”. About an hour-and-a-half and I had—rather suddenly, it seemed—taken control of regular expressions for myself.

What made the difference? I had a specific task to do. I was no longer focused on the learning, but, as with the hole saw, on the necessity of the task at hand. A real task, whose result I had promised to someone else. With that promise, the learning just came by itself.

Written by Tom Harris

November 9, 2006 at 1:38 am

Posted in Learning

Tagged with

Choose and Use the Right Tools

with one comment

I just finished a simple carpentry job: drilling a 4 cm hole through a 6 cm desk for a connector on the end of a PC video cable to go through. My 16-year old son worked with me, and made any number of helpful comments to save us making errors. We avoided most of those errors thanks to him. Part of the story is that risk identification isn’t enough — there has to be risk analysis (likelihood and expected cost), risk prevention planning (pre-plan for how to avoid the risk becoming a reality) and mitigation planning (pre-planning what we will do if the risk does become a reality). And estimate the cost of fixing as feedback a recheck on the original cost in the risk analysis. Needless to say, I didn’t complete all steps for all risks, and some damages did occur. I made an arc-shaped scratch on the top surface of the desk, and a piece of bottom surface wood detached under the desk. There are many steps in risk analysis and people often check it off as done after doing just the risk identification.

But that wasn’t really the point of the story. The point of the story is related to one of the risks my son identified: “Dad, the circular saw is not deep enough to cut through the entire desk thickness.” I responded, “Good point — I’ll have to complete the circular cut from the bottom after doing most of it from the top. At least the saw is deeper than half the desk, so it should work out.” But after a successful half-cutting from the top, when I went under the desk I realized the significance of something else my son had pointed out. He had said, “Dad, the circular frame for the circular saw is a larger diameter. You won’t be able to cut from the bottom because you’ll hit the drawer frame under there.” For that risk I also had an answer: “OK, I’ll do the entire cut from the top.” (More about risk analysis: mitigation plans must all be cross-checked to make sure none contradict.)

Realizing that I wouldn’t be able to complete the job from under the desk, I went back to the top of the desk and figured (totally illogically — just emotions here) I might as well cut as deep as the saw will let me go, and then figure out what to do next. Fine — I got another 3 mm and then the circular frame for the circular saw made contact with the smooth desk surface and made that arc-shaped scratch. My son was not happy, but he forgave me.

But here’s the point. The right response to the “saw isn’t deep enough to cut through the desk” would have been simply, stop, go to the store with the saw as example and the desk measurement, and buy a deeper blade or circular saw set. Then come back and do the job with the right tool.

But since it was Independence Day and (I assumed that) the stores were closed, I forged on using a set of hand chisels. Fun enough. Nostalgic for the days of my youth when carpentry was without power tools. I did succeed. Took an hour instead of 2 minutes. The hole is correct and smooth but not as close to perfect as if done with a circular saw. And yes, the chiseling is what detached the piece of wood from the bottom surface of the desk, though circular saws can do that too if you’re not careful.

Written by Tom Harris

May 4, 2006 at 11:07 am

Posted in Tools

Tagged with