What is an Agile Methodology?
Agile represents an overarching philosophy for software development, emphasizing the value of iterating quickly and often to satisfy customers. An agile methodology can be defined as a specific software-development approach based on the agile philosophy articulated in the Agile Manifesto.
You can refer to any of these frameworks as methodologies or even processes. Though, as you may recall that one of the manifesto’s four values states the philosophy prioritizes “Individuals and interactions over processes and tools.” The majority of agile teams use frameworks only as a starting point for their agile transformation, eventually customizing elements to meet their unique needs.
There are many popular agile frameworks used by various organizations. Often these organizations modify parts of the frameworks as they see fit and as they iterate on their own agile processes. Below you’ll find our overviews of several commonly used and well-document frameworks for agile software development.
- eXtreme Programming (XP)
- Dynamic Systems Development Method (DDSM)
- Feature Driven Development (FDD)
- Adaptive Software Development (ASD)
- The Crystal Method
- Lean Software Development (LSD)
- Disciplined Agile (DA)
- Scaled Agile Framework (SAFe)
- Rapid Application Development (RAD)
Which framework is best?
With so many different approaches to structuring agile processes within your organization, you’re probably wondering how to go about choosing one. Unfortunately, there is no one-size-fits-all way to practice agile software development. There are many factors that may influence which framework you choose to work with. Such as:
- Company size
- Team structure
- Available resources
- Needs of stakeholders
- Structure/size of your product portfolio
Each framework has its own unique set of strengths and weaknesses. And the framework that works for someone else’s team might not be the right one for you. Ultimately, you’ll have to experiment a bit and figure out what works best for you.