“All inventions stem from an obsessive focus on issues.” – Ronald S. Bartos, American inventor and engineer.
Don’t Be Agile for the Sake of Being Agile
I remember an article I wrote in 2015:
You’re Agile, Your Whole Family is Agile
Does this subtitle sound a bit impulsive?
As someone deeply involved in the Agile community, I’ve noticed the widespread praise and enthusiasm for Agile, but sometimes, I’m taken aback by some perspectives. Agile is often portrayed as a universal solution (today, it might be Lean, DevOps, or Design Thinking), incorporating various productivity methods and processes. However, in my view, the essence of Agile isn’t merely a method or framework but rather a state of mind, a “being” process rather than “doing.”
What’s puzzling is that as more methods and experiences are included under the Agile umbrella, we focus less on the state of “being” and more on the process of “doing.” I believe true Agile is a continuous process of learning, self-reflection, maintaining an open mind, and focusing on tangible outcomes.
Sometimes, Agile is raised as a banner, becoming a slogan, where everything deemed correct is labeled as Agile, while anything wrong is considered traditional and in need of change. But I no longer let this bother me. Now, I tell my team, regardless of whether Agile has become a banner or a slogan, as long as we do better and feel happier than we did yesterday, that’s enough. We don’t need to worry about calling it Agile.
I often reflect on whether, to some extent, I’ve also diminished the meaning of the word Agile. I don’t want my income to depend entirely on Agile. I hope we can return to software, code, and the interaction between people. Therefore, I will continue teaching, spreading my ideas, and hoping that this will eventually reduce our reliance on the term “Agile.”
Start with the Issue
The essence of Agile is improving adaptability in response to constant change. Increasing adaptability means starting to question and rethink all actions and ideas. This reminds me of some Agile coach interviews. When asked what they’ve done, the answers might be: “We’ve used certain concepts” or “Agile is just a checklist.”
When I hear these answers, I’ll ask further questions:
- Does the team have any issues or challenges? How did you address them?
- If a team of 50 people has never been exposed to Agile, how would you get the entire Agile process up and running in a week?
This is an issue-driven approach. This doesn’t mean Agile is solely about solving issues but rather a way to gauge whether the coach is actively thinking. You might ask, what’s the significance of being issue-driven? Why not just implement a framework or method?
Why Choose Issue-Driven?
As mentioned earlier, Agile is the ability to quickly adjust and respond based on goals.
Quick feedback and adjustments depend on being able to “see” or “sense.” We want each team to identify real issues one by one and come up with their own responses. After developing a response, they can take detailed action and receive feedback in phases. Then, they can expand this process, allowing more people on the team to see and act on it. It all starts with awareness, or more simply, the perception of pain.
Pain is the First Step Toward Awareness
- From a biological perspective: Pain is a fundamental sensation evolved for survival. It helps organisms recognize harmful or unfavorable environments, assisting them in avoiding harm and improving survival. In this sense, pain can be seen as a basic form of awareness.
- From a psychological perspective: In psychology, pain is viewed as an essential way for people to become aware of their needs and emotional responses. For instance, when people experience emotional pain, they may reflect more deeply on their emotions and needs, gaining a better understanding of themselves. In this context, pain can act as a trigger for self-awareness.
- From a philosophical perspective: In some philosophical views, pain is considered a direct perception of one’s existence. In other words, pain makes us aware of our existence and serves as the starting point for our understanding of the world.
The opposite of pain is not happiness but numbness. Part of Agile’s purpose is to help people move out of this numb state.
The Role of Issue-Driven Approaches
- Strengthens the Purpose of Agile: The goal of Agile methods is not just to stay flexible and responsive but also to solve real issues, meet user needs, and deliver business value. If teams blindly pursue Agile without clear goals or issue-driven strategies, they may lose direction. (Many teams often say, “Just tell me what to do,” but this fundamentally contradicts Agile’s pursuit.)
- Applicability of Agile: While Agile methods bring benefits in many situations, they are not universally applicable. Some issues may require different management approaches, even more traditional methods, or a combination of various techniques to solve them. Blindly pursuing Agile may overlook the complexity and diversity of certain issues.
- Continuous Improvement in Agile: An issue-driven Agile implementation also encourages teams to reflect and improve continuously. By regularly reviewing and adjusting their Agile strategy, teams can better adapt to changes and enhance their agility.
- Easier to Understand: Agile can sometimes come across as a collection of strange terms, and some people are especially skilled at using jargon. This reflects a reluctance to integrate with the team and engage with the details. We should minimize this tendency. Avoid using jargon unnecessarily—even eliminating the word “Agile” is an option.
What are Common Pain Points for Software Teams?
Manifestations of Pain Points
Through addressing countless team issues, we have collected nearly ten thousand team problems and obstacles, which were organized and analyzed using AI. The most frequently mentioned pain points, ranked by occurrence, are as follows:
- Frequent and unclear requirement changes (339)
- Low test coverage, unstable test environment (135)
- Barriers in team communication and collaboration (124)
- Need for improvement in personnel skills and technical levels (198)
- Version management and release processes need improvement (84)
- Low efficiency and coordination with external teams (74)
- Multi-threaded tasks and sudden interruptions hinder progress (69)
- Unified values and enforcement need strengthening (58)
- Inadequate preparation of test data and environment (51)
- Project management needs further clarity and goal-setting (45)
- Excessive non-versioned tasks (36)
Pain Point Analysis and Root Causes
The following are identified as the most significant issues:
- Frequent and unclear requirement changes.
This is the root cause of many subsequent problems. Requirement changes can lead to:
- Test cases and environments must be adjusted multiple times to accommodate changes, reducing coverage.
- Developers need to re-analyze requirements and modify code, disrupting normal development progress.
- Internal communication becomes more frequent, reducing collaboration efficiency.
- Frequent revisions in version management and release milestones.
- Multi-threaded tasks and sudden interruptions hinder progress.
- Test data and environments need to be prepared anew to accommodate changes.
- Project goals and plans must be revised. Thus, clear, stable requirements are essential for project progress. Improving the requirements analysis and communication mechanism is the fundamental issue.
- Team communication and collaboration barriers.
Communication barriers lead to:
- Inconsistent understanding of requirements, further exacerbating requirement changes.
- Lack of coordination among developers, reducing efficiency.
- Inability for testers to fully identify issues.
- Difficulty in achieving project goals.
- When there are differences in skill levels, communication becomes even more challenging.
These two issues are the most important pain points in the entire process and must be addressed. With clear requirements and good communication, other aspects can move forward.
Rippling Issues from Pain Points
On an organizational level, team issues can lead to project delays, reduced quality, lower employee satisfaction, damage to the organization’s reputation, and increased costs.
On a personal level, employees may face increased work pressure, stagnation in career development, decreased job satisfaction, reduced productivity, and disruption of work-life balance.
Issues at different levels often lead to challenges in other areas. However, we should always align our focus and optimization efforts with the value delivered to the customer. Team issues and obstacles must always correspond to the value delivered to the customer.
Team issues (value delivery flow) can be viewed as the main stream since they directly affect customer satisfaction and value delivery. The “main stream” issues, such as frequent requirement changes, low test coverage, and poor team communication efficiency, are key factors that directly impact the final product or service quality.
Other organizational and personal-level issues, such as project delays, employee satisfaction declines, and increased work pressure, can be seen as “tributaries,” indirectly but deeply influencing the main stream. These tributary issues are often triggered by main stream issues and, in turn, affect and exacerbate the main stream issues, forming a vicious cycle.
Like a river system, issues in the main stream lead to problems in the tributaries, which in turn flow back into the main stream, affecting the health of the entire system. Solving these issues requires holistic thinking and coordinated action—focusing not just on the tributary issues but also addressing the more critical main stream issues.
When addressing these issues, we need to prioritize customer value delivery, focusing first on solving main stream issues. At the same time, we should not neglect tributary issues, as they can lead to bigger problems. Improving organizational and personal-level issues strengthens the team’s capabilities, allowing better handling of main stream issues and enabling high-quality value delivery.
Beyond Pain Points: Deepening Agile Practices
How to Understand and Apply Agile Terminology
You may wonder, if you’ve already received training but only remember a bunch of terms, how can we advance Agile transformation? Here are some thoughts to consider:
- Return to Basics: We first need to clarify that the goal of Agile transformation is to improve the way we work and the results we achieve, not just to adopt new terms or jargon. Therefore, we should focus on the foundational terms that will never change, such as “requirement clarification” and “release cadence,” which are critical points that must be addressed regardless of the method.
- Adapt to Existing Understanding: People are usually already familiar with some Agile terms and methods, such as Scrum, SAFe, and the “release train.” We can leverage this existing knowledge to help people more easily accept and understand Agile transformation. However, we must be clear that these terms are tools, not goals—our work should build on these terms rather than getting stuck in them.
- Generalize Terminology: When we begin applying Agile across different teams and environments, we should try to generalize some terms for broader organizational adoption. For example, we could use the more general term “iteration” instead of “sprint,” making the concept easier for more people to understand and accept.
- Atomic Practices: Finally, we should implement Agile practices step by step, rather than all at once. We should treat each practice as an atom that can be used independently or combined with others. This atomic approach allows us to apply Agile more flexibly, instead of overwhelming the organization by dumping an entire Agile framework at once, which can often lead to resistance and confusion.
Moving Beyond Pain Points and Problem-Solving
Addressing team pain points and problems is only the starting point of Agile transformation, not the end goal. Teams need to use this opportunity to gradually build and deepen Agile culture, including but not limited to self-organization, continuous improvement, rapid feedback, and results-oriented thinking. Only then can Agile transformation achieve its long-term goals of improving customer satisfaction and enhancing organizational competitiveness.
Additionally, Agile transformation is not a one-time event, nor should it stop at addressing surface-level pain points and problems. It’s important to uncover and stimulate the intrinsic motivation and potential of team members, encouraging them to actively participate in the transformation process and work together to face and solve challenges.
Moreover, Agile transformation should extend beyond the team level and impact the entire organization. Organizational support and alignment are key to the success of Agile transformation. This includes adjusting organizational structures to support Agile, optimizing workflows to enhance agility, and cultivating Agile leadership to drive deeper Agile adoption.
Conclusion
This article primarily discusses the importance of team issues in Agile transformation and emphasizes that true Agile should start with the perception of pain and problems, focusing on progress rather than speed. Only in this way can we ensure that Agile transformation is driven by real issues and not merely by blindly following methods or terminology.
At the same time, we should view problems as opportunities for improvement and growth rather than obstacles to be eliminated. By using a problem-driven approach to Agile transformation, we can strengthen the applicability of Agile, promote continuous team improvement and self-reflection, and help teams better understand and embrace Agile.
In analyzing pain points, we found that unclear requirements and communication issues are the key factors affecting customer value. These main stream issues should be prioritized.
However, Agile transformation should not stop at solving pain points. We need to deepen Agile culture, stimulate team members’ initiative and creativity, and extend Agile transformation across the organization. Only then can we achieve the long-term goals of Agile: improving customer satisfaction and enhancing organizational competitiveness.
In summary, Agile transformation is a continuous journey driven by problems and focused on customer value. We should not stop at solving pain points but instead use them as a springboard to deepen Agile practices and achieve continuous growth for both the organization and individuals.