Are good programmers like artists?

Can good code be considered art? Is the theory of software craftsmanship a bit overkill? What does it mean to be a truly "excellent" programmer?

Let's start with a question to introduce the topic. Let's say you hire a plumber to replace the old, aging water pipes in your basement, and throughout the process, this guy keeps teaching you how artistic these pipes are.

Alt text

"Wow, look at the angle at which this pipe is bent, it aligns so beautifully with the wall! It's a work of art!" What would you think of this plumber?

The same goes for writing code. There is no worse pattern than a developer who has to write his code as art. The above analogy comes from a critically acclaimed article "programming is not a craft" by Dan North, founder of "Agile troublemaker" and the BDD method.

software art

Authors of the theory are Kevlin Henney, Bob Martin, Corey Haines, and Glenn Vanderburg, here are the essentials of software art.

Not only has to function properly, it should be well-crafted
to not only deal with change, but to add value steadily.
There is good individual communication, and a community of professionals.
Harmonious customer relationships, productive partnerships
. The problem now is that a lot of software Developers often fail to complete software projects because they are too arrogant. Because arrogance makes them hold software art high, North said. Examples of this are the Web services and J2EE projects, whose failures were largely attributed to taking the art of software too high.

excellent programmer

You may have already experienced the existence of the above problems in some small IT projects. If there is a developer who insists on using a certain aesthetic technique and is not willing to be pragmatic, then I am sure he has been brainwashed by so-called "software art".

Good code should be efficient code, not because of its beauty. Whatever it is, as long as it is reliable and efficient. In other words, no matter whether the cat is black or white, the cat that can catch mice is a good cat. It also boils down to the ability to understand and implement simple processes.

"An experienced programming team can produce amazing business results in a very short period of time. Only real professionals and real software craftsmen can find themselves abandoned in a clueless mess, such as various enterprise software. Elegance and simplicity." - Dan North
But sadly, even good programmers often forget what constitutes the core functionality of good software - an overemphasis on so-called software art is often the culprit.

"Software practitioners -- ironically, especially the best people -- make this mistake all the time. They fall in love with the software and feel like they've become software artisans." - Dan North
Program staff's talent

The full text of this debate is based on the question: Is software engineering an art form?

It is said that the proportion of performance and efficiency has declined in the software industry, but there is still no consensus on what it takes to be a good developer. "Great programmers can do in a few hours or days what the average programmer would do in weeks or months," insists Dan North.

"As a buyer, wouldn't you want to know if your system was made by a master craftsman or a temp? You paid for it, and you should have that right to know. So it's important to be able to tell the difference between the two." - Dan North
North also admits that looking good or not does not allow us to correctly distinguish between the two. Any developer can claim to be a software craftsman, and can also talk about what is "the beauty of software architecture". North sincerely hopes that someone with insight can rewrite the concept of software art, which is the most basic conceptual problem.

code behind

We don't care what the water pipe looks like - it's buried in it anyway. The same applies to software. Whether it's a client or a user, it's all about whether the code works and the page looks ok.

"Similarly, I just want an expert electrician to wire my house instead of a dummy, and I just want a professional programmer to write the code," North said solemnly. "What I hate most is, A pretentious plumber who can't stop talking about his elegant, beautiful and artistic plumbing."

Translation link: http://www.codeceo.com/article/art-of-programming.html
English original: The 'art' of good programming

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326611054&siteId=291194637