GitHub is our primary code repository for the company's web app. It allows us to effectively collaborate as a team on our codebase, while providing an easy system to track and manage changes. GitHub essentially serves as the Google Docs for our code. Specifically, it allows multiple software engineers to work on the same code in a separate environment that protects the primary codebase and is only merged in when it's working as expected. This allows for all kinds of collaboration, including with remote workers all over the world.
Pros
GitHub's ease of use is one of its biggest strengths. The site is structured around Git, a code version control system, which is used by developers around the world. GitHub's UI is minimal and allows you to focus on what's important, whether it be your branches, pull requests, or issues.
GitHub's integrations and tools are fairly ubiquitous. You'll likely find an integration with GitHub on every development tool with integrations. This makes it easy to incorporate in whatever workflow you may have.
GitHub is incredibly reliable. I don't remember the last time it was down for any significant period of time. This is essential for companies that rely on it for their daily operations.
Cons
While GitHub's spartan UI gets the job done and doesn't distract, it has some room for improvement to make things even more intuitive, especially for newer users. There's a certain amount of learning curve that could be made less steep.
There's so much you can do with Github that it's fairly common for a user to possibly only use a small fraction of what GitHub can do. Improving Github's discovery features would help surface some of the non-essential features that are quite useful.
Likelihood to Recommend
GitHub is uniquely suited in situations where distributed teams need to collaborate on the same codebase. It allows non-destructive work in the form of branches that allow you to merge working code when it's ready. Different software teams can work on different parts of the codebase and each have an approver that serves as the gatekeeper for the merged code. This protects the primary codebase from non-approved or buggy code.
There aren't many situations where you should use GitHub. Even a single programmer would benefit from using it. Furthermore, it has other uses related to issue tracking and documentation that increase its value.