22: Technique before Tools

I find that tools exist to simplify something. Either to make it easier in some fashion, or speed it up.

Electronic Story Trackers make it easier to do a number of things, including modify when not physically present.

Refactoring tools let us do what we know we want to do faster.

The underlying behavior these tools are built for have reasons. Knowing, and having experienced (or suffered) those reasons will improve your ability and understanding of why the tools exist, and do what they do.

In my development background, I've always sought to understand the lower level of what I'm working with. The only time I stopped was in my first foray into programming and I wanted to know how the character got printed to the screen.
I dug into the source code of my C++ console app... into the stdlib... and into the C code... and then I decided I didn't need to know...

When I was learning Windows UI in C++ (Diablo 2 character editor - To learn the GUI and how to manipulate bits) MFC was the big thing. I wanted to know what it did under the hood. It felt like a lot of black magic. I used the WINAPI. I had to dig into details, and make assumptions from MFC documentation. I got it all going. I enjoyed it... MFC made A LOT more sense after that because it's decisions were no longer "just because". I could see the rational behind the simplification and map it back to other things I understood.

Techniques are what allow us to use the tools better.

Let's see what the books says...
"Undisciplined software engineer with a tool becomes a dangerous undisciplined software engineer"

It's talking more about discipline than technique. It's a short blurb as well.

Yes, discipline is good. We can be disciplined in the use of tools without understanding the underlying technique of the tool.

I'm picking on the terminology used; but - we can be undisciplined in following a technique by hand and continue to be undisciplined when we have a tool to "automate" the technique. The two are not synonymous, and the books feels like it makes them out to.

I agree on the discipline side - We should definitely be disciplined in our use of techniques and tools. AND it can be very helpful to understand the underlying reasons/practices that the the tool was created to help with.

Knowing how to do it by hand also allows us a lot more control in the situations we may need it.

I got into wood working (Mostly to build book shelves... I always seem to run out of room) and I have a jointer and a planar (they make sides falr). I also have hand planes. I use the hand planes a lot. They give me finer control and refinement. Small things are easier with a hand tool than using a big power tool.
The same applies to the tools that "simplify" for us. Somethings are better/faster with "power" tools - Other times they get in the way.

Be conscious of the decision, there are tradeoffs.

Show Comments