What makes me dislike a project?
- Bureaucracy is something that can be really frustrating. That includes process for the sake of process, innumerable cycles of approvals, tortuous and long test and deployment cycles, pointless documentation, and all that anti-agile stuff.
- Old technologies or the “wrong” technology for the job is always demotivating. We love new toys. There is nothing more annoying when the technology stack is imposed on the team. “You must use these tools from Oracle or IBM. But, hey, don’t look like that. You have support if you need it.”
- Lack of autonomy and credibility. “You are just the developers here. You don’t make decisions. You do what you are told to do. There are much smarter people here to worry about the _real_ problems. And by the way, you don’t have admin rights to your PC and you can’t access a few websites either.“
- Uninteresting domain. It’s always difficult to find motivation to build a great software if you don’t like what the software does or don’t really believe in the business idea.
- Demotivated people. How can we find motivation and have team spirit when your colleagues attitude is: “Oh, I just turn up to work, keep my head down and do what I’m told. If something goes wrong, it’s not my fault.”
- Finger pointing and highly competitive environment, where no one plays as a team. This is an environment where everyone wants to be the boss, they are always looking for a scapegoat and the less work they do, the more they delegate, the better. If something goes wrong, it would never be their fault. If something goes well, they take all the credit.
- Arrogant and unskilled people. Arrogance many times is used as a self-defence mechanism in order to hide the lack of skills a person may have. “I don’t need to read any books. I think all these new technologies and methodologies are crap. I’ve been doing this for years. I know what it is best.”
- Software factory concept. “We need to go faster. Let’s throw more developers here. Which ones? Doesn’t matter. Just hire some monkeys.“
- Mortgage-Driven Development
- Project managers that think they are the most important member of the team
- Very deep hierarchy
- You can’t help those who don’t want to be helped.
- I really could go on forever here….
So what is really the problem here?
The good projects and what I always would like to find
My favourite projects had quite a few things in common but the most important ones were passion, craftsmanship, friendship and trust.
It’s not because you like something that you are going to be good at it. However, to be really good at something, you must have a passion for it.
The only way to go fast is to go well – Uncle Bob Martin
Reference: Frustrations and aspirations of a software craftsman from our JCG partner Sandro Mancuso at the Crafted Software blog.