Wednesday, September 22, 2004

nightly build & extreme programming

Reading Java Development with Ant
Chapter 1 - Introducing Ant

Page 15
"However, every night, one person's computer attempts to build the planet's most popular open-source Java projects from their latest source, using the latest version of Ant as the foundation. When that build breaks because of a change in Ant, the owner of that computer, Sam Ruby, lets the Ant development team know."

What is the percentage of all Java projects in this world are running their nightly builds as early as possible, as soon as the project started?

Having a nightly build, means that the project team can have a great confidence on the results (assuming that they're good), and the project team can also get their feedback immediately (if the results are not good). The nightly build has a great synergy with the continuing integration process, which in the end forces the software to start from a simple running application, and growing in small incremental steps, to always be integrated and refactored along the way, receiving feedback as early as possible, before turning into a production ready application, weeks before the deadline.

Page 16
"The idea is that change is embraced; it is planned for and expected. The software is continually refactored during development to keep it simple, clean, and agile at all times. Change occurs in small incremental steps when using XP, leaving the system ever in a production-ready state."

By doing nightly builds, I believe the whole team is used to having a positive results at all time. Even further, I believe they'll be more adaptive to changes, as they get them daily. I believe the key is to design and code as required, and never to be afraid to refactor. Again, this relates well to having a good unit test mechanism, allowing us to refactor freely, yet safely.

Page 16
"Continuous testing and integration are crucial to obtaining agility inadaptation to change."

Nightly builds, Unit tests, Continuing integration, Change Management & Refactoring...

All of them are keys to successful software development project, I believe. How many of us are courageous enough to cross the bridge to these agile/XP methodologies?

No comments:

Post a Comment