Agile has been around for a while, but recently it has come back into focus. But what is agile development and why has it become such an important concept? It has become such a buzz word but do you really know what it means or why it could be a great addition to your development process?
Agile is a project management term that uses short development cycles, or iterations, to focus on continuous improvement in the development of a product or service.
Agile was originally developed to improve the development process - allowing it to rapidly identify and adjust for issues and defects. A major benefit is that it allows development to keep ahead of customer expectations, competition etc.
There are 12 key principles that guide an agile project
-
Customer satisfaction is always the highest priority; achieved through rapid and continuous delivery.
-
Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
-
A product or service is delivered with higher frequency.
-
Stakeholders and developers closely collaborate on a daily basis.
-
All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and trusted to accomplish project goals.
-
Face-to-face meetings are deemed the most efficient and effective format for project success.
-
A final working product is the ultimate measure of success.
-
Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
-
Agility is enhanced through a continuous focus on technical excellence and proper design.
-
Simplicity is an essential element.
-
Self-organizing teams are most likely to develop the best architectures, designs and meet requirements.
-
Regular intervals are used by teams to improve efficiency through fining tuning behaviors.
Many industries actually make use of an agile development process and follow these key principles. It is highly collaborative and is seen to be more efficient.
Some of the more popular agile methods used are
-
Scrum
-
Kanban
-
Lean (LN)
-
Dynamic System Development Model, (DSDM)
-
Extreme Programming (XP)
-
Crystal
-
Adaptive software development (ASD)
-
Agile Unified Process (AUP)
-
Crystal Clear methods
-
Disciplined agile delivery
-
Feature-driven development (FDD)
-
Scrumban
-
RAD(Rapid Application Development)
While agile development has many advantages, it also has a few disadvantages - it certainly is not for every project or project team. It also favors developers, project teams and customer goals, not necessarily the end user’s experience.