The term ‘agile‘ is a philosophy and is a conceptual framework for undertaking software engineering projects. Most agile methods attempt to minimize risk by developing software in short time boxes, called iterations. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini increment of new functionality: planning, requirements, analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration.
Agile software development refers to a group of software development methodologies that are based on similar principles. Agile methodologies generally promote: A project management process that encourages frequent inspection and adaptation; a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.
Agile Software development lay stress on:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Some of the well-known agile software development methods:
- Agile Modeling
- Agile Unified Process (AUP)
- Agile Data Method
- Essential Unified Process (EssUP)
- Extreme programming (XP)
- Feature Driven Development (FDD)
- Getting Real
- Open Unified Process (OpenUP)
Here are some Characteristics of Agile Methodologies:
– Iterative with short cycles enabling fast verification and corrections.
– Time bound Iteration cycles (Daily, Weekly and monthly).
– Modularity at development process level.
– People oriented.
– Collaborative and communicative working style
– Incremental and convergent approach that minimize the risk and facilitate functional additions.
We will discuss Agile Methodologies and Compare with traditional Software Development methods one by one in upcoming posts. Stay tuned 😉 .