Agile is an umbrella term for several iterative and incremental software development approaches, with each of those variations being its own Agile framework. The most popular Agile frameworks include Scrum, Crystal, Dynamic Systems Development Method, and Feature-Driven Development. Mendix, in particular, subscribes to the Scrum methodology.
While each Agile framework has its own unique qualities, they all incorporate elements of iterative development and continuous feedback when creating an application. Any Agile development project involves continuous planning, continuous testing, continuous integration, and other forms of continuous development of both the project and the application resulting from the Agile framework.
Each Agile framework is considered lightweight. Rules and practices are kept to a minimum, especially when compared to traditional waterfall-style development processes, and are designed to be adaptable to all kinds of circumstances. The focus, instead, falls on empowering developers of all kinds to collaborate and make decisions together as a group quickly and effectively. The grand vision behind Agile development is to create applications in small increments, with each individual increment tested before it is considered complete. This process assures quality is “built” into the product, versus inspecting for quality later.
Within the Agile framework called Scrum, there are three primary roles to fill: Scrum Master, Product Owner and Scrum Team.
The Scrum Master is the coach and the gatekeeper. This dual role establishes responsibility for following the Agile framework, providing guidance and education, and removing impediments and distractions.
The Product Owner is first and foremost the subject matter expert for the given project. A Product Owner keeps track of the projects stakeholders’ expectations and defines and gathers the required tools and resources. In addition, the Product Owner communicates their vision to the team in order to set priorities.
Finally, the Agile Team is the group doing the actual developing. The Agile team tends to be made up of seven members and typically includes a selection of engineers, designers, architects and testers.
Scrum is a lightweight Agile framework with broad applicability for managing and controlling iterative and incremental projects of all types. In addition, there are other frameworks for Agile development. Two other well-received frameworks are Kanban and Extreme Programming.
Kanban focuses on a visualized workflow where work is broken down into small pieces. By respecting well-defined project limits, following explicit process policies, and measuring and managing flow, Kanban is especially attuned for identifying bottlenecks and waste, as well as reducing wait time.
Extreme Programming is an Agile framework centered around engineering principles and is focused on ensuring delivery of high-quality software. Extreme Programming teams work collaboratively in short development cycles and are flexible and adaptable to change. Extreme Programming utilizes user stories and frequent small, planned releases.