This is my first post from the board of an airplane but I believe there is a first for everything. Today I want to talk about software teams, how should they work in a productive manner, how to measure team success and a little bit about conflicts.
I have been working inside two software teams so far for the last 3 years or so, as well as working with tons of other teams. I have seen good habits, bad habits, things that could’ve been improved, things that worked and things that didn’t.
Obviously a great software team needs a great leader, because with a good leadership you go nowhere. Please refer to this article that details a lit bit more on this subject. In order to know which direction a team is heading, you need a strong leader. In the odd case where one is missing, everyone can contribute to a vision, however there will be cases where an agreement can’t be reached easily, therefore it’s mandatory to have strong leader.
But hey, what is a strong leader without strong team members? A great team leader is not enough to make up for everything a team is. Not by a long shot. Everyone needs to contribute in their own ways: to do the actual work, build the actual products, services, apps etc. But the interactions between individual team members, including the team leader are complex and is enough to have small misalignments here and there and things can fall apart pretty quickly.
You need several ingredients to make a team successful: communication, intelligence (smart people), awareness of others, team players, and even chemistry.
I listed communication first although I do generally believe in elitism, meaning brain power. However no amount of brain power can solve problems if there is no communication between people, it can actually make things a lot worse. I have met people who have had interesting ideas but they were to afraid to share with anyone else and that was definitely a missed opportunity for everyone, not just for the individual.
Note! Do not confuse people who have interesting ideas with people who have random thoughts and they want to run them by others to gauge their reactions, to get feedback or just to be heard. Those kind of people are not that interesting from my perspective.
It’s also important that those people are in an environment they feel comfortable sharing, being appreciated, not having to justify themselves all the time, basically by being in a healthy environment.
Communication is also the key to other things, because after some time and knowing each other, you don’t even have to say it because they already know what are you thinking and will act accordingly.
Now, you really need some bright people other team. The kind of people that are not afraid of new challenges, that are open to new approaches. This is not a requirement for a successful team but it is for me. I don’t really see the point in being a team where I’d be the only one to think about things and have no partner of discussion. I have been fortunate enough to always have smart people around me, to share my ideas, hear their ideas and although sometimes things got a little rough there wasn’t something we couldn’t work out, after all we are bright people. It also requires bright people to recognise what are the challenges that are worth solving, because after all we don’t want to reinvent the wheel and at the same time we need to provide real business value. There is also another side to this story. If you want to progress, you need smart people around to constantly challenge you, take you out of your comfort zone and show you brand new horizons, otherwise you can be stuck in some ancient ways and wake up one day to realise you’re obsolete.
With the globalisation, there is now a different perspective to teams. There are people coming from different cultures, with different religions and totally different values than yours. You need to be open minded, flexible and understanding and all of these. If you don’t you may read one gesture as offensive or that one person is not interested which may only be because he or she is shy. In that case you need to encourage them to speak up and help them overcome this trait.
In a software team you definitely need team players. You can’t have a bunch of individualists who are competing with each other to win some sorts of cookies. You need people who can help others grow, that can teach others what they know, that are willing to listen for feedback as well as work on it if necessary. Some people see me as a strong individualist but those who have known me better know exactly it’s not at all like that. Yes, I like to work on my own, but I also enjoy working with other people, especially if they are bright. I want to see how others are thinking, what kind of ideas do they have and so on, as long as those are making sense. I also like to share what I know with others, grow other people so that they may return the favour one day.
If you have in the team only individualists, the results for sure won’t be great, especially if they don’t communicate because they may end up doing different things, sometimes it may overlap and at the end you may have something that you don’t know if it’s going to work or not. Plus the morale will be really low.
Let’s talk about conflict. Conflict is everywhere unless you live in a bubble called utopia. But as long as people care for each other and have respect for each other’s time and energy there shouldn’t be anything unsolvable. I, myself was part of one quite recently and it took me a really long time to realise that actually I am not that angry on the person I had a conflict with. We all do mistakes and we need to find the power to forgive and we should step back and watch ourselves and see if this is really what we want. Unfortunately there will be people who will encourage such behaviours or even take advantage of these situations for their own personal gains.
Those people I pity because they have nothing left but to rely on such actions. Watch out for such people as they are nothing but destructive!
Chemistry is something that you have or you don’t have with people and there is nothing you can do about it. Obviously you can live and work without it quite easily but when you do have it, it’s just great. Things are moving so much faster, easier and frictionless. That’s because the mindset is very similar and you share the same goals.
In the end it’s up to everyone us to make a great team, even if we are “mere” contributors and we should take the time and put the effort in it because after all it’s not just a job. It’s at least eight hours a day of our daily lives and should be a joy not a pain. And ultimately if you can’t make it work, don’t waste your time, find something that brings you joy.