Teamwork

written by Andreas Schipplock
Teamwork is a broad term in general but in software development teamwork is mandatory simply because a single human being isn't capable to master the universe; He-Man! Especially in big projects.

I'm personally a big team player; you can interrupt me whenever you want and I'll try to find an answer for you because, otherwise, you get stuck, and can't progress on the project. For me it makes no sense if I personally progress but others don't because we are all working at the same company.

If I'm not allowed to work in a team, I won't function properly. I need human beings around me. I need distractions from time to time to function. My brain isn't made to burst the 100% constantly.

But I encountered a very sad behaviour this week. I was confronted with quite a big project 3 weeks ago and I had to do it on my own; I had to start this project more or less on my own just because my collegues had other stuff to do. The project started on a bad premise because project leaders communicated a wrong time estimate so I had to work on it every weekend to get it finished "in time".

...G...reat....

And because time ran out, "manager people" decided to bring other people to the project. These other people were and still are my collegues. They had no idea about the specification and the implementation. They were confronted with bug reports from the customer and they got frustrated quickly. Programmers are slow and hate to read specifications, hate to read "foreign" code and probably hate to work at all (that's why they became programmers, obviously). Well, not everyone but I know a lot.

So what happened? They got mad at _me_. The project was in a 70% ready state but my collegues had some design decision criticism which were perfectly fine if we had worked together from the start but at the current state there was no time to discuss about certain design decisions because time ran out already. I followed the written specification strictly simply because that's what our requirement people communicated with the customer. This specification required a different approach in the GUI data handling. This different approach wasn't wrong but simply different and adapted to the specification.

So one of my collegues didn't want to understand the current implementation nor the written specification. He still has no clue about the specification but adapted the gui implementation to his liking because that's the way he always does it and did it so that's the right way here.

And now guess what? It ended in a disaster. We worked hard to adapt everything to the new structure but because I was the only one who got the specification in mind, I got hundreds of questions regarding functionality. We literally lost 2 days and had even more bugs after the "rewrite". The bug report that triggered the rewrite is still "open" because my collegue didn't understand the bug at all. I said it's an easy fix but he decided to blame me in front of all the managers.

We are still restoring functionality that was working before and we introduced a whole lot of new bugs that weren't there in the first place.

It started all on a bad premise but it ended in a disaster. And even worse my collegues seem to be no team players...and they hate me because I worked hard when they left work early and didn't help me at all during the weekend sessions. They had a nice time when I was trying to burn me out. At one weekend one collegue came by...with his noisy child; he only was present for 2 hours or so and I even solved his problem. I was helpful though he had his noisy child with him. I solved a bug, that wasn't related to my high prio project, for him and he left. I didn't complain this day.

I now literally gave up the project because I'm simply pissed. All they have in mind is their own success which is the exact opposite of what I want to achieve. All I want at work is good team work. That's it. If I have to take care of collegues who want to stab me in the back, I don't want to work with them anymore.

Fuck off. This weekend I'm doing exactly nothing.