Team performance: Divide and conquer or swarm and destroy?
Working in a team can be challenging and intimidating sometimes. Especially for developers that feel more comfortable focusing on individual tasks rather than a common objective, teamwork can be bothersome. Regardless, being part of a team requires teamwork, at least to some extent. So, what do developers need in order to perform better as part of a team?
Alfonso Guerra tweeted the results of a poll on what a team needs in order to show a 10x improvement in developing software. The results point towards the need for talent and skill. Of the respondents, 43% believe that teams are in need of better programmers and 36% that further training is required. But that is only a (very) small sample of 14 responses that just gives us an idea of what developers think. At the end of this article, I will present a poll so that you can submit your ideas on the issue. Let’s try to beat the mark of 14 responses, this time!
Nevertheless, there are some, not that much of technical but rather general, indicators of what a team of developers needs in order to perform better. As Alfonso Guerra later acknowledged, there are other elements that need to be improved and employed in order to lead to improvement in issues like the ones pictured in the poll by Guerra (e.i. better programmers, additional training, better tools, realistic schedules).
We are all in this together
Being in a team and having a project to complete does not necessarily mean that all team members share a common objective. On the contrary, as John Sonmez argued in one of his articles, most teams “adopt a divide and conquer approach instead of a swarm and destroy approach”, meaning that most commonly, teams divide tasks and everyone works in isolation instead of working together.
Since you are in this, why not make the most of it? Yes sure, the deadlines have to be met and the project must be completed but working on a project as an actual team can enhance learning and productivity, you can gain valuable knowledge and experience that is quite impossible to gain while working on an isolated task.
Talk things through
Once again, isolation is the norm in these situations; most developers seem more comfortable working alone – “tell me what you want me to do and go away”. However, since you are a part of a team, well…it would be better if you communicated with the team!
Communicating with your teammates during a project will help everyone improve their game. Talk about the task you’re working on and share any difficulties or obstacles you run across, it would help you by collaborating and maybe finding some common solutions, help your teammates in the event of any common issues rising and frankly, it helps you just release some pressure.
Let’s talk management – again…
Management is one of the most vital parts of a developer team because, ultimately, whatever the individual programmer tries to accomplish, is provided, orchestrated and checked by the team manager. Therefore, it is crucial that team managers can effectively accommodate each and every member as well as accurately take the pulse of the team – constantly!
- So much leashed power! – Unleash it! Give incentives to the team to create their own priorities and roadmaps.
- Walls are meant to be broken – Organize get-aways with your team. Programming can be stressful, really stressful. Allow your team to relax and unwind while bonding with each other.
- Order is the glue that holds it together – Fun and team empowerment is wonderful but let’s not forget that there ought to be some rules and order that are to be maintained across the team.
- Challenge what is challengeable – Provide your team members with tasks that would trigger and challenge them but make sure that they do have the capabilities to accomplice them so they don’t get demotivated.
And most importantly, whichever motivation techniques you chose to employ, do not forget to celebrate each accomplishment of your team and their hard work.
Of course, I could mention 10 or more topics that should be addressed at management level or considered by the individual developers in a team. Nonetheless, I think there is more merit in keeping it short and just give the floor to you so you can submit your views on the topic.