Offer multiple praxis experiences for students to explore concepts before they graduate.
I like to offer students experiential learning sessions. I understand and appreciate the usefulness of a lecture on the concepts and reasoning behind an approach. Underpinning this with a chance to experience the idea in practice makes it more memorable.
The way I see it, students should be able to experience many of the types of situations they will encounter in their future careers. They should be able to thank us later for having been prepared for what they get paid to do.
Too often we focus on the general aspects of software development and leave out the human-side of the work. The human-side that connects the general work you find in the textbooks. Fill in the gaps in the general software development and software engineering textbooks with the human-side of software development experiences.
That is why I write about these topics here and in my book. I want to share my experience and help others to share these ideas with their students. I found I had to tell each new cohort how to work as a team, how to build empathy with each other, and work in thin, vertical slices with short feedback loops.
My experience aiding my students’ experience has informed my teaching about the human-side of software development. I want my experience to help you aid your students.
Create the opportunity for students
As educators we can plan our sessions with students, and encourage them to participate. We can invite them to take part in the experience. We can tell them what they will gain, and hope that they do take part.
When we force them to take part, then they will be reluctant. This doesn’t work well.
It is better to make an invite, and ask them to take part as willing participants. When willing they open themselves up to new experiences.
A lecture doesn’t fit into this invite offer, but practical sessions do. in a lecture you can sometimes create a moment of experience, which is good too.
Make the opportunity experiential
Telling students about something is less powerful than letting them experience the situation. The experience creates a memory with emotions. Let them feel what it’s like to pair program, or do ensemble programming with a team. This is much more than telling them about the practice.
There are ways to make all of the collaboration rules and phases experiential. This makes the learning more powerful, and memorable for your students.
Explain the practice and the theory behind the practice in a lecture. Then provide a session where your students can experience the practice. We do this with programming in general. We should take this further into all of the practices we know students will encounter in their professional careers.
Provide multiple opportunities where possible
When possible we should create multiple opportunities for students to experience these situations. This allows them time to improve the experience with practice. This is especially true for longer team experience such as with software engineering team projects.
When we are offering longer opportunities, then we also need to provide ways for students to to reflect on their personal development. Remind them to review and revise their arrangements.
How might you create moments of experience in your classrooms? You’ll find ideas in the book and in the blog posts.
This post is part of a project pulling together my materials and ideas about Teaching Team Collaboration: the Human-Side of Software Development for software development to students.
If you’d like to be notified of future posts, then please sign up for more using the adjacent form. When you sign up, then I’ll send you a free copy of the collaboration rules as a PDF from the book. You can also follow me on LinkedIn
The ideas above are from my book 101+ Ideas to Improve Team Collaboration, which covers all of these little things that students can do to improve their collaboration.