1

For the majority of programmers, "agile development" is not an unfamiliar term. This is a new software development method that has gradually attracted widespread attention since the 1990s, and is a software development capability that responds to rapidly changing needs. Compared with "non-agile", agile development emphasizes close collaboration between the programmer team and business experts, face-to-face communication (think more effective than written documents), frequent delivery of new software versions, and a compact and self-organizing team , Code writing and team organization methods that can adapt to changes in demand, and pay more attention to the role of people in software development.

In 2001, 17 software industry leaders jointly published the "Agile Manifesto", announcing the official start of the agile development movement. This year, 20 years have passed since the release of the "Agile Manifesto". Has agile development succeeded? Al Tenhundfeld, a senior software engineer and co-founder of Simple Thread, expressed his opinion.

The full text is compiled as follows:

Twenty years after the "Agile Manifesto" was born, two facts seem to be self-evident:

  1. "Agile" wins as a label, and no one wants to be called "non-agile";
  2. However, in practice, Agile is far from the revolutionary idea of its proponents.

How did we get to this point? —— Everyone is doing agile, but almost no one is really agile.

The Birth of the Agile Manifesto

In February 2001, 17 software industry experts met in a cabin at Snowbird Ski Resort in Wasatch Mountains, Utah. After several days of discussion and debate, they co-authored the "Agile Software Development Manifesto" ("Agile Manifesto").

The first thing to emphasize is that these experts are all practitioners. They are not project managers, CTOs, or engineering VPs, but developers, programmers, scientists, and engineers. They are still writing code and working with stakeholders to solve problems. this point is very important.

Another point is that the "Agile Manifesto" was not created in a vacuum. Many of these experts have already created their own methodology and have begun to spread it. They all have extensive experience in writing software and are looking for alternatives to document-driven heavyweight software development processes.

The declaration declares four core values:

We are discovering better ways of software development through our own development and helping others to develop software. As a result, we have established the following values:

individuals and interactions higher than processes and tools
working software higher than detailed documentation
Customer cooperation higher than contract negotiation
respond to changes higher than follow plan
  
In other words, the items in the right column are valuable, but we pay more attention to the items in the left column.

New hope brought by agile development

Looking back in 2021, it is easy for us to take these modern software development practice guidelines for granted, but in 2001, these ideas were very radical.

What is meant by "starting to build software before collecting all the requirements and evaluating each feature"? This is crazy!

The important thing forgotten is that Agile is an open and radical anti-management from the beginning. For example, Ken Schwaber bluntly stated that his goal is to get rid of all project managers and eradicate this profession from the software industry.

"We have found that in complex creative work, the role of the project manager is counterproductive. The project manager’s thinking is reflected in the project plan, limiting the creativity and intelligence of everyone in the project to the plan, rather than mobilizing everyone’s intelligence to maximize Solve the problem well."

Ken Schwaber, signer of the "Agile Manifesto" and co-founder of Scrum

Scrum Masters have almost no authority and no voting rights on issues. They are servant leaders, helping to protect and channel the team, but not managing the team.

Counterattack

In some ways, Agile is a grassroots labor movement. It started from the grassroots practitioners and was pushed to the management level. So how did it succeed?

Part of the reason is that developers and their value to the business continues to grow, and they have gained influence . But in my opinion, the is that the traditional waterfall method does not work at all. As software becomes more and more complex, the pace of business accelerates, and users become more and more complex, it becomes impossible to try to plan everything in advance. It is logical to embrace iterative development, although it is a bit scary for managers who are used to planning everything.

I remember at a meeting in the mid-2000s, you could see that the management didn't really buy it, but they couldn't help it.

Leave him alone, or try this crazy idea that engineers have been talking about. Anyway, the deadline is not yet reached, how bad can it be?

But to their surprise, agile development started to work. The team will research for a period of time, and then slowly gain a foothold, discover which models are effective for the team, and gain motivation. After a few sprints, you will see the real power of prioritizing working software, collaboration, and spending time checking and adapting.

In about 5 years, "Agile" has evolved from a method you have heard of but may not be used to using it to something everyone is doing. When I changed jobs in 2005, I had a little understanding of agile and TDD, which distinguished me from others. By 2010, it was generally believed that modern software teams were doing agile development.

So, did agile development win? Things are not that simple.

