Published Tick-the-Code Material
Happy Are The Software Engineers.. (article)
My first ever published article is called "Happy Are The Software Engineers.." and it appeared in Better Software magazine in December 2006. The article describes briefly how complete concentration can create the feeling of happiness especially if the task at hand is meaningful. I wanted to highlight that working for software quality is meaningful and with Tick-the-Code you can achieve complete concentration.
Simply put, happiness is Tick-the-Code.
Tick-the-Code Inspection: Theory and Practice (paper)
My first ever scientific paper is called "Tick-the-Code Inspection: Theory and Practice" and it appeared in the peer-reviewed publication of ASQ (American Society for Quality) called Software Quality Professional.
As the name says, the paper reveals all details of Tick-the-Code up to the 24 coding rules. At the moment this paper is the most comprehensive written source for information about Tick-the-Code.
Tick-the-Code Inspection: Empirical Evidence (on Effectiveness) (paper)
My second paper is called Tick-the-Code Inspection: Empirical Evidence (on Effectiveness). It was prepared for, and first presented at, Pacific Northwest Software Quality Conference 2007. The paper presents measurements taken in Tick-the-Code training courses so far (about 50 sessions with over 300 software professionals). The results are revealing. The main point of the paper is that software engineers could keep their software much simpler and avoid making many of the errors software projects are so notorious for.
In the Appendix of the paper, you'll find all the active rules of Tick-the-Code at the time of writing (summer 2007).
Tick-the-Code - traditionally novel technique in the fight against bugs (article)
Pirkanmaan Tietojenkäsittely-yhdistys (Pitky ry) published my article in their member magazine Pitkyn Piiri 1/2008. It is called "Tick-the-Code - uusvanha tekniikka taistelussa bugeja vastaan" and it is only available in Finnish.
An Example Rule Introduced
There are 24 active rules in Tick-the-Code. Each one of them helps to locate either omissions, redundancies, ambiguities, inconsistencies or assumptions in the source code. Individual rule violations might seem minor, but when you let them accumulate long enough, you'll be in trouble.
Marked rule violations are called ticks. Try the following rule on your production-level code and see how many ticks you can find. Then analyze each tick and see if you can't improve the maintainability of your code.
The rule sample changes weekly, so in a mere 24 weeks of diligent visits, you can have yourself the complete set of Tick-the-Code rules. However, there is an easier way and you'll be rewarded with laminated rule cards to top it all up. Get trained! Contact Qualiteers if you want to know more.
"Never divide by zero."
Dividing by zero is mathematically undefined and in computer arithmetics handled often unexpectedly. Sometimes it causes an exception, sometimes it evaluates to zero (which is wrong). It is best to avoid such code altogether.
How to find divisions by zero in code? Look for either the division
/ or the modulo
% operator. If the denominator is a variable, it must never be 0. If you can't be absolutely sure, this rule is violated.
Don't forget to check the macros!
Tick-the-Code Inspection: The Book (book, working title)
Since 2006, there's a book on Tick-the-Code on the works. Currently the book project is on ice, as I study and gather more material and field experiences to include in the book. The book will be the most comprehensive written source on Tick-the-Code.
Excerpt from the book
The excerpt changes weekly. Each excerpt is still a draft version and might change before ending in the book.
Receiving negative feedback can put the author in defensive mode. A defensive author wants to explain why he made the mistakes the checkers point out. In defensive mode the author is out to save face by justifying the findings. To cut a long story short, taking feedback personally in this manner is unnecessary waste of time. The code inspection process is flawed and the author highly delusional if he cannot accept the fact that he, like all humans, makes mistakes.
Nobody likes to receive negative feedback and everybody takes it more or less personally. If the code inspection process doesn't limit the behavior there is a problem. Some developers have an inflated view of their own talents and excellence. They find it hard to accept any other feedback but praise. Unchecked, prima donna-ish software developers wreak havoc in a cooperative environment.
In a well-functioning code inspection there is a clear distinction between the product under scrutiny and the author who produced it. The author isn't the source code, even though both are flawed. Delivering negative feedback is practically impossible if the author's ego is attached to the inspected code module. The author interprets any negative commentary on his code as criticism against him. A defensive author can reject some findings just to maintain his self-respect. This is dangerous as the author might actually decline to fix perfectly good and valid findings for personal reasons.
Very bad mistakes the checkers have uncovered have the power to hurt the author's feelings. The author's psychological response can be to deny the findings to protect his own ego. "I don't make such mistakes!" Strong feelings of denial can manifest themselves as self-delusion. The author convinces himself that a piece of code is perfectly fine although the checkers reported they couldn't understand it. In a proper inspection process, the author tries to learn from his mistakes. If the author reacts to serious findings by closing his mind, there is a problem in the works. Failing to accept good negative feedback is a clear clue about ego-attachment. Here's the Law of Learning:
The bigger the bad, the larger the lesson.
The law says that you learn a lot from the most humiliating mistakes you make. Eat some humble pie, remove your ego from the situation, feel bad and admit having committed a humiliating mistake when you have, and you don't have to be embarrassed again.
Chapter 2. "Symptoms" describes the psychological setup of inspection. It is about criticism, after all. Ignoring the psychology leads to problems in getting the most out of a cooperative working practice like code inspection.