Today in Hacker news I've seen one of the best posts about software development management, which summarizes almost all of the don'ts and burdens that all of us have to deal with at some points of our careers.
This is it: Coconut Headphones: Why Agile Has Failed
I like Scrum, I think that when correctly used is a powerful tool to help a team do their best effort in producing high-quality software. But I also think that having a ScrumMaster whose only programming experience were some Java homework from College and a few lines of VisualBasic is a waste of time for everybody.
The post reminded me of the boss I had before joining Devecoop. He strongly believed in the GitHub model: everyone should be allowed to code a feature the best way they think. However, I saw it in practice and it lead to a poor architecture mostly because of the lack of design leadership.
I believe that a minimal -and mostly technical- leadership must exist in every team, to ensure that the voice of the best and most experienced programmers is seriously taken into account -and thus, defining the architecture and other important things- but, at the same time, everybody can have opinions.
Now I have to go back to coding. I will elaborate on that last approach soon, stay tuned!