The challenge with agile is how it is run. Agile/scrum is an opportunity for micromanagement. Agile/scrum is an opportunity for greater freedom to developers. I think that this reveals that company culture is more important than any methodology. If the company culture does not fit agile/scrum, then it will not work. Another important factor is the experience-level of the team. For novice developers, scrum/agile seems like unnecessary process. For a small team of experienced developers, it may not be necessary because they may already be following its best practices. From my experience, scrum/agile is best done when it fits company culture, has buy-in from the most experienced developers, and is used with a team of mixed experience.