So you like git eh? Awesome! However, I can see it, you work with some teams that still use SVN or worse yet, no version control. Fear not, me too. I’ll walk you through my experience in getting a team converted and some git resources along the way. (Why you should switch from Subversion to Git)
Now, if you work in a large corporate development shop with lots of tools, integrations and scripts as part of your dev process, there is much more to think about. However in the case where you work in a small or medium size dev shop where ideas are welcomed, this might be for you. This is the case for two different teams I work with in two different organizations. (This is where I say thank-you Lord for the blessing of these colleagues.)
I started dabbling with Git in 2011 when Drupal.org made the move from CVS to Git in the Great Git Migration. Admittedly, it was only late 2012 that I began to use Git for client work on of all things, WordPress. I went through plenty of resources getting my head around git. Now, I am working with my day job team to move to Git for our projects. This hasn’t happened over night.
“We” not I
One of the first things I find with change management of any sort, is a need to build some momentum and find some “friendlies”. Making the change to Git from another version control system is usually not trivial, so you want to make sure you have some good reasons for the change.
This shouldn’t be about dictating. It should be about a dialogue leading to a good decision.
Find another member of the team that can “get it”. Someone who you can talk with and will understand the reasons why the change would be good for the team. Hopefully this person will also be good at challenging you a bit and asking good questions. Doing this now, one on one, gives you and opportunity to think about your responses and be able to articulate well. No doubt, someone else on the team will have the some of the same questions and may not be so receptive to the change. Preparing to answer tough questions is part of the process.
Having at least one other person on board with the change has another benefit. It gives the broader discussion another voice. Going it alone means that at some point, there is a possibility that people become numb to your drum beating. Having another voice, lend a bit more credibility to the discussion but offers another person who can have one on one discussions with other team members as well.
Change has a very natural human reaction, resistance. However, resistance does not mean someone is just being stubborn. Learning to root cause(s) of the resistance is important. Fear may be the primary cause of resistance.
…uneasiness is to be expected from most people when the status quo shifts, simply because people need time to adjust their thinking, their job performance, and their social relationships to any changes made. (Source: Managing Resistance to Change – Sharon L Baker)
When it comes to skilled positions, including technology roles, fear tends to have a predominant cause. Fear of not being able to keep up. Others might put it differently, but my experience some technology people simply need to feel like they can conquer a new tool or technology in order to embrace the change. In our world of web development, this takes the form of training.
No, I’m not saying we need to send folks to expensive classes and have them master Git. Geesh, what overkill that would be. What I am suggesting that spending an hour with staff walking through how they will get their jobs done with Git on a daily basis will pay you dividends in getting staff on board. Do a Google Hangout, a GotoMeeting, or whatever you want and have staff walk through, hands on the keyboard. It is amazing to watch fear turn to excitement in a matter of minutes. Try it!
Give a Fish or Teach to Fish
Naturally, in reducing fear as a means of garnering support for your move to Git, you need resources to help staff feel comfortable. If you have studied education at all, you know that there are different learning styles. You team is probably made up of people with some different style of learning. Embrace those differences.
So with that in mind, here is a list of resources we’ve found helpful.
Books / e-Books / Articles
- Git Ready
- GitHub Training (Free classes)
- Git Quick Reference
- Try Git (CodeSchool)
- Git with Drupal
- .gitignore templates for popular platforms
Branching and Merging