Modern source control is a foundational practice in software development that encompasses best practices for version control and branching strategies. It enables teams to manage changes to codebases efficiently, ensuring that multiple developers can collaborate without conflict. By employing systems like Git, teams can track modifications, revert to previous states, and maintain a clear history of development, which is crucial for accountability and transparency.
This practice matters because it directly impacts a team’s ability to deliver value predictably and sustainably. With effective source control, teams can implement continuous integration and continuous delivery (CI/CD) pipelines, facilitating rapid feedback loops and reducing lead times. This agility allows organisations to respond swiftly to market demands and customer feedback, fostering a culture of innovation.
Moreover, modern source control supports a systemic approach to development, where branching strategies like feature branches or trunk-based development enable parallel workstreams without disrupting the main codebase. This not only enhances collaboration but also minimises technical debt, as teams can isolate and address issues more effectively. By embedding these practices into their workflows, organisations can create a resilient development environment that prioritises quality and efficiency, ultimately driving long-term success in product delivery.
The strongest work on Modern Source Control — ranked by substance, not recency. How this is ranked
Why Topic Branches Drive High-Quality Delivery
Explains how short-lived topic branches in source control improve software quality, enable modularity, speed up integration, and support …
Stop Promoting Branches
Explains why promoting code through multiple branches slows delivery, increases risk, and suggests GitHub Flow or Release Flow as simpler, …
The Hidden Costs of Supporting Multiple Versions in Production
Maintaining multiple production versions increases bugs, merge conflicts, and technical debt, making development harder and less efficient …
Avoid the pick-n-mix branching anti-pattern
Explains the risks of the pick-n-mix branching anti-pattern in source control, its impact on code quality, and recommends feature branching …
Getting started with a modern source control system and DevOps
Learn key practices for adopting modern source control and DevOps, including automation, release pipelines, and team collaboration to …
Best Branching Strategies for Development Teams Explained
Explains why environment-based branching slows development, and recommends using feature flags and progressive rollouts for simpler, faster, …
Too many teams overcomplicate their branching strategies
Learn why simple branching strategies like GitHub Flow and Release Flow help teams deliver faster, reduce risk, and avoid the pitfalls of …
Guidance - Branching for each Sprint
Explains how using a separate version control branch for each sprint in Scrum improves code stability, release management, and team …
Guidance: A Branching strategy for Scrum Teams
Explains an effective branching strategy for Scrum teams, covering best practices, common pitfalls, and step-by-step guidance for managing …
Why Topic Branches Drive High-Quality Delivery
Explains how short-lived topic branches in source control improve software quality, enable modularity, speed up integration, and support …
Stop Promoting Branches
Explains why promoting code through multiple branches slows delivery, increases risk, and suggests GitHub Flow or Release Flow as simpler, …
Avoid the pick-n-mix branching anti-pattern
Explains the risks of the pick-n-mix branching anti-pattern in source control, its impact on code quality, and recommends feature branching …
Getting started with a modern source control system and DevOps
Learn key practices for adopting modern source control and DevOps, including automation, release pipelines, and team collaboration to …
Open-source with VSTS or TFS and Github for better DevOps
Learn how to automate code synchronisation between VSTS/TFS and GitHub, enabling seamless DevOps workflows for open-source projects with …
Branch Policies for TFVC
Explains how to apply and manage branch policies in TFVC using regular expressions, enabling code reviews, branch locks, and work item …
Create a Build vNext build definition
Step-by-step guide to creating a Build vNext build definition in Visual Studio Online, covering task setup, options, triggers, variables, …
Bug in the Visual Studio Git integration that results in a merge conflict
Explains a Visual Studio Git bug causing merge conflicts during pulls with local commits, its workaround, and best practices for managing …
Migrating source from Perforce to Git on VSO
Step-by-step guide to migrating source code from Perforce to Git on VSO, covering repository setup, dependency management, build processes, …
18 resources, newest first
Why Topic Branches Drive High-Quality Delivery
Explains how short-lived topic branches in source control improve software quality, enable modularity, speed up integration, and support …
Best Branching Strategies for Development Teams Explained
Explains why environment-based branching slows development, and recommends using feature flags and progressive rollouts for simpler, faster, …
Git Flow should have died years ago
Explains why Git Flow is outdated for modern software, highlighting its drawbacks and recommending simpler workflows like GitHub Flow for …
The Hidden Costs of Supporting Multiple Versions in Production
Maintaining multiple production versions increases bugs, merge conflicts, and technical debt, making development harder and less efficient …
Too many teams overcomplicate their branching strategies
Learn why simple branching strategies like GitHub Flow and Release Flow help teams deliver faster, reduce risk, and avoid the pitfalls of …
Stop Promoting Branches
Explains why promoting code through multiple branches slows delivery, increases risk, and suggests GitHub Flow or Release Flow as simpler, …
Getting started with a modern source control system and DevOps
Learn key practices for adopting modern source control and DevOps, including automation, release pipelines, and team collaboration to …
Open-source with VSTS or TFS and Github for better DevOps
Learn how to automate code synchronisation between VSTS/TFS and GitHub, enabling seamless DevOps workflows for open-source projects with …
Branch Policies for TFVC
Explains how to apply and manage branch policies in TFVC using regular expressions, enabling code reviews, branch locks, and work item …
Create a Build vNext build definition
Step-by-step guide to creating a Build vNext build definition in Visual Studio Online, covering task setup, options, triggers, variables, …
Bug in the Visual Studio Git integration that results in a merge conflict
Explains a Visual Studio Git bug causing merge conflicts during pulls with local commits, its workaround, and best practices for managing …
Migrating source from Perforce to Git on VSO
Step-by-step guide to migrating source code from Perforce to Git on VSO, covering repository setup, dependency management, build processes, …
Avoid the pick-n-mix branching anti-pattern
Explains the risks of the pick-n-mix branching anti-pattern in source control, its impact on code quality, and recommends feature branching …
TFS Integration Tools - Issue: TF14009: Cannot merge source into target because the target is underneath source
Explains the TF14009 error in TFS when merging a source into a subfolder of itself, its causes during migration, and practical workarounds …
Syncing many Dynamics AX instances to a single TFS 2010 Team Project
Explains how to configure multiple Dynamics AX instances to sync with a single TFS 2010 Team Project, streamlining source control and work …
Guidance: How to layout you files for an Ideal Solution
Learn best practices for organising solution and project files in version control, including folder structure, naming conventions, and …
Guidance: A Branching strategy for Scrum Teams
Explains an effective branching strategy for Scrum teams, covering best practices, common pitfalls, and step-by-step guidance for managing …
Guidance - Branching for each Sprint
Explains how using a separate version control branch for each sprint in Scrum improves code stability, release management, and team …