October 26, 2015

Modern Software Engineering Meets Philosophy

Continuous Delivery
Community

There are more commonalities between philosophy and industry than meets the eye. The principles of software development, for one, bear strong resemblance to the characteristics of mankind. Inspired by the teachings of Confucius, this article looks at how the ancient Chinese philosopher’s wisdom still applies today to one of the most modern of disciplines.

The Analects of Confucius

One of the principal texts on Confucianism, the Analects of Confucius was written by his students some 2,500 years ago and has remained one of the most widely read books in China.

The first two sentences of the book’s opening chapter loosely translate to:

  1. Isn’t it a pleasure to study and then practice what you have learned?
  2. Isn’t it a delight should friends visit from afar?

The literal translation doesn’t clearly explain the meaning and the intent behind these questions, but here is one software engineer’s interpretation.

The Pleasure of Practicing What One Has Learned and Continuous Delivery

Unlike the English language, individual Chinese characters convey concepts broader than individual words. The most important kanji, or characters, in this first sentence of the Analects stand for “study” and “to follow” from teachers or those who are more experienced. The following characters convey iteration and signify the importance of both practice (for the individual) and progress (for the subject being practiced).

Confucius says that “following” more experienced people and adding to the craft through practice makes for a better world. Later in the Analects, he argues that it is the duty of the community to provide such a system.

Some of the most successful engineering teams in the world apply this philosophy today by practicing Continuous Delivery—a software development methodology that improves the quality of software through constant iteration and repetition of what is known to work. They also provide a way for young developers to learn from experienced engineers and practice what they have learned consistently.

Delights of (Collaborating with) Visitors from Afar

Before addressing the relationship between the first sentence and the philosophy of interaction, it’s important to understand the definition of “friend from afar.” The concept refers to a person who understands your expertise (friend) but doesn’t know you (from afar). The friend from afar visits to exchange ideas about your common interests.

Confucius understood the importance of collaboration and modern development teams apply this principle now. The most efficient and high-functioning software engineers share information about the projects they’re working on and exchange ideas with their peers using a collaboration platform. A recent survey on Continuous Delivery also found that 96 percent of respondents view their collaboration platform as important in achieving Continuous Delivery.

Applying the Grand Master’s Teachings 2,500 Years Later

The concepts of versioning and collaboration are important across disciplines and cannot be considered as two separate entities. Version control tracks iteration—the lifeblood of improvement and innovation that rarely happens without collaboration. Successful engineering teams know this. Is your team on board?