What is Agile? What is Scrum? What is their relationship? Let’s learn together.

What is Agile

The generalized agile

Agility is the ability to succeed in an uncertain and chaotic environment by creating and responding to change.

Agile development

When I say agile, I understand it to mean agile development, not necessarily software development, but also project management in other industries.

Agile uses adaptive life cycles instead of predictive ones. The predictive lifecycle defines and designs products in advance, and its goal is to implement the design according to the plan. Then, when the product cannot be predicted, the adaptive life cycle can be used. In the adaptive life cycle, it follows a feedback loop of creating a small but usable subset of products, getting feedback on their use, and then designing and creating the next subset of products based on that feedback.

It allows products to emerge from undefined needs and circumstances and, therefore, to be very flexible in the face of change. It’s very sensitive and fast because changes don’t slow it down.

The following chart illustrates the difference between a predictive and adaptive approach:

Agile software development

Agile software development is the umbrella term for a set of methods and practices based on the values and principles defined in the Agile Manifesto. Self-organizing, cross-functional teams evolve solutions using practices appropriate to their own environment.

Can Agile be used on all projects?

The answer is definitely no.

There are two main requirements for an adaptive lifecycle, both of which require true feedback loops to be enabled:

Incremental delivery

Incremental delivery means that you should create a “usable” subset of the product step by step, rather than deliver it all at the end of the project. Take a software system: you can have a simple version and create a new version (incremental) by adding new features every few weeks. With each release available, new features bring more value to users/customers. Unusable deliverables cannot create the real feedback needed, for example, in a construction project, when the foundation of the building is completed, it is delivered to the customer. Can the customer use it? Obviously not. Another floor will be delivered to the customer every other month, but the customer still cannot use it or move in. They can only use it after the completion of the project.

Iterative development

In order to deliver incrementally, you need iterative development, which means you should repeat the process. For a piece of software, you need to design, code, integrate, and test a subset of each product individually, rather than design everything together, code everything together, and then integrate it all at once (waterfall). Is it possible, for example, in a construction project? Can you design the foundation without designing the rest of the building? No, because there are inevitable dependencies between elements in this kind of product.

This is why agile can’t be applied to every project, just like it can’t be applied to construction projects. However, you can identify parts of a project that may be capable of iterative development and incremental delivery. Interior decoration is a good example of an architectural project that can be done in an agile way.

What is the Scrum

First we need to know how to be agile, we need to have a practical use adaptive life cycle approach, this approach provides step by step, and you need to follow some rules, but also provides a set of roles and responsibilities to project organization, finally also provides many management products as a tool to support development, All of these are provided by agile methods or frameworks, Scrum being the most popular agile framework.

The following animation shows how Agile works within the Scrum framework:

What are the Agile frameworks that conform to Agile

Scrum

Scrum is one of the most widely used agile methods today, and this development model is also known as the “football” approach: team members retain their own opinions and autonomy over the entire process of product development. The shift from a linear to an integrated approach to product development stimulated cross-learning, communication, and thinking across all levels of the team.

Kanban

Kanban is a way to visualize agile processes and products. It is equivalent to a signal system to software manufacturing process of collaboration, division of labor, scope, work, demand, progress, speed, cost, submission and other intuitive display.

Feature Driven Development (FDD)

The Functional Driven Development Model (FDD) is an Architecture-centric, short-iteration, target-driven development process that is mainly targeted at small and medium-sized software development projects. It starts by building an overall model of the project, and then completes the project through bi-weekly ‘design features — implement features’ iterations.”

Extreme programming (xp)

Extreme programming (XP) focuses on changing customer needs with an emphasis on teamwork. XP focuses more on teams (customers, managers, and developers) coming together to discuss solutions and solve problems during development.

Crystal method

Crystal Methodology: The Crystal Methodology is a series of agile methodologies established by Alistair Cockburn and Jim Highsmith. Alistair Cockburn has refined the Crystal method into Crystal Clear, Crystal Yellow, Crystal Orange and Crystal Red. These crystal methodologies are divided by the importance of the project and the size of the people involved.