DEV Community

Raphael De Lio
Raphael De Lio

Posted on

What’s the Connection Between Leonardo Da Vinci, a Cup of Coffee in Lisbon, and the Nature of Software Development?

In Walter Isaacson’s biography of Leonardo Da Vinci, he writes about an incident that occurred while Leonardo was painting one of his most famous works, “The Last Supper.”

The Last Supper (Leonardo)

Isaacson describes how the Prior of the church that had commissioned the work became irritated with Leonardo’s procrastination and complained to Ludovico Sforza, the then Duke of Milan. He wanted Leonardo never to put down the brush, as if he were an employee working in his garden.

When the artist was summoned by the Duke, the two ended up discussing how creativity manifests. Leonardo explained that sometimes you need to go slow, take breaks, and even procrastinate. This allows ideas to mature and intuition to be stimulated. Men of high intellect, he said to the duke, sometimes make their greatest advances when they work less, as their minds are occupied with their ideas and the refinement of concepts that will later take shape.

This passage reminded me of a moment I experienced in a café in Lisbon in 2022. In one of our conversations, my colleague Marcelo Maluf Teixeira, holding a cup in his hand, compared it to the ever-evolving nature of software.

"A coffee cup is a finished product; once it is molded, baked, and painted, it is complete. There are no updates or revisions needed. In contrast, software is a dynamic entity, constantly in a state of development and improvement."

As programmers, we often encounter the “Prior of the Church” mentality in our workplaces, represented by managers or executives who expect us to always be on standby, tirelessly typing to deliver software. They often see programming as a continuous production line, where the work is simply completing tasks one after the other. However, the reality of programming is that it is a creative and iterative process, where ‘active procrastination’ plays a crucial role.

Procrastination, when understood as a period of reflection and incubation of ideas, is essential in the world of programming. It’s not about avoiding work, but recognizing that conscious breaks and periods of reflection are vital for innovation and creative problem-solving. In these moments, instead of incessantly writing code, we allow ourselves to absorb and contemplate the problem as a whole, often finding more effective and innovative solutions.

Leonardo often took years to finish a painting, and in some cases, like the famous “Mona Lisa,” he continued to work and make changes until the end of his life. He was always experimenting with new techniques, like sfumato, a shading technique that creates a smooth transition between colors, giving an almost ethereal quality to his paintings.

Leonardo also left us a tip on how to deal with that stubborn manager. He told the Prior that he still had two heads to paint, Christ’s and Judas’, and claimed he was having trouble finding a model for Judas and would use the Prior’s image if he continued to pester him. The Duke burst out laughing, saying Leonardo had thousands of reasons to do so. And the poor Prior was embarrassed and went back to taking care of his garden, leaving Leonardo in peace.

Stay curious!

Top comments (4)

Collapse
 
gregharis profile image
Grëg Häris • Edited

Great Idea.

Barbara Oakley in her "Learning how to learn" book and course calls it using the "Focused" and "Diffused" modes.

Focused mode- The mode our brain uses when we are actively working on a task or problem.
Diffused mode- The mode our brain uses when we are not actively working on the task and take a break from the problem. In this diffused mode, our brain makes new connections and search for novel solution and insights. This is why we get new ideas while we sleep, take a walk, do laundry, or anything unrelated to the task or problem at hand.

Though, mind you, as you take a break from the task, also pay attention to deadlines. Active procrastination yet important, can lead to missing deadlines, if we are not careful.

So, my point here is that in as much as it is super important and advisable to always take breaks from our tasks, we should also don't let that affect our productivity by taking too long to complete a task or missing deadlines. Therefore, there should be a balance between time for active work and time for active procrastination.

Collapse
 
raphaeldelio profile image
Raphael De Lio

Great insights! I hadn't heard of these! Thank you for sharing.

Collapse
 
jofisaes profile image
João Esperancinha

Here is my opinion on this and I don't think I disagree with the points of this article. Leonardo Da Vinci had ideals of beauty and certainly philosophical ideas about the creative process. That one about procrastination fits well into what developers do. If I take a cup of coffee in "A Brasileira" in Lisboa and I think about Leonardo Da Vinci's masterpieces I will surely and most likely begin to fantastically procrastinate. But that makes sense. However, when we talk about Software development this is just as important as studying real facts and real software theory. For example when we talk about "preemptive scheduling", the word "preemptive" may not mean much for many, but that's what's in the literature about taking control of running tasks in Computer Science. We also expect experts in this field to know this. When they don't, they reveal that they were never really interested in those aspects, or the theory in the first place. They just want things to work and keep depending on the creative process for it. The thing is that Leonardo Da Vinci made art and art is almost 100% fluid. There are almost no boundaries when we compare that to computer science. In computer science, or just plain software development, we need to know things at the same time as we procrastinate. It is a combination of those two and so, I can't just sit having a coffee in Brasileira in Lisbon en let myself be inspired by the beautiful designs of it and the thoughts of Leonardo Da Vinci masterpieces. They do inspire, but, just to make it work, it is probably better to also have a good computer science book next to my coffee. Love your article btw. Well done!

Collapse
 
raphaeldelio profile image
Raphael De Lio

I love your insights and I totally agree with you!