What Is Agile Software Development?

The agile software development model places a priority onadaptability and responsiveness to feedback. It is an iterative approachthat follows a set of 12 principles or values.

Agile is among the most popular software development modelsin use today, according to a 2015 Hewlett Packard survey of hundreds ofsoftware developers and IT professionals. Most developers who use the agilemodel say that it enhances collaboration and improves quality, according to thesurvey.

So, what does it mean to “be agile” or use agile softwaredevelopment?

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 beginningemerged a set of values that focus on customer experience and collaborativedevelopment.

The principlesemphasize:

  • Iterative development through “early andcontinuous delivery” of software
  • Embracing changes during development,particularly in response to customer feedback
  • Collaboration between business and developmentinterests
  • 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 softwareiterations at frequent intervals.

Agile is considered an adaptive development model, whichallows for flexibility in creating the path to reach development milestones andalso allows for requirements and milestones to change during the developmentprocess.

Agile and eLearning development

Why might this work when used to develop eLearning?

For openers, it places the end user of the software oreLearning front-and-center. Rather than getting attached to a developmentschedule or process, the agile method keeps development teams focused on howlearners will use the product.

One way of doing this is by releasing iterations of theproduct and having actual learners test them. Feedback from these users is thenapplied 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 softwarebreaks down planning and design into smaller chunks as well. An iteration mightbe released every one to four weeks; thus planning, design, coding, and testingalso occur in these shorter cycles. Many agile teams conduct daily reportingsessions, ensuring that all team members are aware of progress—and of any roadblocksthat could slow down that progress.

In the words of one of the signatories of the Manifesto, JimHighsmith, “The Agile movement is not anti-methodology, in fact, many of uswant to restore credibility to the word methodology. We want to restore abalance.”

Of course, developing software this way requires a broadcommitment. When the agile model is used, a lone developer is not tinkeringaway in a corner for weeks on end; an entire team, including learners, otherstakeholders, and content experts, must commit to reviewing and evaluatingfrequent small releases.

In addition to needing broad buy-in, agile softwaredevelopment has some limitations. According to the International Software Testing Qualifications Board (ISTQB), a disadvantage of agile isthat “only senior programmers are capable of taking the kind of decisionsrequired during the development process.” Additionally, the ISTQB points outthat, at the beginning of an in-flux design process, it can be difficult toknow what effort will be required to develop the software, which makes long-rangeplanning challenging.

Note that agile software development is distinct from AGILEinstructional design, which is described in “Agile Instructional Design: The Big Questions.”

Share:


Contributor

Topics:

Related