  When the IceCube experiment started serious software development it needed a
development environment in which both its developers and clients could work and
that would encourage and support a good software development process. Some of
the key features that IceCube wanted in such a environment were: the separation
of the configuration and build tools; inclusion of an issue tracking system;
support for the Unified Change Model; support for unit testing; and support for
continuous building. No single, affordable, off the shelf, environment offered
all these features. However there are many open source tools that address
subsets of these feature, therefore IceCube set about selecting those tools
which it could use in developing its own environment and adding its own tools
where no suitable tools were found. This paper outlines the tools that where
chosen, what are their responsibilities in the development environment and how
they fit together. The complete environment will be demonstrated with a walk
through of single cycle of the development process.
