Tools for Code Management in a Remote Team

Code repository software solutions that make your remote work easier 

Google, Facebook, Airbnb, IBM, PayPal, and 1.8+ million companies worldwide use GitHub for source code management. Meanwhile, NASA, Buyer, SONY, Nasdaq and 100,000+ other businesses globally choose GitLab to improve development efficiency.

If a client comes to us with a large business project that needs a software development, a broad technical concept and requires a team engagement in working on tasks, then source code management is a must. Source code management tools help to control large projects by letting developers, writers, and product managers manage a project from different sides and make transparent changes without disrupting each other’s work. As a result, such an approach allows avoiding critical errors.

Code management tools enable developers to be more flexible, creative and feel more freely when undertaking complex and challenging tasks. We at openGeeksLab decided to share with you a list of tools which we use ourselves. 

A Curated List of Selected Tools

Before SCM tools comparison, let me tell you about code repositories principles.

Each project is divided into specific parts. These parts are given to different developers who complete the tasks independently of each other. A developer writes code, pushes it into a separate branch, and creates a pull or a merge request to the main branch. A creator never pushes code into the main branch. These requests are validated by a technical lead — a person responsible for code correctness and quality. After a validation, a technical lead either leaves comments or a request is merged into the main branch — the changes are applied to the main branch. Gradually, all parts of the system are developed, assembled, and launched into production.

Git is considered the most advanced configuration management software among software configuration management tools. The system assumes that the code is pushed into the repository by blocks (commits). Every next commit is applied over the previous one — they overlap each other as layers. Thus, all changes that occur during the development and throughout the release lifecycle, remain forever in the repository, whether they are correct or incorrect. As a result, you can easily track who, when, and what has changed. Also, a source code repository allows you to create branches — copies of commit trees. They allow you to work on different parts of the project without interfering with the main code and without damaging the working part. Also, several developers can create separate branches and work independently of each other. After that, they merge their branches into the main one. At the same time, there is a mechanism for resolving conflicts when merging branches.

And here is the list of code repository software that we use at openGeeksLab. Here you will also find a comparison of source code management tools.

1. GitHub

Website: www.github.com

GitHub is considered the leading free source code repository worldwide. GitHub is good for open source code repositories. It also has a large community.

GitHub is a web-based hosting service that offers a Git repository service and allows using Git’s source code management best practices. Also, it supports Subversion (SVN) features. GitHub is considered a social network that connects issue tracking and distributed source control systems.

Used by: Google, Facebook, Airbnb, IBM, PayPal, and 1.8+ million companies worldwide.

Price: GitHub offers four paid plans — ’Developer’ for 7 USD per month, ‘Team’ for 9 USD per user/ per month, ‘Business Cloud’ for 21 USD per user/per month, ‘Enterprise’ for 21 USD per user/per month.

Pros: Cons:
Codesharing
Paid private repositories
Rules for protected branches
No free mobile app integration
Version control hosting tracks all code changes
Some users state that it’s a bit hard to work with merge conflicts
GitHub Gist service that allows share code, notes, and snippets
Beginners find it a bit difficult to learn
Free public repositories
No Jira integration
Integrations with third-party software like Slack
If the Git workflow is not configured, then unexpected conflicts may occur. In the worst case, even pieces of code may disappear
Issue tracking
Activity Feeds

2. Bitbucket

Website: www.bitbucket.org

The BitBucket source code management system is good for personal use or small startup teams.

It is a web-based hosted service that offers both the Mercurial and Git version control system. It allows creating a merge request checklist with assigned approvers and holds in-line discussions within a code snippet.

Used by: Ford, PayPal, WeWork, Pandora, Starbucks, and 1+ million teams worldwide.

Price: BitBucket offers three plans — free options for small teams up to 5 users, ‘standard’ plan (for growing teams) cost starts from 10 USD per month, ‘premium’ options (for large teams) cost starts from 25 USD per month.

Pros: Cons:
Jira and Trello integration
A cloud-based version offers users more features than a self-hosted version
Integration with the Atlassian environment
Search functions are quite limited
Integrated C1/C2
If the Git workflow is not configured, then unexpected conflicts may occur. In the worst case, even pieces of code may disappear
Free public repositories
Free private repositories up to 5 users
Issue tracking
Activity Feeds
Allows creating merge rules and adapting them to the needs of each repository
Maintaining all the code changes, managing the versions, and reverting them back
Merging existing code from subversion, Git or CodePlex sources
Easy-to-use layout
Access control and permission management

