The Agile Manifesto includes twelve principles:
1. Customer satisfaction by rapid, continuous delivery
of useful software
2. Welcome changing requirements, even late in
development
3. Working software is delivered frequently (weeks
rather than months)
4. Close, daily cooperation between business people
and developers
5. Projects are built around motivated individuals, who
should be trusted
6. Face-to-face conversation is the best form of
communication (co-location)
7. Working software is the principal measure of
progress
8. Agile processes promote sustainable development
9. Continuous attention to technical excellence and
good design
10. Simplicity
11. Self-organizing teams
12. Regular adaptation to changing circumstances
C. Agile and Plan-based Methods; Strengths and
Weaknesses
A plan-based schedule represents reality; there is a start
date, an end date, and finite set of resources. At a
rudimentary level, it would appear that a plan-based project
offers the best visibility and best understanding for funding
organizations and on-lookers. Everything is documented and
accounted for. Problems arise, however, when unforeseen
variables are inserted into the plan, which break the schedule
and ruin confidence in the team. Also, the primary issue
with plan-based schedules, as stated by developers, is the
“Big Design Up Front” (BDUF) problem [10], which
assumes that not only is everything known up front, but that
it is possible to create the finished architecture and design of
the system before coding starts. Our experience indicates