The agile classroom in the university should be a cohesive concept that forms a thread through the student’s degree. As the student learns more in the classroom through a mixture of lessons and exercises, there should also be opportunities to use this knowledge in the wider community of the university and its local community. After graduation the student should be able to find suitable work without too much trouble thanks to the mixed education of lessons in the classroom as well as applied work in the community. This in turn should encourage more students to apply to study at the same place and form a virtuous circle.
That is the short version of the Agile in the University Classroom talk I presented at ALE2012 in Barcelona on 29 August. Each of these components can be expanded further so that we have a better idea of the student, the courses and degrees on offer, the community and the people involved such as other students and staff.
The students are at different levels of ability, which need to be supported in different ways. These range for beginnings to compentent on a Dreyfus model scale (more specifically), or ‘shu’ and ‘ha’ in the martial arts model of learning. In other words, the students are mostly following the rules for the subject they are studying, and some will start to understand the rules enough to know when they can be broken by the time they graduate. We can help to push them to these limits of their classroom abilities if we can also find ways to bring the student into situations where they can use this understanding developing applications for and with the wider community. This will energize the student when they return to the classroom and provide a better context for deepening future learning.
The courses taken by the student should cover the whole software development process in an agile manner. This should include the four process phases: define, design, develop and deliver stages, and not just focus on the obvious deliver stage where the software is built. Rather, the courses should include service design and design thinking in the define and design stages, as well as continuious integration understanding in the deliver stage. Therefore the student should be able to learn about all of the stages and understand how to work within each of them in an agile manner. Ideally, they should also be able to do this within the community too, so that their understanding is gained in context as part of their degree.
The community offers a number of opportunities for students to gain praxis with their classroom skills. There is athe local community of developers, designers and enterprenuers, who can come together and build up their skills in a mutually supporting fashion through coderetreats, hackday events, and sharing of experiences through workshops and talks. There is also the academic community with its research projects that will need applications developed. There is also the local business community that also needs applications developed. In both of these cases the students should be collaborating together to build applications, and not aiming to undercut the local market for software developers. Where possible the students should be able to attend placements (internships) with software houses to learn how their classroom skills translate into everyday skills at new levels of understanding.
This is the idealised situation of course, and not all of the pieces are in place. Resistance to them can be from a number of directions. These are new ideas that will disrupt old patterns of learning, and change some of the nature of work done by staff too, but also bring in a number of benefits in that their projects should be developed sooner with the help of students practicing their skills. Others will worry that some of these ideas will need some trialing to ensure that the idea is implemented in a suitable manner, which means that mistakes will be made along the way, and that scares some people, who fear that this will reflect badly on them, and not that it merely means the implementation needs to be improved.
Students will also worry about this approach that sees them working on projects and not saving the project through their ‘hero programmer’ efforts of nightlong coding sessions. They will understand this better when it is seen in context of their work and discussions in the wider community.
An agile classroom at the university is possible and is being developed. It takes a community to build this and a community also benefits from this too.