Quality Practices At Zircon

In last month’s article on the effect of speed on quality in Software Development, it was mentioned that Zircon implements a series of activities and practices to maintain a high quality standard on the work we produce, whilst helping to alleviate the overbearing pressure of formal processes. What the article did not address was why these processes can make such a difference.

One of the activities mentioned in the article is the daily code review. Daily code reviews can provide significant benefits in both the short and long term. The majority of programmers will pick up bad habits over time to make their job easier, for example when it comes to the naming of variables or functions it is good coding practice to reflect the purpose of the variable or function being named. Occasionally an engineer may give a function or variable a temporary name that does not reflect its purpose (e.g. func_1) and will forget to go back and change it at a later date, or after continued development the functionality or method may have evolved to a point where its given name no longer reflects its purpose.

The implementation of a daily code review makes it possible to reduce or potentially even remove these little habits and ensure that coding standards are followed from the very start of the development process. By reducing the reliance on these bad habits, it helps the reviewer to focus on the structure of the code without the distractions created by seemingly trivial issues.

In addition to maintaining quality throughout a development, daily code reviews could, in theory, help to save time in the long run. A major problem with the traditional formal code review is that it can be quite a time consuming activity, especially if the quantity of code needing a review is significantly large. In these situations it is not uncommon to find that the first section of code is reviewed with much more care than the latter sections. By performing daily code review sessions not only will the quantity of code to be reviewed be significantly less, the amount of time and focus required to complete the task should be significantly lower and the quality of the review is more likely to be consistent from beginning to end.

The second activity implemented by Zircon is the daily stand-up meeting. Daily stand-ups have gained popularity with the recent growth of Agile Development and its related frameworks and methodologies. The main objective of the daily stand-up is (also commonly known as the daily SCRUM meeting) is to ensure that team members are allocating their time to focus on the tasks that will progress the project towards successful completion of the current goal.

To many the idea of halting work for 15 to 20 minutes every day seems counterproductive, unnecessary and of little value, but if done properly the benefits will more than outweigh the impact of lost work. When done properly the project manager (or SCRUM master) does not lead the meeting in anyway, rather each member of the development team comes forward to answer three crucial questions:

  1. What did I do yesterday? Or, what have I done since the last time we met?
  2. What do I aim to achieve today? Or, what will I aim to have achieved by the next time we meet?
  3. Is there anything preventing me from progressing on my target?

One of the failings of more traditional methods such as Waterfall is that, aside from documentation creation, there are no processes in place to encourage communication across different members of the team. By getting each team member to consider and answer these three questions the flow of information across the development team is encouraged and improved.

Whilst daily stand-ups may be thought of as an Agile practice, here at Zircon we don’t restrict ourselves to using just one methodology. We cherry pick the best practices from a methodology, be it Agile or Waterfall, even if that methodology is not being followed in the strictest sense.