Is agile still relevant: Make your team adaptable and agile again

Author Image

Adam Gajek

Software Engineer

11 minutes read

The Agile methodology is a popular approach in the software industry that emphasizes efficiency and adaptability. In that context, efficiency means doing the right work that is the most critical and valuable. Adaptability, however, means the ability to pivot when you notice your team’s working inefficiently. Before we dive deeper into the matter, let’s remember what Agile means. The Manifesto for Agile Software Development phrases it as follows:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

One prevailing misunderstanding portrays Agile as primarily focused on sticking to processes. It has arisen due to numerous teams deviating from the core principles outlined in the original Agile Manifesto. Some have even claimed that Agile is dead or irrelevant. And they might be right, as it’s currently hard to notice any benefits with a focus on Sprint estimation, especially with the downsides of Agile lurking around each corner.

In this article, we want to show you how to improve agility the right way. We’ll explore the essence of Agile and see why it’s still relevant today. We’ll go through some tips on realigning our workflows with Agile’s core principles. To do so, we’ll focus on the last one, Agile’s true essence: “Responding to change over following a plan”.

Why Agile is still relevant today

Even when following processes with clear priorities, many teams struggle to change direction quickly and efficiently when conditions change.

Let’s say your team prepared a well-thought-through plan. They lined out clear priorities, created tasks oriented around their goals, and distributed them evenly throughout the team. 

However, near the end of the sprint, the Product Manager announces a change of plans for the next sprint. For instance, some team members committed to finishing their current work must handle new tasks simultaneously. 

Unfortunately, these team members have spent half of the following sprint finishing their initial tasks, delaying the new project by almost two weeks due to missed release slots.

agile-timeline-1

In this scenario, the team lacked agility despite following all the processes. The change in direction took longer and required more effort than it should have. As a result, the team began questioning the value of working in an Agile way and wondered how to make their work more adaptable to changes.

Like in our example, many teams think of Agile as another buzzword that misses bringing real value to their daily work. Numerous teams might claim to work according to Agile principles, as job offers often mention, yet few can actually explain the specific benefits they expect.

How to improve agility: Rethinking the Agile Methodology

It’s time to rethink the value of Agile methodology and embrace change. We need to pivot from avoiding it as it’s common in our industry. Developers who complain about priorities being changed sometimes are right. Most frequently, they identify fast changes as the root of the challenges and consequences, which are:

  • Project delays: Infrequent and non-incremental shipping can make it harder to understand user needs and lead to endless code refinements, making the code less maintainable and prolonging completion time.
  • Wasted resources: Getting stuck in a large code piece and receiving feedback after delivery that it wasn’t what users wanted.
  • Unsatisfied stakeholders: Your team can’t work on a new, important feature because they’re still finishing a previous one that nobody cares about.

But changing direction quickly isn’t the reason for the consequences, meaning we need to find its real cause. 

Agility means focusing on the ability to change direction quickly and efficiently while maintaining productivity. Having said this, most teams fail to see that they lack the ability to adapt quickly. 

Let’s have a look at these two examples of pivoting slowly:

The first example forces the team to change their working flow (A) to a different task (B) asap. When going back to the initial task (A) problems arise due to regaining context lost during the pivot.

agile-timeline-2

The second example completely cancels the initial task (A), as regaining context will mean losing more time. The decision to cancel Project A could have been made due to either merging conflicts or significant delays in development. Additionally, if an original developer has left the team, the initialization of the project would result in high costs associated with restarting the project.

agile-timeline-3

Both examples waste resources, delay the project, and create unsatisfied stakeholders. 

How to improve agility: The balancing act between agility & efficiency

We must balance the ability to change direction quickly, limiting context switches or code abandonment. Focusing on delivering small, cohesive tasks enhances adaptability and efficiency. 

agile-timeline-4

As the graph shows, the team finishes one task after another portrayed by the arrows. You gain the ability to shift focus without losing context, and a different task can wait until a small task is finished before we start it.

Small tasks are easier to review and provide feedback. This benefits the developers and the code itself. Let’s have a look at some benefits of small and cohesive tasks:

  • Better readability and understanding: Smaller tasks are easier to understand, leading to fewer errors and better code comprehension. This also lowers the entry-level barrier for new team members to get up to speed by tracking the gradual influx of changes into the codebase.
  • Faster feedback loops: Smaller tasks lead to quicker reviews and feedback, identifying and fixing issues within the code. Also, developers can iterate and improve more efficiently.
  • Increased adaptability: Smaller tasks allow for greater flexibility in adjusting priorities and adapting to changing circumstances. This makes it easier to pivot when necessary without disrupting the entire project.
  • Enhanced developer well-being: Smaller tasks give developers a sense of accomplishment and visible progress, promoting job satisfaction and motivation. It helps prevent burnout and keeps team morale high.
  • Improved communication: Smaller tasks are easier to communicate to stakeholders, making it easier to manage expectations and ensure that everyone is on the same page.

