Understanding the tenets of agile software engineering
Shvetha Soundararajan, Amine Chigani, James D. Arthur · 2012
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 an advanced graduate-level course entitled "Agile Software Engineering" in the Department of Computer Science at Virginia Tech. The primary objectives of the course were to introduce the values, principles and practices underlying the agile philosophy, and to do so in an atmosphere that encour-ages 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 talks by notable industry experts, and (3) having students present and discuss current agile 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 course.