Let us say that you are starting out in a project. You know that "people like to work with nice people". Therefore, you decide to be nice with everyone in the project team. You get these benefits:
a. The team members share their knowledge with you.
b. They help you understand the software application and the process they use.
c. They introduce you to the people related to the project.
d. They invite you to project meetings.
e. They explain and share their project work with you.
So far, so good. But what happens when you have decided to be so "nice" that you have forgotten how to say no?
1. You are given responsibilities loosely related to your role that nobody else wants to take because they are "busy". Examples could be completing some old documentation, preparing the conference room for the team meeting and arranging the team lunch.
2. When you approach someone, you are advised to fix up a meeting but you are constantly interrupted yourself. The team members feel free to walk up to you or call you and discuss whatever it is they want to discuss.
3. Your schedule is modified constantly. Here you were working on a task but suddenly something else has come up and you need to attend to the new task. While you were busy completing the new task, your old task has been cancelled or re-assigned to someone else so now you need to discard your work.
4. You always work based on someone else's estimates. Examples could be that you may estimate a task taking you 8 hours but your manager wants you to do it in less than 4 hours. Or, you may want to prepare for a task and then do it but your teammate suggests that you do it directly.
Do you think that being "too nice" will affect your performance on the job? You bet it is. Just consider the four effects above:
1. You are spending your precious time on busy work that just about anyone could perform. Worse, this work may not be required at all.
2. Your concentration is being broken repeatedly. Coupled with the loss of your productive time, you end up work superficially.
3. You cannot plan ahead of time because your schedule keeps changing. You may not get good ideas immediately when faced with an urgent task.
4. You are tired or confused because you are working according to someone else' work style or speed.
The sad thing is that you may be thinking that you are working well trying to please everyone in your team even when in reality you are putting up a mediocre performance. Worse, you are positioning yourself as a "nice" person in the eyes of your team members more and more with the passage of time.
I can say these things from personal experience. Because, I too have been the prey to my "be a nice guy" approach from time to time.
The question is what should we do? Should we suddenly stiffen up and become very demanding from others? No, we should continue to behave cordially with our team members. However, we can ask ourselves the following questions:
a. What is my role in the project?
b. What actions do I need to take to fulfill my role best?
c. What actions do I need to refuse to fulfill my role best?
d. How do I guard my own productive time best (and still be respectful of others' time)?
e. How can I create or at least influence the approaches and estimates for my own work?
The only thing left for us to do is to make the changes according to our responses.
Good job performance requires confidence in our actions. This is especially true of software testing. After all, software testing is about generating confidence.