Agile is a system designed to coordinate the work of many people working together, but independently. The evolution of Agile has brought forth many revolutionary ways of thinking about collaboration in tech. We often use buzzwords and jargonistic language when we discuss Agile, so exploring concrete examples can be a great help in understanding the concept.
The following is a brief introduction to a few different implementations of the methodology and how they differ from one another.
1. Extreme Programming
"XP is an opportunity to test yourself, to be yourself, to realize that maybe you’ve been fine all along and just hanging with the wrong crowd."
—Kent Beck, Founder of Extreme Programming
One of the first Agile celebrities was a man named Kent Beck. In what we imagine was one incredibly disruptive evening of personal study, he realized that the quality of a team's output was often directly proportional to the synergy and the spiritual health of the people carrying it out.
His million-dollar idea? Developers are human, and so are the stakeholders that they serve. We become defensive when we're afraid, unsure, dissatisfied, or frustrated. With the introduction of Extreme Programming (XP), Mr. Beck imparted the world of tech with a sense of humility and a genuine desire to unify.
At the heart of it all: an authentic belief in the power of others and their ability to learn and to grow. His book, Extreme Programming Explained, cites effective communication, frequent feedback, and mutual respect as all being key ingredients.
Short development cycles play into this concept of exchanging rounds of feedback often. The product and the team itself become much more reactive to circumstances as they change. We can build better products more quickly in this way.
The Scaled Agile Framework, in essence, is Agile built to scale. What does this mean, exactly?
Running a lemonade stand in front of your house is a little different than managing an entire corporation. What works on the ground level does not always "scale" upward as a business grows and takes on momentum.
When you deal with three customers a day, you can probably do so completely on your own. With 300 daily customers, however, you may find yourself overwhelmed. SAFe is a hand to hold for leaders making this leap in scale, providing a framework that facilitates effective growth as a company.
One of the most important concepts in SAFe is something called "alignment". An employee's sense of alignment with the vision of the company acts as their moral compass. With the help of this guiding light, everybody stays on the same page, no matter how things develop over time.
There are several broad categories of SAFe, all meant to address a different need:
- Essential SAFe: This form of SAFe establishes the bare necessities of what an entire Agile Release Train requires. An Agile Release Train, or ART, is the smallest team possible that's still capable of accomplishing a given goal. Essential SAFe prioritizes the well-being of these teams above all else.
- Large Solution SAFe: Large Solution SAFe takes all of the principles of Essential SAFe and elevates them conceptually to full-scale. It is meant to aid governmental and other enterprise-level organizations. Large Solution SAFe seeks to set a standard of accountability for the most powerful corporations on the planet, enabling them to make a much more positive impact on everybody that they share it with. This includes their customers, their own employees, and their internal leaders, as well.
- Portfolio SAFe: Companies working under this framework start with the needs of the customer. From every emerging demand to fulfill, something called an epic takes root. Each epic aligns clearly with something that the business wishes to accomplish; it becomes the driving force animating the performance of each ART. This "flow" of value is disciplined by a desire to keep things "lean"—teams only build what is needed, with as little waste as possible.
- Full SAFe: Finally, we arrive at SAFe's most comprehensive form. Here, all possible needs are accounted for with all core competencies taken into consideration.
The idea is that integrity must be present at every level in a corporation, and not just in name or in word. These different flavors make it easy for companies to adopt only what will actually serve their needs.
Working in a silo means working on your own for long periods. Scrum and Agile, in a general sense, seek to prevent people in tech from trapping themselves into a professional lifestyle devoid of peers and knowledge-sharing.
A Scrum team consists of a Scrum Master, a Product Owner, and their entourage of developers. Several Scrum "ceremonies", such as a daily stand-up between the entire team and one-on-one meetings between each collaborator and their Scrum Master, compel people out of silos. The conversation surrounding the work of the team becomes more candid and free-flowing. Ideas pass from person to person and everybody helps to improve them, using techniques such as Scrum Poker.
The hallmarks of Scrum include a short and active loop of feedback, a systematic approach to organizing the work ahead into sprints, and the formation of small, task-oriented teams that move freely through the company as a unit.
This freedom is meant to facilitate "iterative" work, which basically means work that is turned over, re-considered, and re-conceptualized as frequently and as thoroughly as possible. The team aims to remain totally flexible and in sync with the needs of the customer as these needs present themselves.
And That's Just the Tip of the Iceberg
If you're part of a team and you're all struggling, there will always be an appropriately prescriptive Agile implementation, formulated to help people just like you. If none of the above apply to your circumstances, we recommend looking into everything else that the entire Agile family has to offer.
The list of variations is long and impressive. It may surprise you to see just how much there is to learn about Agile programming.