Information Technology Reference
In-Depth Information
controlled bythe system administration team. This team uses the release candidate to build
abetaenvironment;thebetaenvironmentisusedtoverifythatthesoftwareworks.Product
management then gets involved and verifies that the software is functioning as expected.
Once the release is approved, the system administrators use it to upgrade the live produc-
tion environment.
There are many problems with the waterfall approach. First, both QA and operations
build their own environments, each using different methods. This means there is a duplica-
tionofeffort,witheachteamdevelopingoverlappingtools.Second,becausetheQAenvir-
onmentisbuiltusingdifferentmethods,itisnotavalidtestofhowthesystemwillworkin
production. The production environment might not have the same OS release, host config-
uration, or supporting packages. As a consequence, the testing is incomplete. It also makes
it difficult for developers to reproduce bugs found in QA.
Another problem with the waterfall methodology is that because the handoff between
phases is also a handoff between organizations, the discovery of bugs or other problems
can become a game of finger pointing. Is the software not working in production because
developers didn't do their job, or did the problem arise because operations didn't build the
test environment correctly? Why find out the truth when it is easier to create a political
battle and see who can shift blame the fastest?
The DevOps methodology has many benefits. Rather than the two phases creating a di-
viding wall between two organizations, the developers and operations staff work collabor-
atively on each phase. The testing and production environments are built using the same
tools, so testing is more accurate. The reuse of tools is more efficient and means that the
improvements made to the tools benefit all. Because both teams have a shared responsibil-
ity for the entire process, cooperation trumps finger pointing.
The DevOps methodology is also more simple. There are just two distinct phases, each
with well-defined concerns, inputs, and outputs.
9.2 The Virtuous Cycle of Quality
Good flow creates a virtuous cycle of quality. Rigorous testing creates a solid foundation
that results in better releases. This improves confidence, which in turn encourages faster
and better releases. Because they are smaller releases, testing is improved. The cycle then
repeats.
Whendiscussingservicedelivery,peopleoftenfocusonhowfasttheirreleasecyclehas
become. When someone brags about improving cycle time from six weeks to an hour, they
are missing the point.
What's really important is confidence in the quality of the final product. Improved code
management, speed, packaging, and cycle time are all means, not ends. Confidence is a
Search WWH ::




Custom Search