A few years ago, I had an intense training to become a Spanish teacher in second language and I taught Spanish for a while; it turned out to be an amazing Agile experience. I did that to disconnect for a while from the tech world, because I had just closed my second startup and my mind and body needed a break. It was interesting to me that I was the only “technical person” out of 12 people in the course, everybody else had backgrounds in philology, philosophy, education and there was even an actor. That was perfect for my break.
We were instructed in some teaching techniques like Reflective Teaching in Second Language Classrooms and other techniques based on contexts and the uses of language. Over time, I have realised it has been quite valuable in my tech career and now I see many parallelisms with Agile:
When I was a child my education was a lot about a teacher talking to students or students doing individual work. In that teacher training, the time students spent doing individual work was minimised and the exercises were ideally two or three people per group.
When I went to school teachers were the main actors in the classroom, everything was around them, and they were “managing” a group of people (around 30 people in my childhood). In that training we were taught to be just a facilitator. The teacher was meant to guide the students to make sure they do the right work in the right way. Facilitator? This sounds very Agile to me!
Like in Agile, teachers had to do something called “informal reflection” to evaluate what worked, what didn’t and what could be improved, and it was shared between teachers of the same group so we could give feedback to each other.
Processes and silos
If the goal of a person is to be a fluent speaker in some language, then breaking the learning process down to independent and isolated blocks called grammar, reading, listening, etc does not ensure the student will be fluent in that language. Yes you can focus on each block and make it more efficient, but to achieve the goal (to be fluent) you need to be good as a whole and breaking it in silos can dismiss the purpose. That’s why the training focused on contexts and use. Each class had a goal (like a sprint), and each class was a seamless workflow composed by reading, grammar, listening, etc.
The same thing happens with processes and departments in some companies. People work grouped by skills instead of goals.
Unfortunately I think something similar happens when people learn programming languages, specially when we learn online (tutorials, videos, etc). Students learn techniques to solve different parts of the problem but we can easly miss the “use” and the “context” of such techniques. And so we work on projects that use technology instead of projects that solve problems.
That training to become a language teacher was more than that. I learnt a lot about team work, human relations and self-effacement. This is the training if you are interested http://www.ihes.com/bcn/