Like many revolutions, the history of agile did not unfold according to the founders' vision.

  • Facts have proved that prioritizing personal and interaction is a difficult concept to sell, and the promotion process and tools are much easier;
  • Working software is more difficult to produce than unrealistic plans and large amounts of documentation;
  • Working with customers requires trust and vulnerability, which do not always appear in the business environment;
  • The response to change is often overwhelmed by managers who want to control the situation and think they still have a reason to make long-term plans for the business.

Facts have proved that agile does not do well can make people feel confusing.

But this does not mean that the four core values proposed in the Agile Manifesto are wrong. This only shows that we need to make some effort to do agile development, and we need some courage to accept the fact that the software is inherently chaotic. You must understand and believe that if you continue to learn, adapt, improve and transport, you will eventually reach a better place, a place that is more candid, more realistic and more productive than waterfall development.

The agile movement is not anti-methodology. In fact, many of us want to restore the credibility of the term "methodology." We want to restore balance. We accept modeling, but not to archive some diagrams in the dusty company repository. We accept documents, but do not accept large tomes that have never been maintained and rarely used hundreds of pages. We make plans, but also understand the limitations of plans in a turbulent environment. Those who call the proponents of XP or SCRUM or any other agile method "hackers" know nothing about "methodology" and the original definition of "hacker".

Jim Highsmith, "History: The Birth of the Agile Manifesto"

These are very important. We still need to plan and document, and maintain rigor in agile development, which is about balance. However, if your organization is struggling with agile transformation and is drowning in chaos, when someone provides you with a lifeboat in the form of certifications, processes, and tools, you will immediately leap. Executives’ understanding of processes and tools far exceeds their understanding of self-organizing teams.

Failed rebellion

However, in this regard, I have not seen the return of brave rebels, at least not under the Agile label.

Tool vendors, process consultants, and experts have made promises that can never be fulfilled, which is why we finally got the agile methods of SAFe, Scaled Scrum, and other companies. These frameworks were not created maliciously, and they may even have some value in the right context, but I would not call it agile. Attempting to expand a method that focuses on individuals and interactions will inevitably lead to problems and erode the original value of the method.

In 2018, Ron Jeffries, a signatory of the "Agile Manifesto" and XP co-founder, published an article "Developers should abandon Agile" and stated:

Improper application of "agile" ideas will cause more interference to developers, less time to complete work, greater pressure, and be required to "go faster." This is bad for developers, and ultimately bad for the enterprise, because a poorly done "agile" often leads to more defects and slower progress. Usually, good developers will leave such an organization, which in turn causes the company to be less efficient than before the implementation of "Agile".

In 2014, Dave Thomas, a signatory of the "Agile Manifesto" and one of the proponents of Pragmatic Programming, published the famous article "Agile is Dead, Long Live Agility":

The term "agile" has been subverted, and the agile community looks like a stage for consultants and businesses to sell services and products... After the "Manifesto" became popular, the term "agile" became a marketing term.

So I think it's time to eliminate the word "agile".

Resurgence

For me, it’s really sad to see young developers denigrate Agile and think that this is a way for management to get unrealistic promises and force the development team to work frantically. They learned that agility is an imposed control mechanism, not a self-empowerment tool they are willing to embrace. But I hope to start some discussions around the history and initial vision of agile development, to help us remember where things are going.

The good news is that the principles set forth in the Agile Manifesto are as wise today as they were 20 years ago, even rebels like Jeffries and Thomas still think so.

Jeffries said in the article mentioned above, "However, the values and principles of the "Agile Software Development Manifesto" still provide the best way to build software that I know, based on my long-term and various experiences, regardless of What methods large organizations use, I will follow these values and principles."

I agree with him.

Talking about Agile now is neither fashionable nor cool. Agile is boring, everyone does agile... But now is the best time to look back at the agile development process of the past 20 years and ask yourself the following questions:

What is right? What went wrong? What do we want to do differently next time?

I hope that we can learn from the past by studying the core values and principles of the Agile Manifesto. In the words of Dave Thomas, even if we choose to give up "agile", we can still maintain agility.

Original link: https://www.simplethread.com/agile-at-20-the-failed-rebellion/


思否编辑部
4.3k 声望116.9k 粉丝

思否编辑部官方账号,欢迎私信投稿、提供线索、沟通反馈。