With its flexibility and accessibility, many software development teams are now standardizing on Git and moving away from older version control systems like SVN and CVS. Adding Bitbucket, which seamlessly integrates with the rest of the Atlassian stack, gives you a true DVCS management powerhouse. But, in a large organization with hundreds of teams and thousands of people, it can be hard to know exactly where to start.
From technical considerations such as sizing, performance, scaling and migrations to project management aspects such as timelines, resources, and stakeholder engagement, the process requires a strategic approach. As a Technical Account Manager, I’ve had the opportunity to work alongside large companies with complex environments in determining their best strategy for rolling out or migrating to Bitbucket, and it’s been a lot of fun. Here are the top 5 strategies I’ve uncovered for avoiding typical migration headaches and ensuring a successful rollout:
1. Identify your early adopters
In many cases, the move to Git and Bitbucket starts with a few passionate teams approaching their admins with interest in migration. Identify those teams and engage them from the initial phases of the project, as they can be an invaluable source of feedback and help advocate the application internally at your organization. To get everybody together, you can create a project home for everyone to get on the same page and share information. For instance, I used Confluence as a single source of truth where teams could create, organize, and discuss requirements and other documentation. The screenshot below is an example of how you can use Confluence to capture interest from teams adopting Bitbucket, gather information required to make decisions, collect feedback, and keep them updated with any progress:
2. Prepare your internal support channel
With any new software application, end users are bound to have questions regarding the product, process, usage, advantages, and so on. Giving them help and support to get started is key to a successful deployment. Set up multiple channels to open up communication and get people the answers they need. The Atlassian suite of products can help you with this. For example, you could set up a dedicated space in Hipchat, where new users can connect with in-house Git experts to seek help with Git usage and commands. Then, in Confluence, you could set up a Knowledge Base to answer frequently asked questions. Finally, with JIRA Service Desk, you can integrate with the Confluence Knowledge Base to enable users to search for answers first before contacting you for support.
3. Promote the tool internally
When rolling out new software, a little internal promotion can go a long way. One good way to get everyone on board is through offering informal meetings at lunchtime, aka brown bag sessions, to provide a space for knowledge sharing, informal discussions, and training. These sessions are a great way to raise interest and awareness, identify the level of experience, and capture some of the most commonly asked questions. For end users, it is an opportunity to learn more about the software. During the planning stage, hold a brown bag to increase awareness and answer any high-level application related questions. Follow it up with another session closer to the rollout stage to answer process related questions. These sessions should be introductory. The intention is to provide end users with enough information to start using the application and know where to seek help when required.
4. Organize formal training
Though Git is designed with performance, security and flexibility in mind, one common criticism is that it can be difficult to learn. To make sure that teams don’t feel intimidated by Git, you should set up training for interested teams to address key Git topics. We’ve found these areas to be the best to start with:
- Version control using Git
- Choosing a Git workflow
- Using Bitbucket
- JIRA and Bitbucket Integration
There are several self-learning resources for Git available online. Below are three of my favorites:
5. Empower Internal Champions
Application administrators are the superheroes that ensure your system is healthy, up and running and meets the performance expectations. They often find themselves spending time on tasks such as access control, creating new repositories and managing repository and branch level permissions. Delegating these tasks will allow them to focus more on solving more complex challenges. Bitbucket provides four levels of permissions that are all administered through the UI. You can use these permissions to allow certain users such as internal Git experts to create repositories, control access to projects and manage repository and branch level permissions.
- Global Permissions: Who can log into Bitbucket Server, who the system admin is, etc..
- Project Permissions: Read, write, and admin permissions at the project (groups of repositories) level.
- Repository Permissions: Read, write, and admin permissions on a per repository basis.
- Branch Permissions: Write (push) access on a per branch basis.
Identifying and empowering internal champions, providing the right level of support and training, and promoting the tool internally makes a significant difference with the implementation and rollout of applications. If you’d like some assistance with your rollout, Technical Account Managers at Atlassian can guide you with the planning, analysis, design, validation, and provide best practice advice on how to get the most out of your Atlassian applications.