SoftwareOne logo

Azure DevOps vs GitHub: which tool is better?

SoftwareOne blog editorial team
Blog Editorial Team
Blue and red light shining on a dark background

One vendor, two services. Which one will prevail? Where to invest? These are the questions raised by many since Microsoft has acquired GitHub in 2018. Azure DevOps has come a long way since on-premises TFS, has a strong customer base, and has an established place in the Enterprise world. GitHub is the world's darling and the go-to service for most Open Source projects and initiatives, but comes from a completely different place and focus (more on code, Open Source, less Enterprise). Both tools let you deliver for the cloud. Both have their good and bad sides. Both have different philosophies and workflows. What will the future bring in this area? We don't know, but directions are getting clear. Here's our take and how we look at it for SoftwareOne and our clients, with actionable hints for those who are using one of them or planning to do it soon. First,a disclaimer. SoftwareOne is a well-established Microsoft partner, but none of the things covered in the article are internal knowledge or based on NDA-restricted materials. Even if we had access to such knowledge, we can't share it here. We're sure you understand. With that… let’s begin.

Why did Microsoft buy GitHub?

First of all, why did Microsoft buy GitHub when they had Azure DevOps already? Again - our point of view with no insider knowledge. You don't have to have a crystal ball and special powers to see that Open Source has been thriving in recent years. Microsoft saw it as well and instead of fighting with it (remember Steve B.?), decided to embrace it (go Satya, go!) GitHub grew on the Open Source growth trend and the community around it. Microsoft has a choice - try to convince all GitHub users that Azure DevOps is a better choice or take GitHub and make it grown-up with Enterprise features. Apply your common sense here - which of those two tasks is easier (even with the pile of cash paid for GitHub)?Besides that, GitHub is a great sensing machine for Microsoft to know what people are working on and developing, and what are the tools and projects out there. It wasn't the main reason but nonetheless, it is a great asset for them. So they hopped on the opportunity and grabbed it before the competition did (one for Microsoft, zero for competition).

Open Source takes over the world

What is the driving force in this shift? Open source is still growing. A year ago, almost to the day, we wrote about Microsoft embracing open source officially and wholeheartedly. Key points:

  1. The OS wars are over. For cloud providers, the operating system is no longer relevant – as long as it’s used in their cloud.
  2. With open source, you can iterate faster. For businesses to not get left behind, they need to stay ahead. And to do that, you need to be able to adapt quickly.
  3. Collaboration is good for retaining talent. The best people want to develop their skills and help others do the same. If you give them avenues to do that (with open source), they’re more likely to get better and stick around.
  4. Know what you’re getting into. Open source can be super helpful but also super complicated. You don’t want to get stuck with a limited license or messed-up dependencies. Do your research, preferably with your legal team.
  5. Open source is part of the cloud. Prepare for it – it’s not going away.

What’s the main takeaway? Open source is not going anywhere. In fact, it will only be growing in importance.

What is GitHub?

GitHub is a darling of Open Source communities but is used also by many enterprises. It has a great set of features especially around source control but also delivering CI/CD capabilities and integrations. GitHub has a minimalistic user interface, well-known to all developers, especially in the Open Source community. Minimalistic doesn't mean "simple" - it takes a while to adjust to it but it also provides a lot of integration points, used by the community to build tools around it. With GitHub, you can craft a more customised workflow for your team if you spend time on it. To deliver a full set of features for the entire product development lifecycle, together with requirements management and support, you will most likely need some 3rd party tools and work on integration between them and your enterprise environment. GitHub's important, non-technical feature is its familiarity among the developer community and the community around it. It might be an important factor in attracting people to work on your projects. Familiarity doesn't mean that there is no learning curve for new users. For sharing your work in an open source way and learning new things, GitHub is the place to go. If you want to attract the best talent or build a community around your projects, it's where you want to be.

What is Azure DevOps?

Sometimes called "the jack of all trades", Azure DevOps provides fully unified and stacked on top of each other set of services for development workflow. Azure DevOps has the advantage of being designed as a whole set of services with integration with the Microsoft stack from the beginning. You will find it extremely easy to manage in a Microsoft-based environment, starting from license management, security, and access control, through integration with collaboration tools like Microsoft Teams, to reporting and analytical tools like Power BI. Being designed as a whole set of tools, it delivers the best experience when used as a whole and central point of development efforts. Its interface is focused on a browser experience but it also delivers for developers a familiar experience of work with source code in Git-style .Our favourite part of Azure DevOps are Azure DevOps Boards and Backlog management features focused on end-to-end product development, from the requirement to deployed feature and support. Being an established enterprise tool doesn't mean that there is no community around it. You will find a vibrant community working with Azure DevOps and sharing its use and examples among Azure users. Check out this article by Thomas Naunheim on enforcing Conditional Access with Azure DevOps. It shows Azure DevOps usage outside of the realm of pure code development to manage Azure AD environment using it.

