I teach a class called “Software Methodology” at The Gordon Institute. My goal is for the students to be able to recognize if a software project is not being managed properly, and to give them a feel for what a software project might be like. So, I have them organize themselves into teams and perform a software project.
I'm grading the final exams, and have encountered these programming techniques:
- Panic Programming: Writing code as quickly as you can because you realize the deadline is approaching and the project is far from done.
- Peer coding: (this is not a typo) When you and your peer learn to program together because neither of you know anything about code. One student said, “Different perspectives of the same problem lead to a much faster solution.”
- Pair party: Get everyone on the project in one room, give them short tasks, teach each pair enough to do the task. When a pair finishes a task, they check another pair's task. Move around the pairs.
- Beer-and-projection-group-debugging: The night before the project is due, buy enough beer for everyone. Project the code on the wall. Program and debug together. Loop until project is done or beer runs out.
I wish I could say these programming techniques were new to me. But I'm pretty sure I've tried them all except for the one with beer. I can think of a project where the beer might have helped; sobriety didn't 🙂
I'm excited that the students had a chance to feel what a software project is really like. I suspect they were more willing to try pairing in a variety of ways because most of them had little experience writing code.
Look at your project. Anyone using any of these techniques? Would they help or hurt?