Skip to content

Latest commit

 

History

History
27 lines (17 loc) · 5.2 KB

advantages.md

File metadata and controls

27 lines (17 loc) · 5.2 KB

Why GitHub?

For large enterprise development teams, or for spead out open source software projects, GitHub brings some major advantages

Ory is a GitHub native company. From Day 1, all product development is in GitHub, and even a few parts for instance the design works we do in Figma, also works in GitHub. In 2018, Aeneas and Thomas, Ory cofounders , gave a presentation in San Francisco about how to use GitHub in companies, and how to use the open source development approach in any company.

Background

One of the cases they used was Deutsche Boerse Group (DBG). With over 2500 people in the product development organisation, DBG is one of Germany's largest software companies. In August 2016, based partly on the work at Ory, Thomas and Aeneas introduced GitHub as the central repository for code created during product development. Every developer switched over from SVN or other solutions such as Source Safe,to GitHub Enterprise. At the end of 2017 about 1,700 people were connected in GitHub. Major benefits are team coordination, better collaboration, direct communication, unified version control, devops, and the adoption of agile software development practices leading to speed, higher quality and new feature innovation.

Coordination

Teams that are physically collocated have some level of awareness of each other’s activities because of frequent opportunities for interaction. But, increasingly more team members operate at different places and in different time zones. In GitHub, repositories, issues, pull requests and even discussions help increase communication. Everything is time stamped and geo-coordinated. For example in DBG with GitHub Enterprise all but the most sensitive repositories are internally public so anyone can take a look into products, quickly catch up on what happened and contribute.

Whether inside an organisaiton, or in an open source software project users may create profiles that can be populated with identifying information including a gravatar (an image representing them throughout the site), their name, email address, organization, location, and webpage. A profile is visible to other users and displays all the repositories that person is working on and a list of their latest activities on the site.

Collaboration and communication

One of GitHub's main benefits is using it as a collaborative tool. People can add team members, look at each other’s code, open up pull requests and develop new ways of working together. GitHub makes it very easy to interact right away: anyone can create a new branch and send a pull request for fixes and enhancements.

Issues can be used for discussing any kinds of details around the project. This can be a bug found, a simple code improvement request or any other problem requiring brainstorming, discussion or planning. Sales and marketing can also give feedback directly to developers without going through a lengthy administrative process.

For DBG GitHub turned out to be a tremendous instrument for getting a broader group of people to communicate and to work together. GitHub enables a culture where people, robots, or automated services, regardless of title or background, work together to imagine, develop, and deploy and operate a system.

Version control and GitHub flow

The last thing you want at the end of the day is version proliferation with multiple, conflicting versions of your code or document floating around on Slack, email or elsewhere. What makes GitHub so powerful is its version control system as well as the GitHub flow:

There is one main branch. Updates are done on separate branches off of main. When an update is ready to be merged in, a 'pull request' is created. The pull request is reviewed by a team member, noting any changes that should be made. When the pull request is approved, the branch is merged into master. All of this is done through a simple web interface with optional email notifications at each step. There can be many pull requests and different versions of the code/document floating around simultaneously. Eventually everything ends up in the master branch. Although this is not very common yet, GitHub can actually be used for any types of files.

Adopting modern software development practices

Most companies today are adopting modern development practices with small teams working in agile sprints, iterating quickly and releasing code in weeks as opposed to months and years. The result has been shorter time to market, greater agility, more efficient use of resources, among other benefits. But, software development can greatly differ depending upon the various teams. GitHub provides tested, proven pathways and ensures the adoption of healthy and state of the art working practices and operations at a mature, high-performing engineering level. Hereby, GitHub lets developers use the tools they like across the development process with support for popular integrated development environment (IDE), continuous integration tools, and hundreds of third party apps and services. As a very important (side) effect, businesses benefit of by way faster software development. And, because code is peer reviewed in GitHub, that software should be more reliable, which also benefits end users. Not to be neglected, GitHub automates boring, mondane tasks.