October 20, 2006

Software Project Soft Skills Guide: How to Be Proactive?

Working in a team combines two opposite things:

  • The need for synergy with people and conforming to the needs of the project
  • The need for self-improvement, grabbing carrier opportunities and outshining others
In project-oriented companies, showing your capabilities is possible only when you work as a team with others. By showing “too much” or, better to say, attracting too much attention of your team mates and superiors can bring problems to your relations with colleagues and thus endanger the project. I saw some individuals who were not particularly interested in the project as long they are the kings/queens of the county. Such an individual annoys the team and destroys team atmosphere. Also, this behavior is hardly professional. As the matter of fact, it’s childish.

If, however, you don’t show what you’re capable of in some “graceful” way, you will:

  • Miss a lot of new challenges
  • Not get to choose what you actually want to work on
  • Work on boring projects
  • Not have arguments for career promotion or salary increase
Maybe accomplishing results listed above looks impossible to achieve by simply trying to be more proactive during your working hours but I’m certain that when being “gracefully proactive” – wonders can happen. Situation is rather complicated and requires some really soft skills. But if you just sit, wait and work on whatever you are assigned to, you will do what others decide, when others decide and at the end look like someone who doesn’t have a will to work on anything at all.

So here are some of the things that I did and that really helped me in many aspects:

When coming to new workplace, scan the environment and people to find out what is your realistic position in the team and the company in general.
It’s not particularly useful to believe that you are the best programmer, designer, manager or whatever if that’s not the truth. If you are not realistic, it’s very hard to improve.
If there are some people better than you, it means that you can learn from them, compete with them and eventually improve yourself. If there isn’t anybody who’s better than you in at least some aspects than such a company or a team is a waste of your time.

Cooperate with everyone but try to work in a team with the best.
After you have made assessment of all team members, try at all times to cooperate with the best. Don’t make clans with people you don’t respect. Be polite to everyone; be decent even to the people you don’t respect too much; do whatever is necessary to finish your tasks; but always try to come one bit closer to the people from whom you can actually learn something. This is also the place where interesting things happen. If things are not interesting, these are the people that will make them interesting.

Take crappy tasks! As Tom Peters suggests: if you are at the bottom, take the tasks that are of no interest to others and make something special out of it. This is especially true for software projects because there are lots of tasks that are of no interest to anyone and can be done much better than they were done in the past by someone else.
A good example is writing end user documentation. In companies where there is no special team responsible for documentation, usually someone is temporarily assigned to this task simply because the product cannot be delivered without documentation for the end users. Or someone is hired part time to do the job. A person who feels he or she is not appreciated enough can take this task and make best written, best looking documentation in the company for a shorter time than anybody expected. This way you show to others that when you take something as your responsibility, you deliver things better and faster than others.

Well, this is an example to someone who has just started to work in software industry but it can really be applied in at least one additional case. It is the following: when you start working for a new company, people you work with not necessarily:
  • Were present on your job interview,
  • Know what your skills are,
  • Know what you want to work on,
  • Know what you worked on before
… And, sometimes, they don’t even know why you were hired in the first place.

In this case, you might be in a position where your team leader makes all kinds of assumptions and assigns you to something completely different from what you expected. What to do?

  • Do the tasks you were assigned to
  • Find something no one wants to work on (like unit tests ;)) and make it perfect
Find ways to talk to your superiors and find out what projects are coming next.
There are always rumors about new projects and it’s definitely good to know what’s coming next (even if it is something to avoid!). The person one level above you in the company hierarchy or maybe your team leader, probably knows more than you do about new projects that are coming. Talk to anybody you can. You will be surprised how much information you can find if you simply – ask! I think no one will punish you because you are “too interested” in future projects. OK, this one might be pointless if your company works 5 years on the same project, but in most software companies, things are very dynamic and there are always new things coming. Find out what might be interesting.
If someone gives you such information, and it is really something that you like, show your interest openly. Discuss about it. If you don't know enough, read and learn more about it so that next time this subject comes along you would be able participate in a conversation more easily.

Don’t rely on others, let other rely on you.
Try not to expect for others to get you out of trouble, even if you are new in the company. Do whatever is necessary so that you can finish your tasks on your own. Also, if others need help, do whatever you can to help them. Everyone needs help sometimes. That's the essence of teamwork. But there is a big difference between people who take their tasks seriously and the people who expect other people to help them by default. Make sure you are in the first group.

