So which exact things are considered the worst by developers themselves? The things causing entire teams to loose motivation or even quit this or that company?
1. Managers are to be good at management.
This fact does seem obvious yet most software managers are simply promoted developers that are clueless on how to manage a bunch of bearded coffee-into-code transforming grumpy folk. Sure there are many cases when promoted developers take this task seriously and are attending webinars or seminars about management, reading appropriate books and are becoming great leaders but, unfortunately, that is not always the case. What are the things one has to watch out for?
- People with telepathic powers that expect everybody to know what they are thinking about without telling. A developer may fail a task from such a manager without even knowing about it.
- Micro- micro-managers (or the ‘everywhere at the same time people’). They are the ones doing all the development by themselves with other teammates are just their hands, eyes and spare brains.
- The ‘I told you so managers’. They share the worst from previous two categories all combined with a horrible little thing of their own. They love proving others are wrong. They have no interest in the team succeeding, they wish to prove they are the smartest there is. What may be more inspirational for developers?
2. Either the best or nothing.
Perfectionism is a good thing as long as it’s not dividing your entire world into something either black or white. Meaning any practice or tool you are implementing has to be either perfect or it’s useless even to begin trying. What I meant is, sure a thing like unit testing won’t catch all the bugs (and what will?) but it is still cheaper and more effective so why not giving it a shot? If something is not a solution to every single issue you have there on your project it still may be worth a shot. There is no such thing as a silver bullet in software development and there never will be.
3. Fear of being different.
What startups are great at is being creative, thinking outside the box. Many teams of developers are to learn from such an approach. If everybody on board is doing the exact same thing without even trying to explore new limits they will probably get nowhere. Sure there will probably be no particular man responsible for the failure as everybody were doing the exact same thing, but may that be considered an achievement? This one has an opposite, the blame-game. The rules of the game are simple. If a process goes wrong or a company is losing money then, by some magic, there is always the responsible person found, got shouted at, lost his Christmas bonus or even got fired. There are so many wrong things with such an approach. What happens in a perfect company? There are no measures like screaming or firing people or whatever else may come in mind. Every person in such a company realizes we are all human and all make mistakes. Then the entire team analyses what went wrong and are trying not to make the same mistake in the future. Fin.