A Brief Description of Agile Development
In software engineering, there is a process of dividing software development work into distinct phases. This process is called the software development process. There are many methodologies used in software development such as waterfall, prototype, agile development, etc.
What is Agile?
Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment. Agile software development is more than frameworks such as scrum, extreme programming, or feature-driven development (FDD).
Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the manifesto for agile software development and the 12 principles behind it. With agile development, you can adaptively respond to changes favorably. Agile development allows you to do direct communication to maintain transparency among the team. The quality of software developed using this methodology could be improved by finding and fixing defects quickly and identifying mismatched early.
When there are pros, there are cons. Agile development is not perfect. While developing software using this methodology you may be too focused on working with software and forget about the documentation. Therefore the software lack documentation efficiency.
Agile Process Flow
- Concept — Projects are envisioned and prioritized
- Inception — Team members are identified, funding is put in place, and initial environments and requirements are discussed
- Iteration/Construction — The development team works to deliver working software based on iteration requirements and feedback
- Release — QA (Quality Assurance) testing, internal and external training, documentation development, and final release of the iteration into production
- Production — Ongoing support of the software
- Retirement — End-of-life activities, including customer notification and migration
Agile Iteration Workflow
The agile software development life cycle is dominated by the iterative process. In agile you will face multiple iterations processes and each follow its own workflow. A typical iteration process flow consists of
- Requirements — Define the requirements for the iteration based on the product backlog, sprint backlog, customer and stakeholder feedback
- Development — Design and develop software based on defined requirements
- Testing — QA (Quality Assurance) testing, internal and external training, documentation development
- Delivery — Integrate and deliver the working iteration into production
- Feedback — Accept customer and stakeholder feedback and work it into the requirements of the next iteration
This method is more suitable in situations where customers and project stakeholders are available to provide input and feedback. Below are four typical activities that you would do when doing agile development
- Daily Meetings — Host consistent or daily stand-up meetings to maintain open communication, hold workers accountable, and keep each iteration moving forward
- Live Demonstrations — Deliver live demonstrations of each iteration’s final product to show progress
- Share Feedback — Receive feedback from stakeholders and customers and share it with the entire team before the next iteration begins
- Remain Agile — Make changes to your process based on feedback to ensure each iteration improves the last
12 Best Software Development Methodologies with Pros & Cons
Find out how to create ways for efficient software development with unending support of expert professionals to…