Preparing Academia Graduates for Agile
For years companies have been concerned and desperate about training and getting their new hires ready. A large part of the preparation is about company culture and process. Many practitioners have been complaining that they are frustrated that the Academia and the Industry are not as close as they expect it. The Academia constantly injects new, fresh, and eager to learn workforces to production-related roles. I believe preparing students for the industry is one of the main goals at the universities and Agile education has been a long due close to it's 20th birthday. I wanted a way to ensure that people exited CS programs had some exposure the Agile mindset and that they had the tools of XP and Scrum in their toolset.
At Oklahoma State University, Agile education have been a part of Software Engineering course for years. However, we started offering independent online Agile Project management process course. For the last couple of years, several students attended these courses and the feedback was interesting.
The first challenge was creating the course material, designing projects, and communications among the students in a way that they promote Agile as well. Also we made sure the course does not require background in programming so that students from several disciplines such as Computer Science and Engineering, Business Management, MIS, and even Civil Engineering could benefit from it. The whole course was run in a way that students are forming teams and the instructor is an Agile coach.
The next challenge was helping students learn in a short period of time through experience and practice. I designed a practice for them to increase the possibility of learning from others' experience as most of the students had no industry background. the students were asked to design interview questions to evaluate agility of real projects from Agile, XP, Scrum, etc point of view after each of these topics was taught. They were not supposed to use agile related words in their interviews.
As a part of designing a group project for this course, I found Sketchup as a great tool to teach and coach teams in learning Agile remotely. Tool learning takes a couple of hours and you could apply most of what you need in a short period of time in practice. Team were asked to choose a theme for a city they are going to develop.
Also, we applied several retrospective sessions with the teams to get their feedback about how the course is going and what they would like to change about curriculum as we went forward in the course.
During all stages of the group project, I work with the students as an Agile coach and helping them to gain the knowledge (and maybe some expertise) for all steps of software development life cycle using Agile approach.
Outline/Structure of the Experience Report
Need for teaching Agile in Academia
- Most of students have no industry background
- Practice based nature of Agile
- Remote vs collocated students
- designing meaningful projects
Projects and Assignments
- Practical assignments
- Individual project: agility assessment
- Group project: build a city using Sketchup (team and scaling flavor)
Agile structure vs traditional course structure
Understanding and learning:
- Importance of agile education at schools
- Important points to teach to unexperienced students
- How to handle remote and online classes
- How to structure the course to mix the practice and learning
Agilists interested teaching Agile in academia
Prerequisites for Attendees
Basic understanding of Agile