For years I’ve been working with many different teams using various workflows and version control systems. There is a great overview of different workflows (Centralized Workflow, Feature Branch Workflow, Gitflow Workflow and Forking Workflow) on Atlassian website. My experience is that Centralized Workflow is mostly used by very small teams working on small projects. The projects are usually developed using the Waterfall model. The independent requirements of the project are divided among developers and they are followed through the development stage. Developers use some of the core application layers (e.g. data layer), but other than that, most of the code a developer writes is not seen by other developers. The process is very simplified and there is not much overhead cost as in other workflow models, but it can have flaws in lower software quality due to the lack of code review.
The model that suits me the best is the Forking workflow, that is in general GitFlow with Code Review via Pull Requests. There is a great article about GitFlow workflow here and you can read more about using Pull Request on GitHub website. In general Forking workflow is mostly used on open source projects, but also by teams with many developers on medium size and large projects developed using the Agile/Scrum methodology. With code review, it is assured that each part of released code is seen by at least two developers. It is somewhat time consuming and many teams do not employ this practice, but the overall software quality is definitely increased.
If you liked this blog post I’d appreciate if you followed me on Twitter