Daily Build
Daily builds is a well known software engineering best practice. It is the practice
of each day doing a software build of the latest version of a program. Performing
daily builds helps ensure that developers can work knowing with reasonable certainty
that any new bugs that show up are a result of their own work done within the last
day. Daily builds typically include a set of tests, sometimes called a smoke test.
These tests are included to assist in determining what may have been broken by the
changes included in the latest build. The critical piece of this process is to include
new and revised tests as the project progresses.
Here are some significant benefits of daily builds:
- It minimizes integration risk. Developers are encouraged to commit
their code as soon as it has been tested. This way their code does not get out of
sync with the main development branch. Developers are also encouraged to get a fresh
copy of the source code tree on a daily basis, or at least before starting each
new feature.
- It reduces the risk of low quality. Related to the risk of unsuccessful
or problematic integration is the risk of low quality. By daily build, you bring
the system to a known, good state, and then you keep it there. You simply don't
allow it to deteriorate to the point where time-consuming quality problems can occur.
- It supports to spot defects more easily. When the product is built
and tested every day, it's easy to pinpoint why the product is broken on any given
day.
- It enhances progress visibility. Since the software is built daily,
it is easy for the project manager to see which features are there and which ones
are not. Clients have visibility into the process and are reassured that milestones
will be met.
- It improves team morale. Seeing a product work provides an incredible
boost to morale. With daily builds, a bit more of the product works every day, and
that keeps morale high.
Nova has been using many practices in terms of agile software development these
years. By practice and summarization, we have gotten that daily build is one of
the best practices which suit our best. In fact, daily build is a good way to ensure
our code is progressing toward release. It benefits all team members, from developers
to end users, as well as clients.