Agile software development is more than frameworks such as [Scrum[Extreme Programming or Feature-Driven Development (FDD).
Agile software development is more than practices such as [pair programmingstand-ups][planning sessions]sprints
Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the [Manifesto for Agile Software Development and the [12 Principles behind it. When you approach software development in a particular manner, it’s generally good to live by these values and principles and use them to help figure out the right things to do given your particular context.
One thing that separates Agile from other approaches to software development is the focus on the people doing the work and how they work together. Solutions evolve through collaboration between self-organizing cross-functional teams utilizing the appropriate practices for their context.
There’s a big focus in the Agile software development community on collaboration and the self-organizing team.
That doesn’t mean that there aren’t managers. It means that teams have the ability to figure out how they’re going to approach things on their own.
It means that those teams are cross-functional. Those teams don’t have to have specific roles involved so much as that when you get the team together, you make sure that you have all the right skill sets on the team.