What's the number one software development practice needed by organizations committed to agile delivery of application releases that delight customers? My answer is version control with branching capabilities and tagging releases.
I've put this in a simple free tutorial that you can receive. Just start by signing up, authenticate your email, and you'll receive a copy of tutorial.
Is it number one? No need to debate whether version control is number one, top five etc. Most developers, testers, managers, and CTO will agree that version control practices are important to enable collaboration between developers, foster reliable application releases, establish process for different types of development tasks, and key to scaling the development practice.
Branching enables Agile Development
I've worked with several development teams the last few months that are using GitHub but hadn't defined a practice for branching or tagging releases. How do you create a handoff from developers to QA? How do you facilitate a hotfix in production? How should you support larger feature development in parallel to small enhancements? How do you track releases and enable rollbacks?
While some of these procedures are straightforward, CTO and development managers often lack documentation to help large teams practice these steps in uniform ways. What results is a mess of branches, some developers branching while others not, formal releases but informal hotfixes etc.
Then there are some strategic questions:
- When should you implement a hotfix and what is the impact of taking on this emergency release
- When developing a large feature, should you branch once for main feature or create multiple branches for each components?
- How should QA teams handle feature and hotfix branches?
Tutorial: Branching with Github
I've taken steps to answer some of these questions in a new Driving Digital tutorial, Branching with GitHub. It lays out steps to do many of the basic steps. It outlines roles and responsibilities showing who should branch, who generates pull requests, who merges and who tags releases. Lastly, it illustrates some of the tradeoffs when considering hotfixes and feature branching.
No comments:
Post a Comment
Comments on this blog are moderated and we do not accept comments that have links to other websites.