Definition of Agile Software Management:
Agile Software Development is a project management approach. It is characterized by developing increments of software in frequent iterations (sprints) based on evolving requirements.
Synonyms for Agile Software Management:
Agile Methods, Agile Software Development, Agile project management
History of Agile:
Agile or Agile Software Management is an umbrella term for a number of project methodologies, Scrum being the most widely used. The concept of Agile was born in 2001 when a team of independent software developers gathered at a ski lodge in Snowbird, Utah to discuss alternative approaches to the traditional, top-down management, waterfall method of completing software development. Originally referred to as lightweight software development methodologies, the developers adopted the term Agile to reflect its lithe, lean style of project management, characterized by frequent iterations. By the end of the weekend, the developers had produced the Agile Manifesto, which included 4 values and 12 principles for Agile software development.
How Agile is Used:
Self-organized, cross-functional development teams work in close collaboration with customers and stakeholders to add value to every step of the process, targeting a goal of continuous improvement.
Agile project management has evolved into a number of project styles. Scrum ist probably the most popular agile method. Others include:
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
- Feature-Driven Development (FDD)
It is possible to assign a fixed cost to Agile projects due to Agile’s focus on feature prioritization and timeboxed iterations. If nothing of the budget is left before all features are included, those features will be developed and implemented at a later time. Agile teams always work on the highest-priority items within the sprint timebox, so that the customer receives the right product to meet their requirements.
Benefits of Agile Methods:
- Provide flexibility in development evolution- small changes can be made easily.
- Allows for early and regular releases.
- Reduces costs.
- Reduces waste of resources.
- Reduces risk- issues are discovered and resolved early.
- Encourages involvement of product owners, development team, and stakeholders.
- Encourages team ownership.
- Eliminates the need for long specification documentation.
- Increases customer satisfaction.
- Increases team performance, communication, and motivation.