In my few years as consultant software developer, I've been in great projects. Some went exactly as planned, smooth as a whistle. Others went completely wrong, rendering the team and myself stressed or even furious.
I've had the luck - yes, luck - to start in a big project that was completely failing. Every day, we were struggling with what had to be delivered, an enormous list of bugs that needed to be fixed, and the constant updates that we needed to release. Working late nights were no exception.
"How can we ever save this project?", was the big question. Serious change was needed, but there was no time, no money, no environment to support it. What to do?
Picture an angry bull (or dog, like in the gif) that was poked all the time, stressed and furious about a cage he's trapped in, with every attempt to improve his living conditions to be blocked. Well, that was me during my first project. Inexperienced and naive, I quickly became the loudest, most negative team member.
Why do I say I was lucky? It was a great learning opportunity. I've seen what my negativity did with my colleagues. I've experienced what little impact someone has, when he works his ass of, but also stumps around, saying "this needs to improve, and this, and this". "How can we ever save this project?", was the big question. Serious change was needed, but there was no time, no money, no environment to support it. What to do?
Everyone secretly likes to complain! Being able to complain, and finding people who think the same way, is a way to feel a bond, which is an important motivator. Complaining can give a short energy boost.
However, complaining becomes a viral decease pretty quickly. Your negative thinking causes another person to have negative thoughts. That person can spread these negative thoughts by also complaining. Not only today, but also tomorrow. Before you know it, everyone in your team has these negative thoughts. Then try to get rid of this negativism...
Negative people become demotivated people. Demotivated people often deliver a crappy result. A negative-thinking programmer wants his/her task to be done as quickly as possible, skipping the time to test thoroughly, making everything worse.
Your complaining can be another cause why the project is failing.
Shawn Achor gave a great TED talk about his research in positive psychology.
What I remember most, are these 3 points:
In a difficult project, that little window for setting up the tools for a great environment, refactoring old work, simplify processes, ... has often already been shut.
Because there is no room for massive change, does not mean that little ventures cannot be taken. Every little improvement is one step closer to the ideal world. Every improvement means working in a less shitty environment.
Like Carol Dweck tells us in his TED talk: don't be trapped in the tyranny of now. Look at the future: how can you tackle your problems, by taking steps of mini-sizes, combining working on these improvements with the daily sh*tty business?
I try to put the spotlight on these improvements.
Look where we were yesterday, and look where we are now. Team, let's think about how we can improve this further! Yes, we're taking baby steps here. But things do improve! We'll get there in the foreseeable future!
In a sinking boat, the hard working people that are constantly scooping up water out of the boat are important; but people looking for material to fill the holes are (at the least) equally vital. So praise other people's attempts for improvement, even if it did not help too much.
Limitations are often seen as a bad thing. I'm not quite sure they are.
When I look back at the things that I made as a kid, I'm sometimes impressed. Not because the work is great, but given the very few resources and vast amount of limitations I had to deal with, it was descent.
Limitations force you to think hard and long on how to solve problems. More thinking generally leads to better work. "Easy jobs" often go wrong because not given enough thought has gone into the job, or its side effects.
It's not fun to work in a world with limitations. But by investing in time to make thoughtful decisions, it can lead to better work.
Since this post has already referenced to 2 TED talks, let's add one more, concerning this topic.