Meta-comment: It would be cool to have survey questions on Programmers.
Since Scrum varies so much between different teams and different organizations this question is going to be very difficult to answer. Scrum should be about empowering the team to deliver great software and developers should like that.
Where does it go wrong?
The answer is in my statement above. The team is not empowered or great software is not delivered.
There are so many failure modes, here are some:
- The product owner does not understand the customer or the business.
- The team does not understand the customer or the business.
- Organizational issues stand in the way of the team's accomplishing their goals.
- Scrum turns into a day-by-day micro-management.
Those are sometimes known as scrum-buts.
IMO Scrum is more likely to be liked/successful if:
- The team has made the decision to adopt Scrum because it felt it was appropriate for the product/project.
- There is strong/continuous feedback from the customer through the product owner.
- Ship after every sprint.
- The team has autonomy, is self-organizing and full trust/support from the organization.
- A large percentage of items in the backlog come from the team.
Another comment is that in Scrum "lazy" programmers are only accountable to the team so they may prefer that to being accountable to their boss. At any rate, I don't think this is a factor.
A problem I see with Scrum is the chicken and egg problem. If you are already agile you may not need Scrum. If you are inherently un-agile Scrum will probably not change it, it may even make things worse because it will bring any agility to the surface and make it so visible that the anti-agile forces can squash it :-)
Can a non-agile organization just turn agile? I don't know. I think Scrum wants to do that but I'm not sure it can.