【A Brief History of Agile】Kent Beck - Pragmatic Idealist

2022-03-31 16:52:02
Jing
Original 918
Summary : No matter what or how much it cost, Kent wanted to do the right thing. Fortunately, it was his persistence that led to the creation of a world of software development. Kent Beck has delivered an excellent performance in the innovative field of Extreme Programming, constantly proving "that which is real is reasonable". JUnit, built by Kent Beck and Erich Gamma, is even more significant for many Java programmers.

In 2011, Kent Beck joined Facebook. With decades of industry experience, he believes that he has an excellent understanding of the software. But during Facebook's Newcomers Boot Camp, Kent realized that Facebook was unlike any other company he had ever worked for.


Facebook is doing truly agile, being very flexible and always ready for change. After the Facebook Bootcamp, Kent started exploring Facebook's codebase and culture. Facebook's methodology to build and scale its products completely reshaped Kent's belief in software engineering.

When Kent joined Facebook, there were only 2,000 employees, and when Kent left, the number of employees expanded to 25,000. Facebook is very focused on the 6-month review cycle. Every six months, the employees had to prove their impact on Facebook. Kent disagrees with the word "impact."


"This is the target I care about, this is my work report, and this is my individual impact on the company ......"


Similar to these words, Kent needs to report every six months. It does help everyone stay focused on what they are doing and ensures that everyone contributes to the company. But there are also some disadvantages, as engineers can easily extract private information, making the application more confusing. But the employees are not encouraged to pay attention to the drawbacks of their work, so their work cannot be improved, which triggers the Broken Windows Theory, where nobody can make a good decision for the company. Kent believes that Facebook needs to move from focusing on the impact to focusing on the quality of decisions. Otherwise, such a "party-only" incentive scheme may lead to a situation like the collapse of Cambridge Analytica in the UK.


No matter what or how much it cost, Kent wanted to do the right thing. Unfortunately, the cost was the loss of his job at Facebook. But fortunately, it was his persistence that led to the creation of a world of software development.

The Birth of Extreme Programming

Kent Beck's upbringing was tied to technology. Born in Silicon Valley with a radio-obsessed grandfather and an electrical engineer father, Kent Beck was an amateur radio enthusiast from childhood.


After growing up, Kent Beck received his bachelor's and master's degrees in Computer Science from Oregon State University, one of the world's leading public research universities, and began his programming career.

Image source: Oregon State University

Early in his undergraduate studies, Kent Beck was influenced by architect Christopher Alexander. The latter was the first to study patterns in buildings and communities, defining a unified pattern language for architectural patterns such as towns, gardens, etc. Kent Beck worked with other software engineers to develop design patterns and implementation patterns to make the coding truly engineering. Like the structure of a building, Kent created the cornerstone of software engineering.


In 1993, in The Smalltalk Report, Kent Beck started writing a column on Smalltalk patterns, and at the same time, he met another fellow Smalltalk user, Ward Cunningham. Smalltalk is a very dynamic and refactoring-friendly environment with very short cycles, so it is easy to modify code quickly and write very functional software.


Kent and Ward began to realize the importance of refactoring. They continued to explore new software development methods together, carefully observed and analyzed various prerequisites, possibilities, and difficulties faced in simplifying software development, hoping to develop a software development process appropriate for this type of environment.

In 1996, this method was introduced.

Kent Beck, a pioneer of the Agile software development movement and author of Extreme Programming Explained.


In 1996, Kent Beck became the project leader of C3 (Chrysler Comprehensive Compensation). To improve the development methodology of the project, he proposed the revolutionary programming method when dealing with the compensation system problem for all 87,000 employees at Chrysler. To this end, Kent Beck also improved the Extreme Programming methodology and wrote a book, " Extreme Programming Explained".


Although many agile "powerhouses" such as Ward Cunningham, Ron Jeffries, etc., have successfully participated in the C3 project, the system was still launched several months later than the scheduled time. The system's performance has always been an issue - it could only handle the compensation of 10,000 employees. Finally, Chrysler terminated the C3 project in February 2000.


Although the C3 project was not fundamentally successful, from another point of view, it left a strong mark in the development history of software engineering because of the extreme programming methods and a series of excellent software development practices that emerged from the C3 project.


Kent Beck has delivered an excellent performance in the innovative field of Extreme Programming, constantly proving "that which is real is reasonable".


His series of books, " Planning Extreme Programming," co-authored with Martin Fowler, " Test-Driven Development by Example," and " Extreme Programming Explained," have made the essence of extreme programming accessible to a broader audience and have contributed significantly to the popularity of extreme programming.

The Birth of Agile Development

In the spring of 2000, a group of XP proponents and the revolutionaries who helped push XP attended the "Extreme Programming Leadership Conference" organized by Kent Beck at the Hotel Rogliff in Oregon to discuss how to promote the development of extreme programming.


This conference played an essential role in developing Extreme Programming and triggered a software revolution.


Before the conference, Robert C. Martin and several other attendees believed that a lightweight approach like Extreme Programming would benefit the industry. More people would want to push for the creation of such an organization. However, this was not the case, and many participants at the conference were not very enthusiastic about it.


During the break, Martin Fowler and Bob discussed whether to hold another conference to expand the proposed organization to include all "lightweight methods" like Agile and Adaptive Software Development without being Limited to Extreme Programming. They believed that this would increase the motivation of all and encourage more and more comprehensive supplementation from the proponents of these methods.


So, there was the Snowbird Conference. Kent Beck's extreme programming is slowly changing the software industry. Of course, Kent Beck's contribution goes far beyond that.

The Birth of JUnit

JUnit, built by Kent Beck and Erich Gamma, is even more significant for many Java programmers. It is precise because this simple and powerful tool made more programmers recognize and trust Extreme Programming, thus triggering the frenzy of agile development.

Image source

The philosophy of software genius makes JUnit simple and powerful, bringing Java programmers into the era of test-driven development. JUnit has won many awards, including "Java World Editor's Choice Awards" in 2001 and 2002, "Java World Best Testing Tool" and "Java Pro Best Java Testing Tool" in 2003, and has been well applauded by Java programmers.

Kent remarked in an interview that it seems not particularly ethical to profit from extreme programming, as Scrum does, and he has reservations about certification.


Kent gave a relevant keynote speech in China many years ago - "Pragmatic Idealism". Reality and ideals are often contradictory, but such contradictions are everywhere in a modern society full of competition and change. For software development, an ideal goal is required. So, have you established your goal? Please be brave to try it !

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