When I was in my last position I worked with a lot of inexperienced coders. They were not on my team and their roles were not software developer, but some of their day to day work involved writing and working with code. Since they were not using it, I lobbied our organization to hire General Assembly to teach a version control with git and GitHub workshop. While folks enjoyed the workshop, adoption of git afterwards was not consistent nor widespread.
Why It Matters
In software engineering version control is table stakes. Without it programmers have no way to know what other people did. Version control makes it easy to roll back mistakes or compare two versions of code and answer why one works and the other does not. Changes are grouped together so you can get context on who did it and what else they did at the same time. Coding without version control is like driving somewhere new without GPS. You can do it, but why would you?
What the Research Says
Atul Gawande via The New Yorker:
California researchers in the early nineteen-eighties conducted a five-year study of teacher-skill development in eighty schools, and noticed something interesting. Workshops led teachers to use new skills in the classroom only ten per cent of the time. Even when a practice session with demonstrations and personal feedback was added, fewer than twenty per cent made the change. But when coaching was introduced—when a colleague watched them try the new skills in their own classroom and provided suggestions—adoption rates passed ninety per cent. A spate of small randomized trials confirmed the effect. Coached teachers were more effective, and their students did better on tests.
Google Used Test Mercenaries to Drive the Adoption of Automated Testing
Another tool that improves software quality is automated testing. Despite its utility, it requires learning new skills and can lead to its own bugs and frustrations. It is easy for programmers to neglect or ignore. Google embedded two or more test mercenaries inside software development teams for months to coach them on writing tests and improving their code quality.
- Mike Bland’s presentation on driving the adoption of automated testing at Google is called The Rainbow of Death.
- Software Carpentry’s Version Control with git Workshop
- Version control is the first item in The Joel Test - 12 Steps to Better Software