- Read Tutorial
- Watch Guide Video
First and foremost, one of the most important things to understand is that if you have a development team, whether you're involved in one, say you're a developer, programmer, or a QA team member. Or if you're managing one. So, if you're a project/product manager, or even a CEO, then it's very important to understand what your team isn't like.
Many times I've heard of development teams and a manager talking about them and treating them almost kind of like a swarm. So, like a worker bee or a swarm of bees, or ants, or something like that. They try to create an analogy between their team and nature like that. And I've discovered that is not even close to being the case.
Development teams, and really, teams in general, are filled with unique team members. They all have their own sets of strengths and weaknesses, and if you do it right, you can utilize each one of those team members and their unique strengths and weaknesses in order to come together and create a very well functioning project. But if you try to treat each one of the members as just one cog in the team, then you're going to end up running into a number of issues.
And I know that may sound a little bit abstract, so let's kind of dive into a real world example. Say you're managing a team of five developers, and you're building out a full application. So, you're going to need a back end, you're going to need a front end, you're going to need a database, and design elements.
Well, if you try to treat the team just like a swarm of bees or like ants, you would simply list off each one of the tasks and then you would randomly assign it in thinking that you're just going to get the project done that way. But in reality, you really need to pay attention to the strengths of each one of your team members.
Find the ones that love front end, find the ones that love engineering or architecting an entire system. Find the things that they love, and also that they do well in, and then assign the tasks that way.
Now, I know that may sound like common sense, however, I've been doing this for a number of years, and all too often I speak with different team members when I come in and I get added to a development team, and I discover that they've been given tasks that either they have very little experience in, or they simply do not like at all and that usually ends up in bugs and in a poor final project.
So, make sure you're always communicating with your team. One of the best ways of ensuring project success is by communicating, having a transparent way of understanding when your development team may be having issues, when they may be doing something they don't enjoy, and that way you're able to adjust and hopefully catch something before it becomes an issue.
And lastly, when it comes to teamwork, make sure that everyone on your team has a freedom to embrace failure. One of the top slogans at Facebook very early on was Fail Fast and Fail Often. Now they didn't mean that they wanted the entire project to be a failure but, they weren't scared of failure on a day in, day out basis.
Let me give you an example, and this is something that happened pretty recently with a developer that I was managing. This developer was very talented, loved development, loved building out applications.
But I started to notice a trend, and so did a few of the other team members in this group, where we would give him a specific task, and then he would simply ignore it, and, obviously, that's not a good thing.
And so I started to dive into it and communicate with him on why that was happening, 'cause it started to happen a few times, and it was causing an issue. And it turned out that if we gave him a task that he didn't know how to build, he didn't know how to implement, he would simply procrastinate on it.
So, instead of feeling like he could come to one of us and simply say that he doesn't know how to do that, he was putting it off to the side and procrastinating. So, this is something where I needed to have an entire meeting with the team, and say how that is not the attitude we want to have.
It is perfectly fine to not understand a certain concept, or not know how to build out a feature. I've been doing this for a while, there are still constantly features that I come into that I have no idea how to build. And so, I have to ask others around me that maybe have more experience in that specific field.
And so, whenever you're managing a team or working with team members, make sure that they feel comfortable enough so that they can come to you when they don't know how to build something.
That's going to help make the entire development process much more transparent, and everyone's going to be able to feel comfortable, even when they may not know something, and it's going to make it so they're not scared of failure, which at the end of the day, is going to move the entire project along much faster.