Scrum Masters generally don’t need to have the same depth of technical skills as the software developers on their team. However if your team is using Git for source code version control, then you as the Scrum Master or Iteration Manager, may find yourself bamboozled by terms such as HEAD, Master, Squash and Pull Request. This is the situation I found myself in recently, and even though I had previously used other version control systems such as CVS and SVN, I was still confused by discussions about Git.
The search for Git understanding
I got tired of having little understanding of what was being discussed in stand-ups, so I went on a mission to find a quick, yet comprehensive, introduction to Git and GitHub. There are many resources available on the internet, but most of them jump straight into creating your first Git repository, rather than explaining the concepts behind Git. Personally, I like to know what I’m doing, and why, before I do it, rather than just blindly following instructions to get a result but then not know what you’ve done or why. For this reason I skipped on many of the internet resources which didn’t first explain, in some depth, what they were trying to do.
So after many hours searching, and going down a few dead-end streets, I came up with three key resources which you can use to fast-track your understanding of Git. They won’t necessarily turn you into a Git master overnight, but they will enable you to better understand what your developers are talking about, and I believe that having this high-level knowledge will make you a better Scrum Master or Iteration Manager.
What are Git and GitHub?
Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people. Git is now clearly the industry leader and the world’s most popular source code management system.
GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. While GitHub is the most popular Git hosting platform, there are many alternative Git hosting platforms including Atlassian’s BitBucket, GitLab, Visual Studio Team Services and Amazon Web Services Code Commit.
Let’s Git started
So many Git puns, so little time…
Here are the three resources you need to upgrade your Git knowledge.
#1. Udacity course
The primary resource I recommend are two excellent free Udacity courses by Richard Kalehoff.
These two courses take you through the basics and do a very good job of explaining the concepts and ideas behind the technology.
#2. Git cheat sheet
Supplement the courses with the Git Cheat Sheet by ZeroTurnaround.
This includes a really nice diagram of the different Git stages, which helps no-end when learning the concepts. Keep a copy of this cheat sheet handy while you go through the Udacity courses.
#3. Pro Git book
Lastly, use the free Pro Git book (by Scott Chacon and Ben Straub) as a way of re-enforcing what you’ve learnt.
The content in this book is denser than the Udacity courses, so I’d suggest that you learn a topic on Udacity first and then follow up with the book. However, some people may find they prefer the book format.
These resources will give you the knowledge and understanding you need to feel comfortable around Git discussions with your developers. Now it’s up to you to use them, so Git going!
Do I miss something? Have you got some other great Git learning resources? Post a comment and let me know.