What Is Agile Development? The Method Taking Technology Businesses by Storm
Anyone interested in technology careers will likely run into the term, “Agile development,” or even just “Agile” at some point. This methodology comes with its own set of jargon and a following of passionate technology professionals who swear by its superiority.
“Agile has become a major movement within the software development field,” says Alan Zucker, founding principal of Project Management Essentials. “Two-thirds of companies are using Agile at least some of the time.”
Some employers are even looking for Agile experience in their candidates. In the last year, over 120,000 job postings sought candidates with skill in Agile development.* It makes yet another area where a blend of business and technology skills means new job opportunities.
So what is Agile development?
Agile is an approach to software development that is designed to quickly and flexibly dedicate resources to development tasks. To truly understand Agile development, it’s important to understand how the traditional “waterfall” product or software development approach works. In that method, the work is thoroughly outlined in advance and performed in a strictly linear fashion.
“People work on specialized tasks based on their skills and role on the project. The entire project is planned at the beginning, and the goal is to execute against that plan, no matter what. It’s numbing work,” Zucker says.
But Agile represents a set of values and principles to guide a very different kind of software development process, according to Zucker. Agile typically employs small teams working together, developing software that meets their customer’s needs and delivering it in short iterations.
Agile emphasizes cross-functional collaboration. “You assemble a team across many different types of jobs,” says Ian McClarty, president of Phoenix NAP Global IT Services. Programmers, testers, software architects, engineers, networking experts, business analysts, project managers and business owners all work together and communicate throughout.
“Unlike traditional development methods where the business designs and documents a new product and then ‘throws it over the wall’ for technical teams to implement, Agile is continually collaborative,” McClarty says. Team members communicate daily, and the variety of professionals on the team helps to minimize situations where work needs to be redone, or where work is done to solve customer problems that don’t actually happen in the real world (i.e., dedicating hours to making something load a tenth of a second faster when it doesn’t have a tangible effect on their experience).
The iteration cycles are also a big change from traditional methods. “The short, incremental steps make it easier to handle unexpected events or changes in requested functionality,” says Marijn de Römph, Agile team coach at Bynder. “Because of the short cycles, you can get feedback really fast and change your approach based on this feedback.”
Why are companies using Agile development?
Many companies turn to Agile because it can be both adaptable and extremely efficient. “In traditional waterfall-type development teams, there is no flexibility. The technical team gets an exact list of what they have to build, and they have to follow it,” McClarty says.
In that kind of environment, when something doesn’t make sense, there are often problems in communicating that back to whoever came up with the original design, McClarty explains. “Then there are further problems revising the design to solve those problems.”
Think of it this way—if someone asked you and your friends to build a two-story, green Lego house and gave you definitive plans for getting it done, you’d all probably just break up the work and be on your way. But what happens when mid-way through building this house they decide they need to make it three stories tall and red? Yikes—you’re going to need to go back and redo a lot of work to fit the new specifications.
In an Agile environment, the team breaks down the work into small, prioritized portions and talks to one another to address problems as they come up. “This flexibility allows developers (and other folks in technical disciplines) more input on the final design of the project, while working closely with the business stakeholders to ensure that what is being built is what the business wants,” McClarty says.
“Above all, these teams value working and cleanly written software over documentation and specifications,” says Stacey Watro, a software consultant developer for Stride Consulting. Bypassing most of the traditional requirements in a hierarchical system, while also keeping the necessary communicators in the same room, saves time that can be spent on the product instead.
“It yields better outcomes,” says Shelley Iocona, founder of ON ITS AXIS. “Agile environments empower people to make team-level decisions and focus on continuous planning, testing and integration.”
What is working in Agile like?
Another perk of Agile development is for the employees. “Everyone has a personal stake and commitment to the success of the project,” Zucker says. It’s a very democratic work environment.
Instead of the typical levels of reporting to superiors, the team itself decides how much work to complete in a development cycle. “The team is accountable to itself and their customers in delivering that work,” Zucker says. “This environment eliminates much of the finger-pointing and blaming that occurs in traditional projects.”
For the right employees, this kind of environment can be empowering. “Agile teams are encouraged to develop their own personalities and group identities,” Zucker says. It manifests in Agile teams with group mascots and team names, as well as processes customized to best fit the group. They customize the processes to meet their unique needs. “People are excited about working together. There is great spirit and camaraderie.”
Agile teams are usually the opposite of a solitary career coding in a cube, according to Watro. “You are part of team—working and collaborating to create software that best fits the customer’s needs. It's fun, it's engaging and it's more than just coding, though there's lots of that too!”
Is Agile development for everyone?
With those benefits, you might think every company would attempt Agile development. But making the method successful involves more than lip service. “Agile has sometimes been an MBA-type buzzword that companies try to implement,” McClarty says. But if everyone doesn’t buy in, from both the management and cross-functional teams that Agile calls for, McClarty says it is unlikely to be successful.
“Try not to think of Agile software teams in a binary way,” Watro says. “There is no prescription for an Agile team.” Every team will be different, and they will attract different kinds of employees as well.
And there are situations where Agile development probably isn’t the best choice. McClarty says for companies that have separation between business stakeholders and technical teams (i.e., working in different time zones), the communication necessary in Agile will be too difficult.
This also goes for potential employees. “I am not sure if everybody can work in an Agile environment,” de Römph says. “It can feel a bit chaotic now and then. You need to think long-term, but at the same time, you need to try not to get into all the details until the moment you really start creating functionalities.”
Since Agile teams make many decisions together, employees who prefer to stick to just one task or specialty will need to widen the scope of their work.
What is the future of Agile Development?
So where is Agile headed? Students headed into technology might well wonder how popular the method is likely to be by the time they graduate. Predictions are definitely favorable.
“Agile is here to stay,” Iocona says. “The way we work in business today requires that we iterate through our development cycles and evolve solutions to problems.” Iocona encourages students to learn about how Agile development began to have a deeper understanding of why it is so important.
What about your future?
Now that you know a little more about the meaning behind the method, ask yourself: What is Agile development to you? Does it sound like a work environment you’d enjoy?
Whether you plan to work in an Agile setting or not, having an idea of what it is and what companies use it for is a good idea—in both technology and business. “Students need to be familiar with the basic precepts of Agile before they can fit themselves into a company that is already using it,” McClarty says.
“As a student, you are often working with specific requirements,” Watro says. “Industry is never that simple. Agile software development is about accepting this fact and adopting a process to create software despite industry challenges.”
Agile development, project management and programming ability—the list goes on. It takes all sorts of skills and abilities to keep a successful tech company humming. If you’d like to learn more about some of the tech careers that blend business and tech skills, check out our article, “8 Best Technology Jobs for Business-Savvy Professionals.”
*BurningGlass.com analysis of 121,204 job postings from Jan. 01, 2017 – Dec. 31, 2017