It’s quite common to see IT organizations with multiple software development groups enforce a single development and/or process methodology across all teams. I think this is a big mistake and ignores the fact software solutions and teams differ. A weak analogy to this is parents raising all their kids in the exact same way and ignoring the fact that each child is unique (and terribly more complex in their own right!)
A post by Martin Fowler distinguishes between strategic and utility software. In many organizations different software solutions occupy different places in the Strategic – Utility continuum and instead of requiring all products to conform to a single process/method, management needs to understand the role each software solution plays in the overall vision of the business and align processes in that manner also taking team on hand into consideration.
Am I suggesting that individual product groups should just be able to do whatever the choose without any direction? No, not at all. Management still needs to the set the parameters and frameworks under which methods are used to develop software such as requiring that all teams be agile but leave actual implementations to the teams.