A summary of three online articles that I have found interesting in the past week.
The benefits of peer review
In this article, Jack Ganssle sings the praises of code inspections; citing one study which claims that such inspections are ten to 34 times cheaper than testing. A second study is also cited, which claims that more than half of the defects in a body of code cannot be detected by testing alone; making the implicit suggestion that code inspections could solve this problem.
Peer reviews are actually performed at each stage of the development process in my current job role and I personally agree that they are an invaluable and relatively cheap tool in detecting and correcting software defects as early as possible.
Further to this, I have found that they encourage greater communication between members of a team, and create a consensus on the quality of work that is expected. In other words: the work standard of poorly performing, or newly arriving team members quickly gets brought up to the level of the most highly performing members of the team.
The benefits of personal review
This second excellent article by Jack Ganssle discusses the importance of the engineering notebook when developing, debugging and verifying software.
Jack suggests that when a bug is discovered during development, rather than simply hacking, recompiling and retesting, a better approach is to take a few minutes to stop and write the problem details into a notebook. This provides two benefits:
Firstly, by taking time to think about the problem clearly, the correct solution is more likely to become apparent.
Secondly, by reviewing the notebook contents once or twice per year, a feedback loop is created, allowing the detection and correction of commonly recurring mistakes.
Maintaining a notebook is something which I have found requires strict discipline, and is a practice that I have not yet completely mastered.
For the past few years I have been attempting to keep a well structured notebook, and being able to look back to exactly what was done and why on any given day is something that has already proved very useful. The main difficulty I have is with remembering to actually write things down, especially when they don’t seem very significant at the time.
Perhaps one of my new year’s resolution will be to make sure that my logbook is on the desk and open, ready to be written in, at the beginning of each day.
Software that measures emotion
This piece published in the Institution of Engineering and Technology magazine: E&T, introduces a new software tool that can detect a range of human emotions by analysing text posted online.
As with most web based innovations, the initial target for this technology is advertising. Upon reading the article however, my first thought was regarding how this could be used during the software peer review process.
By performing an emotional analysis of the actions raised during a peer review, and the subsequent responses, it would be possible to spot potential frictions within a team; perhaps involving situations where personal feelings were having an affect on professional behaviour.