In the world of development, the term full-stack can spark some debate. We take a closer look at what being a Full-stack developer entails, and the skills you need to become one.
Today, it’s common to hear companies describe themselves or their processes as “Agile,” especially those working in the technology landscape. But what does Agile really mean, and why is it so popular?
We spoke with Peter Daly, a seasoned Vice President of Software Engineering and Technology, to help explain Agile methodology; what Agile is, how to implement it properly, and what that looks like on an organizational level. Peter has worked as a VP for more than 20 years for a wide range of companies, including BCE (Bell Canada Enterprises), Saville Systems, TELUS Health, and Achievers.
What is Agile?
Agile, at its core, is a set of principles and values that help break down complex projects into short, digestible pieces that increase the probability for success. Based on a simple manifesto and 12 core principles, Agile has become the modern standard for software development.
Put simply: “Agile is a concept created to improve the process of software development, and to help large, complex projects be successful,” says Daly. “It’s based on a number of ideas, but the basic principles are to focus on the capabilities of the team and not let them be encumbered by heavy processes, slow decision-making, or poor communication.”
How it All Started
Agile methodologies came about in the 1990s when a great portion of software development resulted in failure in some capacity; whether it was going over budget, not finishing on time, or being canceled altogether. In fact, The Standish Group’s Chaos Report in 1995 revealed that 31.1 percent of software development projects were canceled before they were completed, and 53.7 percent cost 189 percent of their original forecast. It was also apparent that the project failure in larger organizations was significantly worse than that in small- or medium-sized companies.
“The major contributing factors as to why such a large number of software development projects failed included obstacles like unrealistic deadlines and budgets, poor communication across teams and with senior management, project progress being impacted by change, and competing priorities,” Daly explains.
Created by 17 leading minds in technology and development, the Agile Manifesto was born in 2001 with the purpose of improving software development and shifting the focus from following a plan at all costs, towards adapting to change to deliver high-quality software.
Since then, organizations have been attempting to implement Agile principles and methodologies to improve their practices and ultimately reap the benefits. In fact, many organizations have started implementing Agile methodologies into all aspects of their processes – not just software development. This presents an entirely new set of challenges, but if practiced correctly, Agile can be the key to delivering quality projects on time, and within budget.
The Benefits of Agile
Spotify, Microsoft, IBM are a few of the industry-leading companies known to use an Agile approach. They are not alone. Over 71 percent of organizations use Agile in some way, which means if you don’t practice Agile, you’re an outlier.
So why has Agile become the standard across industries? First of all, it’s proven to increase the probability of success.
“When Agile and its frameworks, such as Scrum, are applied in a disciplined manner by teams with the necessary skills and experience, it will increase the probability of a successful project,” says Daly. “It’s a proven, lightweight, and easy to understand framework which is why businesses like to employ it.”
A recent report from PwC found that projects using Agile methodologies are 28 percent more successful than those that don’t.
Additionally, Agile enables organizations to create higher quality projects.
“The concept of inspection, which is a pillar of Scrum, allows quality to be built into the approach,” says Daly. “And when you can achieve high-quality levels, you’re going to lower your costs, and you’re going to improve the probability of delivering a successful project.”
Agile can also create a positive work environment by focusing on values. Scrum, an Agile framework, focuses on five core values that can improve the work environment.
“Key factors that make the entire concept of Agile successful are the Scrum values: commitment, courage, focus, openness, and respect,” Daly explains. “These values align with the most common things people look for in a workplace.”
“People enjoy working this way, and they take more ownership of the outcomes. They’re working in smaller teams that are more effective from a communications point of view.”
The positive impact of Agile on employees and entire teams is one of the key ways to measure its success.
“An important indicator is the morale of your development teams. It’s typically higher when you’re using agile frameworks effectively,” says Daly. “The values of Agile and Scrum are values that developers look for. Teamwork is much stronger when those values are being met.”
Finally, the easiest way to determine if you are implementing Agile methodologies correctly is to look at the project outcomes.
“Another indicator of success is that you are producing high-quality software,” explains Daly.
“If agile is working, that means you’re able to continuously deliver either new products or improvements to your products, in a short period of time.”
Looking to implement Agile methodologies? BrainStation offers Agile training that will give you the tools to improve your processes across the full digital product lifecycle.