Applying Agile Methods in Software Engineering Education
Lightning-Talk, by António Candeias
Tuesday, June 21, 18:30 – 19:00 @ B 002
Today’s competitive market environment increasingly impacts the software development projects. Changing requirements on short notice and increasing pressure to produce software at the lowest cost are inevitable. Agile software development methodologies were developed in response to such phenomenon. Contrary to traditional development models that emphasize on detailed documentations and formal processes, agile approaches give more importance to individuals and interactions, working software in the earlier phases of the project, deeper customer collaboration and higher response to change. Due to their flexibility, efficiency and cost effectiveness, agile approaches began to gain more and more acceptance among industry practitioners.
However, industry employers often voice the concerns that computer science/software engineer graduates are not well prepared to work in the real world. They feel that software engineering education gaps behind the industry. They typically complain about the slow progress to move innovations, such as agile methods, into the academic curricula. It is important to state that many universities have integrated agile software development methodologies into their software engineering curricula, however, just teaching the principles and practices of agile methodologies is not sufficient. The retention of knowledge, particular theoretical knowledge, by students tends to be dismal: once the final exam is over, the knowledge seems to evaporate. In fact, the key skill for students is to let them to empirically understand the benefits and disadvantages of agile software development approaches, and, most importantly, to let them use these agile competences and principles in real world projects.
In this talk we intend to propose an agile software development methodology course suitable for undergraduate and master students. The first objective concerns the content of the course. Instead of focusing on one or two well described agile approaches, we want to give students a comprehensive coverage of the field of agile software development. The second objective focuses on teaching method. We want to experiment active and cooperative learning approaches. Instead of making students passive learners, a large part of this course must involves students in the learning process by having group discussions, team-work initiatives and innovative collaboration methodologies. Finally, we want to incorporate small real world software development projects into this course. This approach can give to students experience in real agile software development methodologies.