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.

INTENT

"A comment must either describe the intent of the code or summarize it."

A comment is more likely to help understand the code when it tells what the code tries to achieve instead of telling how it does it. A good hint to when this rule is violated is the use of computer terminology (stack, list, array) in the comment. It is better to use the terminology of the problem rather than that of the solution.

A good comment summarizes several lines of code. As long as the comment is up-to-date it makes reading and understanding the code faster.

An outdated comment is often worse than a missing one.

Future Work

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.

Why is quality so hard?

Working for several years as a quality specialist in a large telecommunications firm taught me that software quality is a challenging area, to say the least. It seemed that there was never enough resources to do the work like it should have been done. This is of course a common complaint in almost any area of work. Maybe I was standing too close, but it seemed to afflict the quality work especially badly. I remember we used to be five quality managers against maybe 150 software engineers. And sometimes it felt like we were against them.
Mostly it wasn't being outnumbered, it was being outflanked. Quality is a strange concept. It is important enough to cause big financial concerns in the warranty department. It deserves quality specialists and quality managers. Quality is made as a side-effect. Nobody works only for quality. Most software engineers think their main priority is to add new functionality. Quality just happens. Or, most of the time, doesn't happen. It's like luck. Either you have it, or you don't. There's nothing you can do. Managing quality is difficult because the software engineers have their schedule managers already. The schedule managers are interested in the schedule and when the new functionality will be available. They assume it will be developed with the best achievable quality. The schedule managers have all the formal authority. The quality managers are called managers, but lack formal authority.

Often the quality managers notice problems with the way the software engineers are working. Making them change their ways can be difficult, especially if the manager responsible for the schedule feels that the change might jeopardize it. And they routinely feel that way. Causing a change in somebody else's behavior is difficult enough without a reluctant manager.

This is a question I have pondered many times. There are many reasons for quality being hard to achieve; quality is difficult to define, nobody has time for anything else than urgent issues and quality becomes urgent when it is too late, lacking quality is hard to notice, managers don't have time to concentrate on quality when there's also 'real work' to be done, internal quality and external quality aren't as clearly linked as you'd imagine, oh and did I mention that there doesn't seem to be time for quality work?
Chapter 3. "Root Causes" aims to find what are the ultimate reasons behind the symptoms described in Chapter 2. "Symptoms".

Itchin' for a Drive?

Get your bearings:

sitemap

Click for the sitemap.

Participants comment:

Actual training feedback

Click for training course details.