Why do we use Github ?

April 18, 2020

GitHub provides hosting for software development version control using Git. In 2018 the company was acquired from Microsoft. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. While working with projects, you might find it very useful to have version control and track the changes you make to your files. This allows you to go back and forth at the various stages of your project. It helps you organize and have more control over your code. Github let’s you keep the code and all the history of the changes you made with git. It’s also very helpful to work with teams and organize tasks. By creating new branches you make sure that different features are tested and implemented without influencing the master code. Creating issues is beneficial for improving your code and keeping track of problems.

In our daily work at Lucky Media we use GitHub for everything. Each project is hosted on our company profile at github.com/lucky-media, mostly in a private mode, with some projects publicly available for everyone. Our private projects include codes that are developed for different clients who are reluctant to show the code. It’s not in our hands to decide if the code should be available for public use because the client owns the rights of the solution. However, we have made publicly available some very interesting open source solutions that are beneficial for many programmers for free.

Every team member is linked to our company account and has access rights only for the projects that are tasked to them. Different members might work at the same project and accomplish different tasks. For example, one developer can focus on the front end while another is working at fixing the back end part. Each developer commits code and explains the changes made. When the feature branch is ready, the developer pushes its code to the master branch. The project manager is responsible for checking the branches before accepting a merge at the master branch.

Using Github has clearly simplified a rather complicated task for organizing a project where multiple people work on the same code. It’s also very easy for the manager to check the current work of each team member. The manager cannot falsely blame a member because all the changes are saved by the username of the one that makes the change. We also create new issues for splitting tasks to our project team members. When the tasks are completed, the code is pushed and merged into the master branch, the issue is closed.

Github also has a great feature for managing projects which allows sorting tasks, planning, tracking progress, setting trigger events, etc. We are gradually testing this feature and we haven’t yet moved the entire project management here. As soon as we start using this feature for all our projects we will give more details of its usage.