integrating traditional and agile processes in the classroom
Teaching software engineering is difficult because the true benefits of a disciplined software process and the production of significant artifacts are most meaningful when programming-in-the-large, with varying levels of team experience in the context of a professional organization. Using the same techniques when programming-in-the-small can often lead to the students feeling that it is better to not use any process because the effort and tedium of producing artifacts is so great compared with the relatively simple task of writing the code for the target solution. This paper describes our solution, a curriculum that exposes the students to both lightweight traditional and lightweight agile processes. We describe two offerings of the class and conclude from the positive student feedback that we have found the correct balance.
agile teams uml software engineering education projects