Team Dynamics

Posted: November 29, 2013 in CS3216, Shubham's Posts

I feel sorry to hear about what happened to Jim’s team last year. I actually know Hieu really well and I know that he is an exceptionally talented student and a really good programmer. I can empathise with him (life can get really lonely when you are the only coder). I can also empathise with Peggy and Uncle Jim (life can get really lonely also if you know that your team lacks programming talent). But, hats off to them, for managing to do a good job at the end! All is well that ends well and more importantly

“What doesn’t kill you makes you stronger” – Legendary Prof Ben

Q1: How much control and authority would you have given to this fourth voice in our choice of platforms (HTML5/native iOS)?

A1: I cannot give a flat yes/no answer because I believe it really depends on the situation.

If there is only one coder in the team and he is really good at some platform and the app can be done on that platform (anticipated performance issues aside), I will not change the platform unless the teaching staff or the fourth person logically proves why we really cannot and should not do the app on that platform. If the only coder in the team has never worked on iOS before but he has good knowledge of HTML 5, I will go ahead with HTML 5.

The situation changes slightly if the team member is not at expert at either but has a little experience in one of the two. Even in this case, if the team member tells me that he wouldn’t have enough time to learn the new platform and he wants to work on the platform he has a little experience with before, I would still back the team member’s ability and not switch platforms. However, if the team member is okay with anything and the fourth voice is of someone from the teaching team, I will listen to it.

Personally, being a project manager and irrespective of whether I know how to code or not, I will try to understand the logical reasons being given in support of either platform. I would make a pros/cons list (I made this list in the CS3216 projects this year too). I would try to see if their is a clear winner after talking to the fourth voice as well as the lone coder team member. If the fourth voice has a very strong point, then I would talk to my team member and try to convince him. But then too, I would not force the team member to use something he is not comfortable with. I would reason with him logically but since he is the person who is going to ultimately do the work, I cannot and will not go against him if he is really not comfortable using some platform.

If the fourth voice is of someone from the teaching staff and they feel very strongly that we should choose one of the platforms, I would be very tempted to do as they advise. This is because the teaching staff is much more experienced than either of us. Moreover, I am sure the teaching staff will also provide logical reasons for their advise. But again, even though I would talk to the team member, I wouldn’t blindly follow the teaching staff if the team member thinks he cannot pull it off and learn the new technology in time.

For me, the fourth voice will never have the veto power. This is because the fourth voice will not be as directly impacted as the team members will be if the project doesn’t go well. So, I will first try to understand the arguments for and against by talking to both the parties and then try to convince the team member if his arguments are not that strong (by convince, I mean reason with him and seeing if he understands why the fourth voice is saying what it is). But ultimately, I will not force the team member to do something he doesn’t have faith in. If he tells me that he can make the app work well on the platform he is comfortable with, I will back his decision and ability. After all, I chose for him to be in my team in the first place because I believed he would help make my project successful.

There is one last case where the team member is being unreasonable and the app simply can’t work on his platform of choice. In this case, I will tell the team member to listen to me if I am the project manager. If he doesn’t, I will tell Prof Colin about the situation and ask him for his decision. If his reply is that we must resolve it by ourselves and I am the project manager, I would put my foot down and expect the team member to listen to me (for this to work, there must be a clear democractic election of the team leader beforehand, if this is not done, you can’t expect your voice to be heard as a project manager).

Q2: With the deadline just 2 weeks away, how would you as project manager resolved this problem (iOS vs HTML5) if it were to occur within the team?

A2: In Jim’s case, they had already made the decision to try out both the platforms and so their decision was a bit easier because they must have had results and would have known the platform on which more progress was being made. I would have chosen the platform on which more progress has been made because given the team resources, the progress was the best answer as to which platform is better. Of course, the features which were left to be implemented would also have to be taken into account. However, it might very well be that there is no conclusive answer. In that case, with 2 weeks left, I would go ahead with what my team members are most comfortable with. 2 weeks is a very short span of time and if no conclusive answer has been found till now, I can’t take the risk of more experimentation. Unless the fourth voice is willing to help us by actually helping in the implementation (read, coding), I would go with what my team mate feels he is most comfortable with.

Q3: What are some of the issues that we presented that could have happened to any team? List down 3, and talk about how you would have resolved these issues.

A3: The three issues off the top of my head are:

  1. Conflict of opinion – This is a very common issue. Actually, you should be worried if this doesn’t happen in your team. This is because no two humans think the same. Put a team of 4 and you would have 4 opinions. And opinions are good, opinions show that the people involved care. I absolutely love when people argue in my team, it means that they care about my project. In the most cases, I have observed that it is not very difficult to resolve the conflicts if the team members don’t lose their heads and become too agitated. The best solution is to make a pros-cons list and see which argument has more weight. The other solution I have used is to consult the teaching staff. The last solution if all else fails is to let the project manager decide. According to me, for real world projects, the project manager should be the person who has the most stake in the success or failure of the project. For example, during our final project, Leon Qiao was the project manager since it was his startup BigSpoon. When I had the opportunity to do project management during the assignments, I let the decision be handled by a vote and then take the opinion of the majority. However, that is just my style of project management.
  2. Lack of resources in the team – In Jim’s case, it was the lack of programming talent. But more generally, you could be short of artists, game designers, etc.. This is a nasty situation. The first way to resolve this would be to pre-empt and prevent. For example, if you know you are going to make an iOS application, try to rope in iOS developers. If you can’t find any, see if your idea can be modified to work well on any other platform. If not, then see if you can learn the technology within the time constraints. Estimating the time required to learn is a difficult task and this is where the teaching staff can help you. Ask them if it is possible. Ask prospective team mates if they could learn the technology in the short amount of time. If nothing works or you get negative replies, then change the idea, as the last report. If you employ these strategies, you should never be in a situation where you lack talent. However, it might be that you didn’t estimate that you need 3d artists and suddenly you realise that you need a 3d artist for the success of your project. Well, that is a tough situation to be and it should not have happened. If it does, then you didn’t plan your resource requirement well enough. In this case, your best bet is to ask for help. Ask your friends, ask other teams, etc.. Ask the teaching staff. However, if all else fails, you can either decide to shelve the feature or learn the skill yourself, time permitting. But, again, this situation will not happen if you plan the project meticulously. So, a few hours spent thinking about the product might save you many hours cursing why you did not.
  3. Over-the-top expectations from team member or unrealistic ideas – One problem that might might happen is that a team member isn’t able to deliver as much or as well as you had expected. This is a bad situation to be because this means that your project will have to suffer. Many a time, the solution is simply to push the team member and egg him on. Maybe meet more often? Talk to the team member? Ask him for progress updates more often? Many a times, I myself, have the tendency to start slacking. I believe my FYP professor handles me really well. He simply puts more pressure on me, reminds me more often, etc.. As a team leader it is your responsibility to get the best out of your team mates. Its okay to be the “annoying guy” if it helps your project. You don’t have to impress your team mates to marry them later on in life, you have to get the best out of them. Alternatively, it might not be the team mate who is the source of the problem. His task might be too difficult or he might not have the required expertise. In the first case, the project manager should do more homework. He should analyse the tasks again and maybe break them down into smaller components and then try to estimate the man hours of effort needed. In the second case, if the team member doesn’t have the required expertise, he really can’t do enough about it. All you can do is to help him learn faster. This involves motivating him, reminding him about the task, trying to share some of the workload, etc..

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s