Trunk Based Development

Check out this great Dzone article on Trunk Based Development.
Trunk Based Development is a style of software development in which all developers commit their changes to a single shared trunk in source control, and every commit yields a production-ready build. It is a prerequisite for Continuous Delivery as it ensures that all code is continuously integrated into a single workstream, that developers always work against the latest code, and that merge/integration pain is minimised. It is important to note that Trunk Based Development does not prohibit branching. Trunk Based Development is compatible with a Release Branching strategy of short-lived release branches that are used for post-development defect fixes. That Release Branching strategy might be optimistic and defer branch creation until a defect occurs, or be pessimistic and immediately incur branch creation. For example, consider an application developed using Trunk Based Development. The most recent commits to trunk were source revisions a and b which yielded application versions 610 and 611 respectively, and version 610 is intended to be the next production release.
In other words, Trunk Based Development is a version control strategy in which developers commit their changes to the shared trunk of a source code repository with minimal branching.  Also see this Thoughtworks article on trunk based development.
It is part of the continuous delivery movement that many businesses are switching to.  Here a great article by Atlassian on the Business Case for Continuous Delivery.  “That’s why software development is moving towards continuity. The recent emphasis on continuous integration, built-in testing, constant monitoring, and analytics feedback all point toward an overall trend in the software industry: increasing the ability to react. As organizations explore what these changes mean for them, they invariably discover continuous delivery, commonly known as CD.”
More Continuous Delivery Resources:
Getting Started:
Software Tools for Implementing Trunk Based Development
  • GitHub
    • Version control and branching
  • BitBucket
    • Version control and branching
  • LaunchDarkly
    • Feature flag management / production testing
  • CircleCI
    • Automated build and deploy to production