
Agile development is a form of project management and product development based on a process of incremental and iterative improvements. While the phrase “Agile development” was first coined in 2001 in “The Agile Manifesto,” the concept of iterative improvement, one of Agile’s fundamental principles, has a rich and varied history that dates back to the 1950s (or earlier, depending on how broad a definition you use). “Agile development” is often used as a shorthand for “Agile software development,” because software developers are by far the most active and passionate proponents of this concepts. Forrester Research, an independent technology and market research company, reported that some 35% of surveyed organizations described their primary information technology development method as Agile. However, Agile development techniques can be used in other project management environments as well. Project managers and knowledge workers of all types should be able to apply Agile principles to their workflow to be more productive and efficient.
Other Definitions
The fact that many practitioners regard Agile as a broad philosophical approach, rather than a specific methodology, means that there are a number of varied definitions.
Agile author and pioneer Jim Highsmith has characterized agility with two statements :
Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.
Agility is the ability to balance flexibility and stability.
The Agile Sherpa website describes it as “a common umbrella term used for today’s highly iterative and incremental approaches to software development” and adds, “The overarching focus of Agile development projects is the frequent delivery of high-quality, working software in the form of business-valued functionality.”
Under this Agile umbrella, there are a number of Agile methodologies, including Extreme Programming (XP), Scrum, Feature-Driven Development, and other approaches.
In general, however, Agile methods can be characterized as:
- adaptive rather than predictive
- people-oriented rather than process-oriented
- focused on the skill of the development team
- open to change (unlike some engineering methods)
- centered around small iterations
Why Agile?
People often wonder, why do we even have an Agile model to begin with? Actually, we can probably trace the roots back maybe 40, 50 years. And you probably know, we’ve been doing software development at least since World War II, but it became more prevalent in the 60s and 70s.
But in spite of having really decades of experience now behind us, what we’re finding is that it’s still difficult to complete these software development projects on schedule and on budget. There’s a lot of research that shows that over 50 percent, 60 percent even, of all projects that do add–that do software development are challenged. It doesn’t mean that they all fail, but they are challenged in terms of trying to meet their schedule and budget and deliver according to their requirements. So, people have been trying for a long time, at least since the 70s and 80s, they’ve been trying to figure out how to better develop software. There’s been a couple of different approaches that have taken place over time. Really they’ve been competing approaches.
One approach says that if we’re just better at planning, if we’re just better at trying to build our projects to be more predictable, then we will end up being much better in terms of our ability to deliver software. This is kind of the software factory approach. And it comes from the engineering world and the construction world. The thought is, is that if we just got better at it, if we just had better processes, better planning, could make our projects more predictable, that in fact, we would ultimately get better developing software.
But against that movement, there was another movement that started taking place in the 80s, where people started to think more fundamentally about the software development model. And they started to realize that this whole process, the whole software development model itself is flawed. And the thought process that said that we can build a software factory is itself part of the problem. Because people are realizing that you’re not going to be able to be predictable in most software development. The thing about building houses or skyscrapers or bridges is that they’re pretty similar from house to house to house to house. But with software development–much of the work we do in software development is the first time we do it. And in fact, it’s the last time we do it. A lot of the projects we do in software development are unique. And they don’t lend themselves very well to being predictable and trying to plan our way out of it.
So, people started having a counterculture movement, they started thinking more in terms of some fundamental changes that we could make to the software development lifecycle. And a number of these people got together in the early 2000s, in 2001 actually. A lot of the people that had been writing and thinking and were the thought leaders around this movement got together and they created what is called the Agile Manifesto in 2001. This is really the start of the modern Agile movement. Agile itself is a term that’s all-encompassing. There’s a lot of different elements and different aspects that come under Agile.
Agile in the Corporate Environment
Some large corporations have seen the value of Agile principles, not only in project management, but also as a management philosophy. Other firms have been less receptive to Agile, and some have tried it and been disappointed with the results.
Agile’s emphasis on self-organizing teams and on decentralized decision-making can be problematic for organizations with hierarchical management processes. Many managers, conditioned to elaborate documentation, struggle with Agile’s preference for face-to-face communication and simplicity in documenting plans and progress.
It’s not hard to see why the culture of some traditional companies is hostile to many of the elements that make up a successful Agile project. Yet the ability to cope with changing requirements (from customers and markets), which is a key feature of Agile, represents an opportunity for companies who can employ Agile principles and can do so for competitive advantage.
Recommended for you Agile and Waterfall Project Management
Review Checkpoint
To test your understanding of the content presented in this assignment.
1. True or False?
An Agile approach relies on iterations to make incremental improvements in processes or products.Choose only one answer below.
a. True
Correct. Agile development is based on iterative, incremental improvements
to project management or product development processes.
b. False
2. Agile methods can be characterized as focusing the most on ________.Choose only one answer below.
a. processes
b. planning
c. people
Correct. Agile methods are people-oriented rather than process-,
planning-, or quality assurance-oriented.
d. quality assurance