Scrum is a failure in environments where developers do not hold a lot of sway, IMO, because it is too easy for the business types to want to ignore maintenance and updates in favor of bullet points they can put on their "successful initiatives" lists when evaluation time comes around.