【A Brief History of Agile】Robert C. Martin - Maybe He Can Save Your Code

2022-03-04 16:03:04
Original 2181
Summary : Robert C. Martin, a world-class software development master, a pioneer of design patterns and agile development, former editor-in-chief of C++ Report magazine, and the first president of the Agile Alliance, is known as "Uncle Bob". He believes that Agile is not a project management method but a set of values and disciplines that can help relatively small teams build small to medium-sized products. This point of view comes from his numerous personal project practices.

Robert C. Martin, a world-class software development master, a pioneer of design patterns and agile development, former editor-in-chief of C++ Report magazine, and the first president of the Agile Alliance, is known as "Uncle Bob".

Uncle Bob lives a typical " slash" life: he is not only an excellent programmer, best-selling author, speaker, and video producer but also a jiu-jitsu enthusiast. The experience of learning Jiu-Jitsu for many years not only brought him a strong body but also gave him the "art of craftsmanship". Uncle Bob is often invited to give talks worldwide, sharing his understanding of Agile with the younger generation of programmers. He often posts his opinions and articles on his Twitter account (@UncleBobMartin) and his website (http://cleancoder.com).

Uncle Bob believes that Agile is not a project management method but a set of values and disciplines that can help relatively small teams build small to medium-sized products. This point of view comes from his numerous personal project practices.

The Waterfall Development Journey

In 1970, at the age of 18, Bob and his team had a hard time writing code as programmers for a company called A.S.C. Tabulating. The work at that time was divided into day shifts and night shifts. During the day shift, the programmers wrote the codes on a coding form with a pencil, punched holes in the cards with a punching machine, and finally handed over the checked cards to the computer operator. The operators then compile and test during the night shift. The entire operation typically takes several days, and every subsequent modification takes about a day. Teams need to code, compile, test and fix bugs day after day. This development model was widespread at the time, so the problem of inefficiency in production needed to be solved.

To shorten the time for feedback during the development process, the waterfall model was created. This model was a great solution to the productivity problem and quickly occupied most software development in the 70s and 80s. Bob and his team started the "Waterfall Development Journey".

However, the excellent results that he had imagined didn't happen. Bob had to search again for the development process that would genuinely meet his expectations. Bob and his partner Jim Newkirk joined a new company, Clear Communication, during the search process. At the same time, a company had written a popular killer app that many professionals bought to use, including Bob. Disappointingly, the release cycle of this program has become longer and longer, bugs have started to accumulate, loading times have become increasingly protracted, and the probability of system crashes has become more and more frequent. Eventually, most users chose not to use the program anymore. Sure enough, the company shut down shortly after that.

The story doesn't end here. One day, Bob met an employee of that company and then learned the whole story from the employee. To promote the early release of the product, the company did not pay attention to code quality but also pursued speed blindly. As a result, a messy code was written by employees, which was impossible to modify or manage. In the end, the company's operation was disastrous, and announced its closure. "A little leak will sink a great ship". From this incident, Bob concluded that the neatness of the code needs to be paid attention to. He believes that software quality is dependent on software architecture and project management and closely related to code quality.

After realizing the importance of code cleanliness, Bob is convinced that it must be perfect if the waterfall model is combined with code cleanliness. So, for a long time, he worked with the team to achieve product delivery according to the "Analyze-Design-Program" approach. But it doesn't work. Even though everyone has rules about code cleanliness and the requirements are analyzed and designed correctly every time, once you enter the development phase, things get out of control. The final sprint will disrupt all the plans, resulting in product delivery not being on schedule. In practice, again and again, Bob gradually found that waterfall development constrained his mind. Agile development began to emerge when he thought that even code cleanliness couldn't save the messy process.

The Germ Of Agile Development

In the early 1990s, agile pioneers were publishing articles on Scrum. When Bob received the signal for this change, he suddenly had a hunch: the team could try a new approach. This hunch came true after he came across Kent Beck's book on Extreme Programming. Bob visited Kent several times and learned more about Extreme Programming (XP) from him and tried Test-Driven Development (TDD). He discovered that applying such a process in an object-oriented environment and a set of trusted tests could make code modification extremely simple. He could no longer accept lousy code when he felt that the team could and safely fix the code during the development process.

Inspired by this, Bob wanted to create a non-profit organization around code cleanliness and extreme programming, but this idea did not meet with majority approval at the time. So in the fall of 2000, Bob came up with another idea: to bring competing process advocates together to form a unified manifesto. Martin Fowler strongly supported this idea, and the two started to prepare the conference in advance. In the later stage of the preparation, another interested party, Alistair Cockburn, was added. The addition of Alistair made the preparation of this meeting more complete, and the meeting venue was set at the Snowbird Ski Resort. The Snowbird conference was set up.

The Snowbird conference lasted for two days, and seventeen agile masters from different genres held discussions in the Aspen conference room for two days, aiming to find common ground for all lightweight processes and software development. In the end, they built agile values and twelve principles from four perspectives, including interaction, software, collaboration, and change. But unfortunately, to seek common ground while reserving differences, the "Agile Manifesto" signed at this conference did not explain too much about the "how to program", nor did it incorporate the neatness of code that Bob has always advocated.

But that doesn't mean Bob has given up on "clean code". In 2010, Bob published "Clean Code: A Handbook of Agile Software Craftsmanship", in which he formally proposed the idea that "the quality of code is directly proportional to its cleanliness". As soon as this book came out, it caused quite a stir in the software development industry. The main point of this book is that clean code is self-explanatory and that reading code should be like reading a good article, where the readers can immediately understand the general function of the code. Uncle Bob was firmly convinced that the only way to ensure speed and quality of work was to keep the code as clean as possible. But soon, the only method becomes less effective.

Implement the "Craftsmanship Spirit"

It seems that people have fallen into a misunderstanding that implementing agile and code-specifying will bring significant improvements to software projects. In this misconception, people are getting farther away from true agility. In 2016, Bob published the book "The Clean Coder: A Code of Conduct for Professional Programmers", which guides readers to realize the great responsibility of professional programmers and explains the professional quality of programmers. In addition, Bob expanded the "clean code" on the original basis: for 30 years, everyone has been stuck in the concept of "using a big team to do big things", but they don't realize that the secret of success lies in solving problems with many small teams. This requires every programmer to have a "craftsmanship spirit" that will lead developers to true agile.

"Craftsmanship Spirit" means that developers no longer regard their work as boring but provide professional services based on the desire to do things well. The "Craftsmanship Spirit" proposed by Bob focuses on developers and has received support from many developers. To raise the standard of software development and redefine the original agile goals, a group of developers gathered in Chicago in November 2008 to launch a new movement: Software Craftsmanship, and develop a set of core values.

Software Craftsmanship

Many developers are disappointed with the future direction of agile, which is one of the reasons for the software craftsmanship movement. Some people think that agile is too business-oriented, while others think that craftsmanship is too focused on engineering, so they think agility and craftsmanship are incompatible. But Uncle Bob holds an opposite view. He believes that agility or craftsmanship is the essence of delivering high-quality and valuable work, and one cannot be without the other. In 2019, to guide a new generation of software developers to use agile right at the beginning, he released his new book "Clean Agile: Back to Basics" to help readers understand the importance of agile values and craftsmanship in agile teams.

Today, our Uncle Bob, Robert C. Martin, as one of the seventeen people who pushed the snowball at the Snowbird Lodge in Utah in 2001, keeps the code clean by himself. With an endless passion for programming, he also began to repair the divide between business and development, promoting agility and craftsmanship hand in hand .

His story still goes on.

Write a Comment
Comment will be posted after it is reviewed.