3. GitLab

Website: www.about.gitlab.com

GitLab is good for large IT companies because with minimal setup costs you can use CI/CD.
It is a web-based Git repository and DevOps management platform that offers a wiki and issue tracking features.

Used by: NASA, Buyer, SONY, Nasdaq and 100.000+ other businesses globally.

Price: GitLab has four plans — ’Free’, ‘Bronze’ for 4 USD per user per month, ‘Silver’ for 19 USD per user per month, and ‘Gold’ for 99 USD per user per month.

Pros: Cons:
Free public repositories
Not very convenient bug tracker
Access control system
No assignment management
Issue tracking
If the Git workflow is not configured, then unexpected conflicts may occur. In the worst case, even pieces of code may disappear
Activity Feeds
Integrated CI/CD
A wiki

4. Mindomo

Website: www.mindomo.com

Mindomo is good for building mind maps, structural trees, data schemas. It also contains a textual description.

We chose Mindomo because it’s necessary to visualize a project architecture through a logical connection diagram of a project’s constituent elements. Building software architecture is an important part of the development stage. Writing code is the next step. When a large project has a convenient structure Mindomo simplifies the interaction between developers. It becomes clear how and what to do when one part of a project is in progress. And you can see how this part is connected to other parts. Everyone can look through a map. The GitHub, BitBucket, or GitLab repositories are created separately for each project part.

Used by: 1+ million people worldwide

Price: Mindomo offers 4 plans — ’Free’ for 3 maps, ‘Premium’ for 36 EUR per 1 user per 6 months, ‘Professional’ for 90 EUR per 1 user and 5 guests per 6 months, ‘Team’ for 142 EUR per 5 users per 6 months.

Pros: Cons:
Available on all platforms
Creation of presentations is not available
Integrations with Google Apps, Google Drive, Dropbox, FTP, Office 365, Moodle, Canvas, Blackboard, Desire2Learn, itslearning, Schoology, etc.
Maximum number of users – 5
Collaborative mind map assignments
Adding notes, hyperlinks, attachments
Image search
Exporting maps in various formats
Uploading video and audio

5. Travis CI

Website: www.travis-ci.org

Travis CI is good for Continuous Integration.

It is a web service for building and testing software that uses GitHub as a source code repository host.

When changes are applied to the main branch, Travis CI picks up the main branch, conducts testing, and deploys on a test server.

This tool is used indirectly in apps creating — between the final product and the development.

Travis CI is ideal for automatically checking the code efficiency and bugs detecting. This is the last stage in code control, not counting manual testing.

Used by: Zendesk, Engine Yard, Heroku, BitTorrent, Moz, and 600K other users.

Price: As Travis CI states, first 100 builds are free. The service offers 4 plans — ’Bootstrap’ for 69 USD per month, ‘Startup’ for 129 USD per month, ‘Small Business’ for 249 USD per month, and ‘Premium’ for 489 USD per month.

Pros: Cons:
Continuous Integration
Some users note the high cost of subscription plans
Easy-to-use
Sync with GitHub projects

 

Here are a couple of examples of how we use these tools and how they make our work easier.

Usually, according to the code management system rules, development is conducted in several branches, not in a single branch. This GitHub project was small and required a few functions. Therefore, we involved one developer who created a single branch. After he implemented the features and fixed bugs, the branch was merged in the master branch.

Here is an example of a project mind map with data schemas visualization.

 

To wrap up

In terms of software development, it doesn’t matter what code repository software to work with — GitHub, BitBucket, or GitLab. These source code repository tools are 90% identical. GitHub is good for open source code repositories. At a price of two mugs of coffee per month, you get an unlimited private repository. BitBucket is ideal for private use or small startup teams. It offers free private repositories up to 5 users. GitLab is good for IT enterprises because of Integrated CI/CD.

About openGeeksLab

openGeeksLab is more than a team of developers. They know everything you need in IT solutions: meeting deadlines, security, and transparency of development processes. openGeekslab starts building an app from scratch with the analysis and planning of all stages so that your business will work and bring money.

 

 

Search for talent

Alexandr Lebedev

Alexandr Lebedev

Alexandr Lebedev is a Chief Technology Officer at openGeeksLab.

He has more than 10 years of experience in IT engineering. Extensive experience in Web & Mobile Development. Deep practical knowledge front-end and back-end production. Motivated team player with excellent communication skills. The expertise in working with internationally distributed teams.

Add comment

Subscribe