Today I read… (8/16/2017)

A Guide to Becoming a Full-Stack Developer in 2017

Half of All Employees Quit Because of Managers: Why the Best Managers Have This Trait


Code Reviews

The article “Bad Software Architecture is a People Problem” in the September 2016 issue of Communications of the ACM touches on several of the development practices that we’ve talked about lately.

For example:
Bug Fixing
Coding Standards
Code Reviews

I’m glad to see code reviews mentioned because I think they can help solve some of the problems we face.

We benefit in multiple ways from code reviews which help us:
Double check our work before mistakes make it into the code base.
Verify design decisions and coding standards.
Transfer knowledge between developers.
Train new developers on team practices.
Learn from each other’s suggestions.

I particularly liked this statement:
“One of the best ways of bridging knowledge gaps on a team is to encourage sharing among team members. When other members review and give feedback, they learn the code, too.”

Another big reason for code reviews is to verify unit tests and automated acceptance tests. We should all be writing unit tests and acceptance tests for new code and when fixing defects. And it’s always helpful to have multiple people review these tests because in some cases it can be easy to get them wrong. This is especially true for complex business logic.

One of the worst things you can have in your solutions is unit tests that give false positives. In other words, tests that indicate your production code satisfies requirements or business rules when actually it doesn’t. Use code reviews to verify the logic of the tests and to verify that all the necessary tests have been written.

Your team should have a code review process for code commits. Some tools, like VS/TFS, automate the code review process. If your tools don’t, use email or IM tools. Decide which people on your team should review changes in the various functional areas of your product. Then include the responsible people in a review request before you commit to those areas. When you get a request, complete them in a timely manner – don’t let them sit.

Keep this in mind – Code reviews reduce defects.