I really want to talk about my experience competing in the Go Code Colorado challenge, but I realize that it’s going to be difficult to do so without first talking about group projects, working as a group, and how I feel about teamwork.
I went to a couple of schools that highly valued group projects, but contrary to what students are told, school group projects are very different than work group projects. Preparing students to participate and communicate effectively within a group would be a great skill to teach, but often it’s assumed students already know how to work within a group setting; how to behave and how to deal with issues that arise. Sadly, much like providing helpful critiques and feedback for peer reviews, students may not have any background in this type of work situation, and it’s a shame that schools aren’t taking a greater lead in teaching these important business intelligences.
I’m going to spare everyone the stories about school groups that were miserable (as an A-student, relying on other students for part of my grade was torture), because luckily, working on a project with a group at a job is a much different situation (spoilers: continued employment and a paycheck seem to be more motivating than getting a good grade). Working as a group is something that I don’t get to do very often, typically I get my work done with a few periodic check-ins with the rest of the team, and then I hand off the project to whoever is working on the project next. Working with small companies, the possibilities for different group combinations are low, the groups tend to become pretty close, and conflicts don’t arise very often.
Occasionally on fun projects, I get the chance to work with people I wouldn’t normally work with, and sometimes the results can be unexpected. With a good group, learning to work past differences, to push and be pushed to perform at a greater level, and having others to brainstorm and collaborate can lead to really awesome projects coming together in ways that are impossible to predict. Some groups can be impossible to balance: too many leaders (or no one who is willing to lead), differing opinions, a lack of respect of other members, over-promising and under-delivering, a bad distribution of labor, having too much fun and not actually getting any work done…sometimes groups just don’t work out. I’ve definitely identified a few traits that I think are important for team members within groups to have (that helps keep everyone sane):
- Self-awareness of strengths and weaknesses: no false humility, no (undeserved) ego.
- A willingness to communicate:
- People who speak up and contribute
- If the team doesn't understand what someone is saying, it's important for them to have the versatility to explain their idea in a different way without getting frustrated.
- Someone who takes action! Waiting to be asked for help or never taking initiative can keep the project from moving forward.
- Balanced skills: someone with a single ability can spend a lot of time without anything to work on, and having only one person who's capable of doing a particular job can lead to a project crumbling if they're unable to follow through.
- Differing opinions are important to innovation. No one should want to work entirely with a flock of sheep. That said, too much conflict makes it hard to get anything done.
Obviously no one is perfect, what matters most is how the team deals with conflicts and stress and how they perform under pressure. I know that I’m not as quick on my feet as I would like to be, and sometimes I don’t switch tasks or make decisions as quickly as I could (I’m a thinker, I like to mull things over.) I also wish I had more opportunities to work with people with similar skills to what I have, instead of being the lone designer. I am looking forward to other code opportunities and events in Northern Colorado and working with more groups on fun projects in the future.