This was my experience at a previous company. As it was a small startup company, some of the normal software development procedures were not followed strictly. One of my colleagues was a senior programmer with the company for 2 years. His skills were quite lacking. He would allocate his tasks to me and then take credit for the work himself. He did this regularly, while I would also have to finish my own tasks.
I felt that I couldn't express this situation to senior management as that colleague had their trust.
Later, I tried to delay his tasks assigned to me so that reflect poorly on him (as he couldn't finish tasks) Also, client complaints piled up unresolved issues. Now the company knows about him.
Actually, now I'm heading to a new company as a Lead. Now I'm completely free with these situation.
Have any of you experienced situations like this? What would/did you do?