Both approaches can work, but it's not good to mix the two personality types within a team as their goals are mutually exclusive.
Both approaches can work, but it's not good to mix the two personality types within a team as their goals are mutually exclusive.
Being passionate about your work does not give you the right to be in charge, in programming or any other field. Yes, good programmers want to make a good product, but as the saying goes, sometimes the best is the enemy of the good. Shipping a product with fewer bugs six months after the money to pay for it runs out... usually doesn't happen, because the money ran out.
It also had a VB6 codebase that half a dozen contractors had hacked into the sort of unholy mess that even H. P. Lovecraft knew better than to try to write about.
This is no joke, people: every variable was global.
I certainly take over from my incompetent team leader, because his solutions are not well thought through. They will work fine for a week or two then need constant debugging and tweaking. I have the experience and knowledge to see better solutions. That extra knowledge doesn't come by itself. I constantly try to improve my ability. I read articles about programming techniques and tools.
The problem as you describe it seems to be that your managers did not hire a competent senior developer as the team leader, nor have they fixed their error since.
It is also possible -- I can't tell from just your previous post -- that you are relatively inexperienced and place a lot of weight on the modern/trendy programming techniques and tools you read about, while your team leader is more experienced and sees through the hype.