How to improve agility: Balance agility and efficiency

Now we need to define what small means. Small tasks can be compared to microservices. The goal is to be as small as possible while being cohesive. This means achieving the goal while being fully functional.

Let’s put that in context. You need to identify independent sub-tasks and work on them separately without waiting for someone to finish or provide feedback. 

For example, if you’re working on a feature that includes infrastructure, backend, and frontend, you could start with the frontend, then move on to the backend, and finally, the infrastructure. This way, you deliver the feature in stages without sacrificing efficiency and can still change direction if needed. What’s more, after finishing the frontend side, you can request feedback from your stakeholders. While waiting, switch to anything on the top of the queue. 

Starting from the finish line and focusing on smaller tasks is the balancing act. We seek to work more agile and efficiently. This process saves time by reducing endless reworks.

How to improve agility: Conduct useful planning 

This approach creates multiple moving parts that interlace with interdependencies. We can use our planning stage to tackle this challenge. During planning meetings, we can evaluate whether it is logical to proceed in the current direction or if adjustments are necessary. Additionally, we can determine the optimal sequence to execute tasks. 

Here are several typical factors to take into account:

  • Review all unfinished tasks from the previous iteration and decide if you want to continue working on them.
  • If some unfinished tasks prolong results, try shrinking their scope or dividing them into smaller subtasks to speed up completion by assigning them to other team members.
  • For upcoming tasks, make sure there are no blockers. (Pro tip: If you think a task might be unblocked during an iteration, and you’re tempted to include it—resist! It usually won’t be unblocked)
  • Focus on completing tasks and minimizing work in progress.
  • Ensure priorities are clear and allocate your efforts accordingly.
  • When thinking about scope, try delivering as many usable products as possible. Imagine it’s the last iteration of this project—what would you like to accomplish?

Addressing these points during planning meetings can improve your team’s efficiency and ensure your projects stay on track.

Conclusion

The core principles of Agile methodology revolve around efficiency and adaptability, with a focus on delivering small, cohesive tasks that contribute to overall business value. To adopt this approach, teams should focus on working on smaller tasks that are more manageable for peer and stakeholder review, enabling faster feedback and enhancing project outcomes. Planning meetings should be utilized to determine project priorities and ensure that everyone clearly understands their goals for each iteration.

By breaking down tasks into smaller units and aligning workflows with the core principles of Agile, teams can effectively adapt to changing priorities, minimize wasted time, and enhance the overall quality of the software. It’s important to remember that Agile is still relevant, and by maintaining a focus on small, targeted tasks, we can consistently deliver high-quality software that meets the stakeholder’s needs.

Curated by

Sebastian Synowiec

Liked the article?

Share it with others!

Take the first step to a sustained competitive edge for your business

Let's connect

VirtusLab's work has met the mark several times over, and their latest project is no exception. The team is efficient, hard-working, and trustworthy. Customers can expect a proactive team that drives results.

Stephen Rooke
Stephen RookeDirector of Software Development @ Extreme Reach

VirtusLab's engineers are truly Strapi extensions experts. Their knowledge and expertise in the area of Strapi plugins gave us the opportunity to lift our multi-brand CMS implementation to a different level.

facile logo
Leonardo PoddaEngineering Manager @ Facile.it

VirtusLab has been an incredible partner since the early development of Scala 3, essential to a mature and stable Scala 3 ecosystem.

Martin_Odersky
Martin OderskyHead of Programming Research Group @ EPFL

VirtusLab's strength is its knowledge of the latest trends and technologies for creating UIs and its ability to design complex applications. The VirtusLab team's in-depth knowledge, understanding, and experience of MIS systems have been invaluable to us in developing our product. The team is professional and delivers on time – we greatly appreciated this efficiency when working with them.

Michael_Grant
Michael GrantDirector of Development @ Cyber Sec Company

VirtusLab has built an excellent platform with exceptional development talent and a strong customer base.

vincenzo_la_ruffa
Vincenzo La RuffaPresident @ Aquiline Capital Partners