The latest expert opinions, articles, and guides for the Java professional.
Developer Productivity Report 2013 – How Engineering Tools & Practices Impact Software Quality & Delivery
“How do you communicate?”
We asked respondents how they communicate most often, based on a list of these choices:
- Ad-hoc conversations
- Daily standup
- Meeting several times a week
- Weekly meeting
- Phone/Voice chat
The choices Email and Ad hoc conversations were the most common selections, but there was a fairly even distribution among the rest of the of the choices. However, when we relate these findings with Predictability and Quality of software delivery, we see a some interesting trends.
With regards to Predictability, having Daily standups and Team chat seem to be the best ways to communicate, and relying on Email to communicate is even slightly detrimental to predictability.
When looking at software quality with regards to communication methods, the positive trends are not very strong–Ad hoc conversations and Weekly meetings both score a 2% increase in quality. However, the negative trends shed a little light on how teams communicate:
Teleconferencing naturally implies working with remote teams, which is expected to decrease quality slightly. And if you’ve ever heard the phrase “Too much of a good thing”, then the law of diminishing returns should be applied to Meeting several times a week. Whereas a Weekly meeting is positive, doing it too often appears to cause “meeting fatigue” and impacts quality worse than any other communication method, according to these results.
Summary of Main Takeaways
- Technical debt – Most teams work on technical debt at least sometimes, but we saw no significant increases in quality and predictability of software releases; however, a negative trend appears by not doing any technical debt maintenance.
- Code quality – over 50% of respondents do not fix code quality issues. We saw a significant increase in both predictability and quality in teams that regularly fix code quality issues.
- Test coverage – More than half of respondents have less than 25% test coverage. There is a significant increase in both predictability and quality as test coverage increases.
- Pairing up – 2/3 of respondents team up at least sometimes, and there is a significant increase in software quality associated with this, with a slight increase in predictability. No data about increased/decreased productivity from pairing up.
- Code reviews – We see that 76% of respondents do code reviews for at least some commits, which significantly increases predictability of releases, but does little for software quality. More is better.
- Task estimation – Simply put, keep managers out of task estimation. Estimations by the team as a whole significantly increases software quality and predictability of releases, but even having individual developers doing it doesn’t hurt anything.
- Branching – There was no significant effect on predictability or quality for branching, but there was a slight negative trend for the single trunk and a slight positive trend for feature branches.
- Testing code – Of all the choices, automated tests showed the largest overall improvements both in the predictability and quality of software deliveries. Quality goes up most when Developers are testing the code.
- Communication methods – the results here show that daily standups, team group chat online, and weekly meetings all improve predictability, while meeting multiple times a week and having a remote team (teleconferencing) associates with decreased quality.
Leave a comment