Azure DevOps vs. GitHub: which to focus on?

We've decided to use a picture instead of a written verdict. As they say - sometimes a picture is worth a thousand words. Here is a picture from Microsoft's DevOps Dojo (specific Microsoft offering) article:

What we see here is GitHub all the way around, and it is also my current judgment that in the long term, GitHub is a solution to focus on from Microsoft's tools for development and delivering CI/CD pipeline to the cloud. Why lean this way? Again - no insider knowledge, just observing the environment and where the focus is:

  • GitHub has just launched Codespaces. With it, you can set up your development environment in seconds by running it on VMs in the cloud. This will make it even easier to use the latest features as they are introduced.
  • Recently, we got assisted coding with CoPilot. Now the system it’s based on, OpenAI Codex, can be built upon via API, bringing the era of assisted programming even faster than expected.
  • GitHub is getting enterprise options and catching up with DevOps in terms of product workflow management through GitHub Enterprise and GitHub One options (check out the video A lap around GitHub One).

When you look at the whole landscape, even if Azure DevOps is not an abandoned ship (not at all - more on this in a moment), GitHub is where innovation is happening, and where the centre of DevOps gravity is shifting in (not only) Microsoft's ecosystem. Does it mean you should abandon Azure DevOps and switch to GitHub right away? Is it a "run away and scream for your life" moment of ADO? Not at all.

What to do when you are an Azure DevOps user?

First of all - DON'T PANIC. Azure DevOps (ADO) is not going away anytime soon and will get plenty of love. It is one of the undervalued things about Microsoft - its long-term commitment to the lifecycle of its software and providing new features and support for its customers. If you are an existing Azure DevOps user:

  • Keep using it and get value out of your current investment - nothing will stop working and you will get new features for it in the future.
  • If you are not there already, start to incorporate Git code repository and source management practices in your projects. You are most likely already there but just in case, we want to say it.
  • Give your teams space to experiment and learn with GitHub. Establish a public repository and share your code there. Get one of your existing pipelines and projects and try to re-implement it on GitHub to learn its flow.

Special note for Azure DevOps Server users (on-premises version of ADO) - we would strongly consider, if it is possible in your situation (we know it isn't always feasible), starting to move towards GitHub or Azure DevOps online service.

What to do if you have to choose between Azure DevOps and GitHub now?

If you are entering the space and you haven't chosen the tooling for your DevOps practice yet, do your due diligence and map the required functions to the tools you already have and what Azure DevOps and GitHub provide:

  • Azure DevOps delivers a more unified, end-to-end collaboration scenario for enterprises. It doesn't mean you can't do it with GitHub but you will likely need some additional tools, especially for product management and work planning (Azure Boards and entire flow is really good in there) and integration
  • GitHub is more familiar to developers. It is likely your developers already had exposure to it whereas Azure DevOps will be new to them (especially true for younger developers).
  • Azure DevOps and GitHub have a bit different approaches towards building CI/CD pipelines. Where in Azure DevOps you will find components to do specific actions, in GitHub a lot of things will fall back to "use GitHub Actions". It isn't bad, it delivers flexibility but requires a different approach to do it.

For a completely fresh implementation, if some product delivery management tools are already in place, I would lean toward GitHub as a first choice, but Azure DevOps is a great option as well and is a future-proof choice for years ahead (in terms of support and being sprinkled with product group love). As in many cases, the truly great solution might be in the middle. Azure DevOps provides a great set of features and integration between them. One of those integrations is GitHub, so you may use Azure DevOps collaboration tools and GitHub for code repository and CI/CD delivery, getting the best out of both worlds. So, what's the answer to the question? Should you go with one or the other? Which one is better? Microsoft began to integrate GitHub within Azure DevOps, rather than the other way around. Whichever name sticks, it looks like at least the features are here to stay. Still, for many businesses, and likely for Microsoft itself, maintaining two similar tools is not sustainable in the long run. We could go into a detailed comparison but you’ll find plenty of that on the internet. If you’d like more help deciding which direction to go in, here are some useful sources:

In our view – Open Source is the future, and this is why eventually, GitHub will be the frontrunner. With that being said, Azure DevOps is being actively developed and it will last for a while yet (see the Azure DevOps feature timeline).

Author

SoftwareOne blog editorial team

Blog Editorial Team

We analyse the latest IT trends and industry-relevant innovations to keep you up-to-date with the latest technology.