Use your sense of humor (if you have one).
People with sense of humor are usually perceived by others as smarter and more dynamic. If you are new in the company, colleagues will accept you more easily and will be happy that you are a part of the team. (If they are not, leave the company. ;))
Every new employee that comes to the company shall more likely approach to the team member who has a sense of humor because he or she assumes that such a person is more open for questions and help (or breaking unpleasant atmosphere). This way you are always somehow at the “center of things” because “things” actually happen where people interact with each other.
If you don’t have a sense of humor, for heaven’s sakes don’t use it. I mean, don’t use that entity called humor only by you and by nobody else. I happen to know at least one person who has almost no sense of humor, but is much respected team member and successful project leader. He doesn’t pretend to be something that he is not and that’s enough. It’s not the end of the world if you are not funny; just get over it!

Be yourself. The best edition of yourself.
This one is maybe hard to explain. We are not the same person every day. Some days we are full of energy, happy, constructive and some other days we can be nervous, confused, and angry and whatnot. At work, always try to be “better side of yourself”. Always try to say and do the right thing because you most certainly have the capacity for that. Everyone has.
I believe this can only be done if a person is well organized. I’m referring mostly to time management. If you always under pressure and always running somewhere, you will not be able to control your reactions. You will not be able to think about what you do and sooner or later you will offend someone just because you were reckless at the time. There is no need for that to happen – you can stop it. Find some time management resources on the web and act on it. These skills are definitely not only for managers, everybody needs them.

If some project interests you, join the team by working on whatever is necessary.
If the team accepts you, you will most probably get new, more interesting tasks. Even if it is because someone got sick, you will be able to show your potential.

Make sure others see your progress.
I think advertising of your work is very important. I know people who really don't need this "advertising" at all (because they are doing excellent job) but they do it anyway. That’s because it really helps. What’s the use of working more and better than others if no one sees it?
The trick is: how to do this so that it doesn’t look like you are showing of? The answer is: drop small chunks of information to your superiors and colleagues who don’t know what you are working on. Never talk to long or too loud about your tasks and results, but mention it through some other stories. Mention also the results of others. Lots of things are happening in every team and company every day; you can’t expect someone will have the time to actually explore who did what and when he or she did it. People need information and you have to give it to them.

If you have a lot of Complexifiers in your team/company, be the person who simplifies things.
This way you will become a catalyst of change in your team. If you have ambition to become a team leader, this is especially useful because people will look at you next time something is not clear. In software development, thing often get too complicated. That’s why Simplifiers are very important persons in the team.

Get things done.
Try your best to reach the deadlines you said you would reach. That is what counts to your team mates and your superiors. Deadlines are very important. Don’t overanalyze and gold plat things. Just finish and inform everybody that it’s done as planned.

There are few more things to add. With practices stated above one has to start as soon as he or she comes to a new working place. This is not because of the new chair you are sitting on, of course, but because of the new people you are now meeting for the first time in your life. As soon as you come, people start to size you up and they have a natural need to form a clear picture about a newcomer as soon a possible. I don’t think that a lot of people do this on purpose. It’s just something that we all instinctively do. But the problem is, this “picture” can be created in the matter of weeks or even days but then last in peoples heads for years. It’s very difficult to change it, no matter how hard you try.
When I got my first job, after graduating from university, I made many mistakes with many people, including my superiors, of course. ;) After a year or two I have improved in many ways and tried to fix the errors that I did in the past. Nevertheless, my colleagues had that “old picture” of me and it was very difficult to change it. I wonder if I succeeded at all.

People do not change often and when someone sees that you have changed, even if the change is positive, it somehow looks staged and fake. It’s like coming to work every day in your jeans and T-shirt and one day decide to come in your best outfit and a huge lady hat. OK, maybe that’s not a good example of a positive change… But my point is: it looks as if you are suddenly trying to be something that you are not, and people don’t like that.


Barney said...

Thanks for the post. There are a lot of points that are worth remembering and a review of them will help me in the future!
An irrelevant bone to pick: I don't like the word "proactive". It is management-speak at its worst. The opposite of "inactive" is "active". You don't need another word for "active" that says the same thing. Just something that bothers me and no one else, I guess :)

Deeps said...

Thanks for the post . This is an eye opener for me .While i was reading the blog i just happened to recall all those mistakes that happened during my first yr at job and felt i could have done it this way . Thanks buddy .