Agile development in computer science education: practices and prognosis

Agile approaches to software development share a particular set of values [2,4]: Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan.Many agile methodologies were developed in response to so-called disciplined methodologies that emphasize detailed documentation and formal processes, and that are often associated with ISO compliance or the CMM. However, there is growing recognition that both agile and disciplined approaches have advantages, and that often a combination can be very effective [1].Many faculty are exploring and experimenting with ways to integrate agile concepts and practices into academic programs in areas such as computer science, software engineering, and information systems. This special session will help us work together in agile ways to better understand the importance and role(s) of agile concepts and practices, successful ways to incorporate them in academic settings, potential pitfalls, and key questions that should be explored further. We want to gather input from a wide range of people in different sub-disciplines and programs.We will begin with a very brief overview of agile concepts and practices, followed by brief statements from each of the five speakers, to give other participants a sense of the range of possibilities (25 min). Next, we will poll participants to identify a set of topics within agility that they want to discuss further (5 min). Participants will then gather into subgroups for each topic, and each subgroup will identify best practices, interesting ideas, and open questions for that topic (30-35 min). Each subgroup will then give a brief report to the entire group, and we will conclude with a few minutes of general discussion (10-15 min).