There's got to be a better way to do code reviews for embedded systems projects.
By Jason Cohen, Smart Bear Inc.
Of course, the next step is to correct the problems. Many of them correct themselves just by virtue of bringing them into conscious thought. Others errors you can correct with automation. For example, I use the auto-correct feature in Outlook to correct many misspellings.
Software checklists should be built exactly the same way. Look at the last one or two hundred defects found by code review and you'll find patterns. This isn't as hard as it sounds; you don't need detailed analysis or five columns of data on each defect. Just summarize the defects and the patterns will jump out.
A checklist derived from these patterns will be tuned specifically to the errors you make most often. So the fifth rule is: Let empirical evidence determine the checklist.
After you build it, and after they come, you still need to maintain it
This technique provides the initial checklist, but it turns out that the patterns change over time. Just as with the personal introspection project, everyone will get used to finding and fixing the same problems. Soon, code authors will think about these same things while the code is being written. The problem will be fixed before it starts.
At this point, the number of defects associated with that checklist item will diminish, eventually becoming so infrequent as to make that item useless. This is a good thing--developers have developed habits and techniques to avoid this type of error. Now you can replace that item with the next most common pattern.
The sixth rule: Track defects by item so you can replace stale items.
As if a checklist for checklists isn't recursive enough already, I'd like to note that this short list contains items (apparently) not obvious to most checklist designers and was built empirically from patterns I've found in the field.
Jason Cohen is the founder of Smart Bear Inc., makers of tools that assist developers and managers with lightweight peer code review. He's also the author of a popular book on this topic. Cohen can be reached at jason.cohen@smartbearsoftware.com.