“Ordinarily, if an average man comes face to face with the nagual the shock would be so great that he would die. The goal of a warrior’s training is not to teach him to hex or to charm, but to prepare his tonal not to crap out ... You call it explaining. I call it a sterile and boring insistence of the tonal to have everything under it’s control. Whenever it doesn’t succeed, there is a moment of bafflement and then the tonal opens itself to death. What a prick! It would rather kill itself than relinquish control. And yet there is very little we can do to change that condition.”
Carlos Castaneda

Tales of Power

Good Tools

n

I have this image of a metal-worker who has just finished manufacturing a fine tuned machine part. I see him running his fingers over it’s surface to feel it. This affectionate gesture is a key ingredient in quality assurance.

This came to me as I am working on some code (PHP server with a Flex/AS3 client).  I encountered  some poorly implemented components and the quality thing to do was to improve them (this is sometimes referred to as re-factoring). I have decided not to do that and it’s bothering me, but I am sticking with my choice.

Working with code means there is nothing tangible to run my fingers over. Actually “running my fingers over a component” in programming is called unit-testing – it is achieved by “activating” the component independently and checking that it behaves properly. Debugging tools are required to do this – they provide a means to activate, control and inspect the component. The environments & tools I am working with (all open-source) are missing functional debugging capabilities and tools.

I am not running my fingers over my components because I don’t have the tools to do it.  Because I don’t have tools to run my fingers over my components I make lower quality components, which sometimes don’t function as expected, which force me to fix and change my components. Because I have a lot of fixing and changing to do, a lot of the time I spend coding I am in a “failed” state of mind. Because I am in a “failed” state of mind I am not passionate about what I do. Because I am not passionate about what I do I create mediocre components – which require quite a bit of “running fingers over”… and on and on…

Why is this bothering me? I like to like what I do. I like quality, I have great faith in quality.

Why did I choose to stick with what I have? There is a bigger picture in front of me. The code is part of a larger project. The quality of the project can tolerate the existing code. Quality needs context – I can continue to pursue the highest quality code, but that would be at the cost of a higher quality process. If & when it will become relevant, the project will create a context for me to go back and to improve the code.

My take on this:

  • Get good tools
  • Appreciate the tools I do have
  • Aim for uncompromising quality
  • Compromise quality when it’s relevant
  • Have a bigger picture so I know what is relevant and what is not
  • Get good tools
This entry was posted in Business, Coming Through, Expanding, inside, outside. You are welcome to read 1 comment and to add yours
  • Inside

  • Subscribe via Email