Goal:

Improve developers’ productivity and software quality by creating a defined build and integration process as a part of BrokerTec? development cycle

Means:

Eliminate as many environment related issues as possible. (SSH tunnel, project settings, etc)
Eliminate as many build issues as possible (consistent build in a clean room build environment)
Early issue detection (continuous build, unit testing)

Improved software design (refactoring)

Elements:

  1. Augment and extend current build script into automated cleanroom build process.
  2. Migrate all project artifacts, source code, and its history into Domestic Single Source Repository
  3. Establish a continuous integration process involving staged builds (commit, pipeline, nightly builds) involving XUnit and module tests
  4. Establish project tracking facilities (real-time development status, milestone tracking , reports, wiki collaboration board, auto feature lists, project-wide search and annotations)

A defined build process is a critical part of any development cycle that closes the gap between the development, integration, test, and production environment.

1. Automated Cleanroom Build Process

Benefits of Cleanroom include significant improvements in correctness, reliability, and understandability. An automated cleanroom build process will translate into a reduction in field-experienced product failures, reduced cycle time, ease of maintenance, and longer product life. By detecting errors as early as possible, Cleanroom reduces the cost of errors during development and the incidence of failures during operation; thus the overall life cycle cost of software built under Cleanroom can be expected to be far lower.

2. Source Repository

Domestic Single Source Repository will contain all project artifacts, including the source code, the build environment and IDE configuration files, as well as off-line collaboration content; excluding heavy and complicated software such as operating system, Java development environment, C/C++ compiler environment, IDE, etc. This will permit rapid build environment deployment and ensure the consistency of the build. Domesticated repository will decrease access time and eliminate tunneling overhead, while bringing us to the industry standards in terms of security audits and effective backup.

3. Continuous Integration Process

Integration may be a long and unpredictable process. However, the fundamental benefit of continuous integration is that it removes sessions where developers are engaged in diff-debugging while applying patches that conflict with one another. Often integration bugs can be inserted weeks or months before they first manifest themselves. Pipeline staged builds allow to treat integration as a non-event. Any individual developer's work is only a few hours away from a shared project state and can be integrated back into that state in minutes. Any integration errors are discovered immediately and can be fixed immediately.

4. Project Tracking Facilities

Tracking facilities should provide a minimalistic web-based interface to the project's road map, milestones status and unit test's results. As well as a fully integrated web interface for the Source repository, that will allow to browse source code, annotations, diffs, and associated reports. The collaboration module should help developers involved in a common task achieve their goals and have immediate access to all project resources. Tracking software will formalize and govern 4 of 7 SDLC development steps(Application/Milestone Development, Test Case Creation, Application Testing, System/Performance testing) and prepares interim releases for Test Ready (TRR), Deployment preparation Ready, and Release Ready reviews.

Success criteria:

Reduced production issue count
Reduced time from opening to resolution
Reduced issue count per K-line of changes
Reduced QA time per K-line of changes

References

http://intranet.ebs.com/sdlc/content/Artifacts/artifacts.html
http://releasemanagement.wordpress.com/tag/general-rm-stuff/
http://en.wikipedia.org/wiki/Release_Management
http://www.martinfowler.com/articles/continuousIntegration.html Continuous Integration by Martin Fowler
http://www.sei.cmu.edu/str/descriptions/cleanroom.html Carnegie Mellon Institute of Software Design, Clean Room Builds