The agile software development model places a priority on adaptability and responsiveness to feedback. It is an iterative approach that follows a set of 12 principles or values.
Agile is among the most popular software development models in use today, according to a 2015 Hewlett Packard survey of hundreds of software developers and IT professionals. Most developers who use the agile model say that it enhances collaboration and improves quality, according to the survey.
So, what does it mean to “be agile” or use agile software development?
The agile model arose from a gathering of 17 software developers, who created the “Agile Manifesto” during a meeting at a ski resort in Utah in 2001. From this unlikely beginning emerged a set of values that focus on customer experience and collaborative development.
The principles emphasize:
- Iterative development through “early and continuous delivery” of software
- Embracing changes during development, particularly in response to customer feedback
- Collaboration between business and development interests
- Self-organizing, collaborative, supportive teams
- Efficient, in-person communication
- Attention to design and technical excellence
- Reflection and retuning of teams and products
Equally important, the manifesto de-emphasizes process, tools, and rigid adherence to a plan; it prioritizes releasing working software iterations at frequent intervals.
Agile is considered an adaptive development model, which allows for flexibility in creating the path to reach development milestones and also allows for requirements and milestones to change during the development process.
Agile and eLearning development
Why might this work when used to develop eLearning?
For openers, it places the end user of the software or eLearning front-and-center. Rather than getting attached to a development schedule or process, the agile method keeps development teams focused on how learners will use the product.
One way of doing this is by releasing iterations of the product and having actual learners test them. Feedback from these users is then applied to the developing product, continually improving the eLearning product. Communication and feedback are central elements of agile development.
Creating incremental iterations of a piece of software breaks down planning and design into smaller chunks as well. An iteration might be released every one to four weeks; thus planning, design, coding, and testing also occur in these shorter cycles. Many agile teams conduct daily reporting sessions, ensuring that all team members are aware of progress—and of any roadblocks that could slow down that progress.
In the words of one of the signatories of the Manifesto, Jim Highsmith, “The Agile movement is not anti-methodology, in fact, many of us want to restore credibility to the word methodology. We want to restore a balance.”
Of course, developing software this way requires a broad commitment. When the agile model is used, a lone developer is not tinkering away in a corner for weeks on end; an entire team, including learners, other stakeholders, and content experts, must commit to reviewing and evaluating frequent small releases.
In addition to needing broad buy-in, agile software development has some limitations. According to the International Software Testing Qualifications Board (ISTQB), a disadvantage of agile is that “only senior programmers are capable of taking the kind of decisions required during the development process.” Additionally, the ISTQB points out that, at the beginning of an in-flux design process, it can be difficult to know what effort will be required to develop the software, which makes long-range planning challenging.
Note that agile software development is distinct from AGILE instructional design, which is described in “Agile Instructional Design: The Big Questions.”