I have come to realise that I rarely trust tools. I have gotten bitten so many times by tools that do not work properly that I have a serious trust issue with most of them. So, while I may still use tools to collect data, I would always verify the data obtained with my own numbers. It isn’t even about having quality tools from a premium vendor, nor is it about having open source tools where every algorithm can be scrutinised. I just have trust issues.
Therefore, in my developmental work, I always double check things. When I write a piece of C/C++ code, I will always verify that the compiler is doing the right thing by examining the machine code output and running it through a simulation in my head. I do make use of debuggers and simulators, but I will always verify the code manually before accepting that the code does what I intended it to. In fact, this is an excellent way of learning about a processor architecture and understanding the quirks of its compiler.
However, I have come to realise that most people do not share my opinions in this matter. Most people will spend good money on buying tools and then trusting the tools. Often, certifying something by a tools is required before a product can be deemed ‘production ready’ for this world. For some reason, people have grown to trust tools more than each other. Personally, I think that there is something wrong with this. Even with the most stringent and highest quality processes in place, there are no guarantees that the tools are going to be trustworthy.
Maybe I am just paranoid.