  The use of agile principles and practices in software development is becoming
a powerful force in today's workplace. In our quest to develop better products,
therefore, it is imperative that we strive to learn and understand the
application of Agile methods, principles and techniques to the software
development enterprise. Unfortunately, in many educational institutions courses
and projects that emphasize Agile Software Development are minimal. At best,
students have only limited exposure to the agile philosophy, principles and
practices at the graduate and undergraduate levels of education. In an effort
to address this concern, we offered a graduate-level course entitled "Agile
Software Engineering" in the Department of Computer Science at Virginia Tech in
Fall 2009. The primary objectives of the class were to introduce the values,
principles and practices underlying the agile philosophy, and to do so in an
atmosphere that encourages debate and critical thinking. The course was
designed around three central components: (1) teaching the essentials of how
one develops a product within an Agile framework, (2) having invited
presentation by notable industry experts, and (3) having students present and
discuss current research topics and issues. This paper describes our
experiences during the offering of that course, and in particular, the unique
perspectives of the class instructor, the teaching assistant and a student who
was enrolled in the class.
