Let me tell you a story on how I thought about teaching other programmers how to take small steps to help them minimize the mistakes by focusing on a small thought.
A couple of years ago I was working on a legacy project, meaning I did not know anything about the business, and it was written in Delphi .Net which was totally unknown to me. I needed to translate this medium-sized code-base from Delphi .Net into .Net / Silverlight.
All the team was using a centralized source control system, namely TFS. But I needed to be sure that the steps I take are safe in my routine of translating the code from Delphi .Net to Silverlight, so I put in place Git. It helped me ensure that the steps I do locally are the good ones. I had done this before, using Git or SVN as a local source control while my team was using SVN as a centralized repository for the source code.
You can read more on my blog: The history of “Taking Baby Steps”