What can your organization do to realize the benefits of CI? Certainly, you will need to adopt automation to build, package, and deploy your software. However, you will also need to promote a culture in your organization of intolerance for lurking defects.
Your management team must learn to demand the behaviors that actually deliver value to your business. Some behaviors tend to mask inevitable problems that will be even more expensive to address later. An example of such behaviors is taking shortcuts to meet calendar deadlines. Scrum calls these hidden details “technical debt”, because those hidden issues must be repaid eventually, generally with an accumulated interest the longer they are left to fester. The entire organization must understand and “buy into” the mindset that software is not “done” until it’s “really done”, and promote practices that ensure that “really done” includes continually testing, detecting defect, and repairing them as the software is incrementally elaborated.
Your development team will need to learn practices where all change receives its due visibility, and no changes are delivered to the team with defects that could/should have been detected in an individual’s own workspace. For teams practicing Scrum in its strictest sense, this means developing an expectation that no code will get committed to the repository without another team member inspecting the code to look for defects and potential maintenance issues— another tactic in reducing “technical debt”.
Teams larger than the Scrum-recommended size of 7 +/- 2 would do well to incorporate more formal methods to manage the source code base. Formal Software Configuration Management (SCM) rigor doesn’t necessarily require red tape, bureaucracy, and delays, but it may be necessary to get some coaching for your team to practice good SCM efficiently. Ensuring points of accountability and enforcing reasonable quality gates are essential to a high pass rate on your builds and to prevent the team’s wasting time repairing defects that should never have occurred in the first place.
The team must learn to place a high premium on testability, even requiring that the test cases be automated before committing the source code changes to the repository. Testers—whether in a Scrum development team or in a separate organization— must learn not to perform repetitive features manually, but to automate them.
CMI can help your organization undertake the transformation to radically shorten your time to market with enhanced product quality using Continuous Integration. After your initial investment in your people, processes, and tools, you will recoup a recurring return on your investment for many development cycles to come. Contact us now for further details.