Using Approval Branching for Business Requirements

Requirements Management Blogs

When the business changes rapidly, this is a problem for a development team that has in its current release trunk both approved and unapproved features. In this blog post, Jack Low presents a solution to minimise the issues created by unapproved features in the codebase at the time of a release and contrasts this approach with popular alternatives like Feature Branching and Feature Toggling.

The previous approaches were to revert commits for unapproved features to remove them from trunk orto revert trunk to the state of the last release was done and then merge approved features in the codebase one at a time. The solution is that once a feature has been completed, tested, and approved for release, it is then merged from trunk into a separate approved branch that contains the current production code plus the new features that have been approved. The advantage of this solution is that developers do not need to worry about a piece of unapproved or unfinished code sneaking into production. This solution does not make the development workflow much more cumbersome at all. Another benefit is that the UAT environment is not frozen during the time of a release. On the negative side, this approach introduces an additional execution environment for the approved branch that requires extra maintenance and testing.

His conclusion is that “Feature Branching is unfit for our purposes, and Feature Toggling is complicated and relies too much on developers doing perfect things in a perfect world. Approval Branching eliminates many of these concerns, while preserving the current workflow of the development team. Approval Branching is powerful because it acts as an extension, rather than a transformation, of an existing process.”

Read the complete blog post on http://blog.shinetech.com/2013/01/30/supporting-fast-moving-business-requirements-using-approval-branching/

software requirements group
Articles Knowledge

Reviewing Requirements for Testability

Modern software development approaches like Agile and Scrum support a strong collaboration between all member of the software development team, software testers and business analysts included. Even if you don’t use a method like Behavior-Driven Development (BDD) or Specification by Example, checking the fact that you will be able to actually test your requirements is […]

Read More
Requirements Management Articles
Articles Knowledge

User Stories for Both Requirements and Testing

User stories are a technique taken from the agile development playbook that can easily be applied in traditional systems development and maintenance. User stories help you document needs in a structured way, from the users’ perspective. They’re a good basis for test cases, so as to support integrated requirements management and testing. In this article, […]

Read More
Requirements Management Articles
Articles Knowledge

Understanding System Analysis Models

This article is an extract of the “Complete Systems Analysis” written by James and Suzanne Robertson. It explains the basics of analysis models and emphasize that the important thing to remember is that modeling tools are complementary. Each shows one aspect of the system. Together, they make a complete working model of the system.

Read More

Copyright © 2009-2021 Martinig & Associates