Agile Development a Growing Trend in Software Design

Agile Software
Agile development is a growing trend in the software industry. The methodology has started to become widely adopted both in corporate environments as well as with the independent contract developers.
The term agile development was coined in 2001 and was introduced in the Agile Manifesto. The methodologies behind agile development advocate stringent project management and the process encourages iterative analysis and modification throughout the life of a project. Because agile development is a fluid process it often promotes an environment where a clients goals are aligned with the development approach.
Agile Development Methodologies:
Scrum (SCRUM)
Scrum is an iterative, incremental framework for project managers and developers and is particularly advantageous when dealing with ground floor development. Scrum has broad applications and the methodology often helps to assist in the control and management of iterative and incremental projects.
• Crystal
Crystal is a man-powered, flexible, lightweight, software development methodology and is actually made up of a collection of methodologies. (Crystal Clear, Crystal Orange, Crystal Yellow, etc.) The crystal methodology addresses the reality that from project to project there are unique characteristics that require custom fitted practices and policies.
• Extreme Programming (XP)
Extreme programming is a methodology, which aims to improve the software development quality and responsiveness of changing project requirements. The extreme programming methodology advocates rapid feedback loops, extensive customer involvement as well as continuous planning through out the projects life cycle.
• Dynamic Systems Development Method (DSDM)
The dynamic systems development method is a cumulative and iterative approach that promotes continuous client involvement. There are nine key principals in which the dynamic systems development method is associated with. Those principals are active user involvement, business needs, team empowerment, frequent deliveries, integrated testing, and stakeholder collaboration.
• Feature Driven Development (FDD)
Feature driven development is an iterative and cumulative development process. The process starts with a model-driven, short-iteration process. It begins with a determination of the overall model shape. The process then continues with an array of two-week design and build feature cycles.
• Lean Software Development

Lean software development as a methodology is iterative in nature. The core principles of lean software development include eliminating waste, boosting learning, deciding as late as possible, delivering releases as fast as possible, team empowerment, integrity and seeing the whole.