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.
"Forbidden: marker comments."
A marker comment is typically a reminder that something is not finished yet. Production code must have no forgotten reminders in it. Look for comments like
/*username*/ to find violations.
A real-life comment example:
/* This isn't quite correct but because it is Friday afternoon, I will fix it on Monday. */
The comment was at least two years old.
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.
This tendency to leave the checks until the last minute explains the well-known 'demo-effect'. Your programming team has worked long and hard on the new application and next week there's the big trade show, where you're going to present the prototype to future customers. You ask your team to make sure everything is ready, and even the quality is good. Unfortunately they only have the Friday afternoon to do any checking and in the hurry they don't really find many problems. On the other hand, everybody realizes that should they find something critical, there wouldn't be enough time to fix it before the trade show, and that would be a catastrophe. Even the psychological setup is against a proper check. On top of that it has been long since the last check was done and the crew really only has time to scratch the surface with their check.
They find a few problems, which are probably masking at least as many, which probably prevent the testing of certain features sure to contain even more problems. All the found problems are fixed and everybody overly confident that all will go well. You pack the release and leave for the trade show.
The first two days on the show go extremely well. On the third day, brimming with confidence you invite the visitors to your demonstration. These are the ones you have been waiting for, these are the biggest prospects you've had in your mind. The demonstration better go as well as before. But even as you are thinking these thoughts, tragedy strikes. The demonstrated feature collapses without warning leaving you with nothing. You try to explain that the system is still under development and how this kind of thing is quite normal in software. The impression left on the prospects is not convincing, though. This demo-effect might have cost you half-a-year's sales. Afterwards, you curse your bad luck.
Of course, it wasn't bad luck, neither was it a coincidence that the application crashed just as it did. It didn't sense the presence of the highly esteemed visitors, or your nervousness. Nothing supernatural happened. As you packed the application on Friday, you also had packed wrong confidence based on the results of your crew's quality checks. For months, the application had accumulated complexity and errors, which nobody had had the time to remove or even check for. For months, the application had expanded in features but deteriorated in internal quality at the same time. The debt that the application had accumulated in internal quality, was what you had to pay back in the form of the demo-effect.
Have you ever wondered what created the idea of a demo-effect? It isn't just a myth that just when you need a piece of software to work, it doesn't. In the excerpt from Chapter 3. "Root Causes", I draw a picture of how it could still be going on in organizations today.