This article is republished from my original GitHub's transformation from Git repo site to enterprise development platform post in LinkedIn.
When most people think of software development, they think of a developer or team writing code for an application and publishing it. In other words "plan, build, test and deploy" all in that order. Having worked on both sides of the table being the customer asking for a tool and being part of the development team offering solutions I have come to the conclusion there are very few projects that are actually that simple.
Learning the value of tools for communal projects
There were days before the word agile had crossed my lips that I thought engineering university group written assignments were terribly structured. Each member taking a section of a report and submitting it back to the individual who took it upon themselves to coalesce the content into a Frankensteinian paper and write a coherent review. It wasn't until my 3rd year of university when groups were dispersed across the country that these written assignments became easier. Why? Because we began using resources like Google Docs and understanding the benefit of track changes in MS Word.
Being able to see who was adding changes in Google Docs or to merge versions of sections being worked on at the same time was a game changer. Written assignments began to seem less like collections of work and more cohesive. Who knew working further apart would bring a project together. These tools were the beginning of what has become a fruitful journey from individual work tasks to communal projects.
My 360 degree journey back to GitHub
My first introduction in the IT world to version control was GitHub and by extension Git. At first, I found the site to be a convenient way to store and share projects. Then developing websites, I found it a great way to track component changes with comments. It also made rolling back to any waypoint a breeze.
The next stop on my journey through version control came in the form of Atlassian's Bitbucket. It was great to be part of a team using good version control. The benefits from good implementation became quite evident in an agile team as team members revisited features. The change history of every file in each commit enabled traceability that otherwise would have required extensive detailed documentation. Merge conflicts were simple to resolve. On committing a conflicting branch, the files were showed side by side and the developers could resolve them in minutes. At the same time the Jira platform was being used to manage projects, allowing teams to track items through their workflow. Tracking tickets across a digital Kanban board accessible by all team members provided clarity that everyone appreciated.
Moving out of that team I joined another that was using Azure DevOps (ADO) to manage their projects. With ADO I found a platform that merged project management and version control tools. Reading Kanban tickets I could see the tagged source code. ADO does come with its own version of a repository, but a brilliant utility enables almost any Git version control repository can be connected with ease. Azure Boards presented the most comprehensive Kanban boards I have seen. With ADO bringing integrated pipelines into the mix, the boards take on a whole new life. Tickets can be automatically moved between columns on a Kanban board based on event triggers. This can highlight defects as well as ensuring accurate project tracking.
After years of working with all these different tools I have returned to GitHub with some new repos. After spending time getting back into it, I’ve been surprised by how the platform has evolved.
GitHub today as an enterprise development platform
GitHub has come a long way from what I remember as an online Git repo. It’s become an entire development platform allowing teams to share code, comment, review and append committed code as well as track project and task progress, host knowledge bases and automate DevOps pipelines.
To me, GitHub has always been synonymous with Git. Thanks to the large developer community GitHub has been able hold onto this title despite the emergence of many different online distributed version control competitors.
Various GitHub features like dynamic peer code review in pull requests and simplified branching structures coupled with branching merge rules keep GitHub at the precipice of the version control market.
More and more we see GitHub enter the realm of enterprise software like Atlassian and Azure DevOps. For teams already using GitHub as a repo there are growing advantages to migrating to GitHub as a more rounded development platform.
GitHub Boards offers all the now staple functions of a typical Kanban board but in addition they can be easily automated to move cards from column to column when events occur. This can save a developer the hassle of updating the board but also ensures the board accurately reflects the current state of the project.
Tools like Azure DevOps pipelines, Jenkins and Bitbucket have been supplying CI/CD components which have set them apart from GitHub and other version control tools. Since November GitHub has entered this space with their actions based workflows. Actions supports triggering from a whole range of activities that occur on GitHub, such as forking the repo, creating an issue, or creating a new release. These can trigger builds, tests and interact with project management components.
Currently I work mostly on projects utilising ADO and GitHub, but given Microsoft's 2018 purchase of GitHub it will be fascinating to watch the continued evolution on this platform.
My journey through version control and DevOps tools has been laden with many different venders but the most important thing about using them is that you start. Whether you're a start-up or a multi-national these tools are becoming instrumental in keeping teams and projects on track.
Equinox IT is New Zealand's only verified GitHub partner and is also a Microsoft Gold Partner for the DevOps competency.
Fiachra Sherry is a Technical Specialist, based in Equinox IT's Wellington, New Zealand office.