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.
"Avoid unreachable code."
Unreachable code is just dead weight. If you find functional looking code in a branch that absolutely can never be executed, mark it. Code that's been commented out also violates this rule. Unless the code is left as a bad example, it should be removed.
Outdated code with a comment like
/* This doesn't work anymore */ or unfinished code with a comment like
/* This doesn't work yet */ break this rule, too.
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.
There is no red tape associated with the practice of Tick-the-Code. Instead of putting weight on recording evidence of the procedures, Tick-the-Code takes the practical view and uses already existing systems to facilitate it. For example, the findings aren't stored anywhere other than the version control system. The markings the checkers make eventually are destroyed. For the ignored markings there is no tracing. For the accepted ones, the difference between the before version of the source code module and after ticking version shows that there must have been a finding. You won't see the circles and rule names as such, but you see the effects the ticks have had in the changes in the file. The exact name of the violated rule could be stored, but it wouldn't really provide much useful information. It is much more important to handle what needs handling and forget it ever existed. Fix and forget.
There are no meetings necessary, in fact you could say that the practice of Tick-the-Code is as heavy as the paper the source code is printed on. All the necessary communication gets drawn or scribbled on the stack of source code and it contains enough information to do something about each and every finding. For such an intense cooperative practice involving a small team of heavily communicating individuals, Tick-the-Code is truly lightweight.
Software becomes so much more concrete once it is printed on paper. Hardcopies of software show that software isn't free to change and it isn't completely immaterial. It is good to remind the checkers of that fact. Printing a lot of code shows that managing the amounts being produced isn't easy. The complexity normally hidden somewhere on a hard disk becomes apparent when printed on paper. All involved realize they have to be extra careful in the future.
Tick-the-Code is a low-tech approach to code review. It is brain-intensive, focus-inducing and counterintuitive. We could even say that it is taking you back-to-basics, to the grass-root level of the source code. Tick-the-Code is heavy as paper and result-driven. It is at times purely mechanical and sometimes heuristic, all the time puzzling and at best creativity-inspiring. Ticking code free from the shackles of technology can be therapeutic and at the same time both arming and disarming. It is all these things and more.
It can be helpful to describe what Tick-the-Code is not. It isn't reactive. You can't automate it and it isn't just for beginners.