Requirements change during software projects.
Instead of attempting to eliminate risk in a project by specifying
requirements and plans in detail upfront, we assume that there is
inherent risk in the process of software development and adopt
tools and methodologies that allow us to effectively manage risk
through the life-cycle of a project.
We have identified and employed Scrum, a lightweight agile
project management methodology, in response to our desire for
agility during a project and we have found very positive results
over the last few years. The methodology allows us to manage
software development projects effectively with a focus on
flexibility and incremental delivery.
Scrum is widely adopted internationally by
small teams as well as large organisations such as Microsoft and
Google. Detail regarding the methodology can be found on Wikipedia
at http://en.wikipedia.org/wiki/Scrum.