Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organisation and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals (Wikipedia 2009a). In Agile project management, Highsmith (2004, p27) laid out two categories of guiding principles: