User Tools

Site Tools


Balanced Iterative Framework

We present a collaborative and iterative software development framework, with the goal of achieving a balance between top-down and agile approaches. This approach is largely based on scalable projects such as GNU and LLVM, which have achieved a high level of success with distributed development teams working on highly complex compiler-based infrastructures.

Comparison with agile and top-down approaches

Agile approaches favor Balanced approach Top-down approaches favor
Individuals and interactions Processes and tools
Working software Comprehensive documentation
Customer collaboration Contract negotiation
Responding to change Following a plan


Iterative Development

The framework focuses on rapid delivery of increasingly stable releases, until all principals agree that a suitable level of stability has been obtained in that particular version.

The iterations comprising a stable release can be likened to a “sprint” in the Scrum framework.


Each product has its features and bug-fixes divided into versions. These are tracked in bugzilla across multiple products and releases. This provides unified management and chronology through Evaluation, Design, Development, Implementation, and Testing.


A release is defined by the expected stability of a particular iteration:

  • alpha is the least stable release for internal testing purposes prior to beta release.
  • beta releases are designed to be tested externally by a closed group of testers.
  • stable or “live” releases are made when alpha and beta testing has completed.


As the development process iterates during alpha and beta testing, each iteration is given a unique revision by the subversion repository. These revisions are fixed snapshots that can’t be altered, so it’s always possible to look back and see exactly what has changed between any two revisions.

Subversion facilitates the management of multiple products with multiple versions and multiple iterations ongoing at one time. It also underpins the automated build, testing and release processes.


Like other Agile approaches, this framework emphasizes test driven development, where the goal is to automate as much of the testing process as possible.

The natural corollary to testing is a bug reporting system, which bugzilla provides in addition to tracking feature requests.

Automated Build, Test and Release

The goal of the automated build and test system is to enable rapid continuous delivery by automating the building, testing and release of ESCP and N-Mesh on all platforms.

→

See also

methodology.txt · Last modified: 2016/08/31 13:16 by aaron

[ Home ] [ Subversion ] [ Bugzilla ]