Chinese Idiom Stories for Software Professionals: #02 Lord Ye Loves Dragon (葉公好龍)
Just like the idea, but fear the real
The Story
This article is one of the “Chinese Idiom Stories for Software Professionals” series.
Dragon is a legendary creature in Chinese mythology. Lord Ye was well-known for his fondness for dragons. He worshipped the dragons so much that he decorated his mansion with dragon drawings and carvings everywhere, from living rooms to bedrooms, from the front gate to the garden. He even named his children dragons.
By learning this, the real dragon in Heaven was very happy and decided to visit Lord Ye. The dragon arrived with thunder and violent storms. When Lord Ye saw a giant dragon staring at him with red eyes and its tail swinging horizontally in front of him, he was so frightened that he collapsed to the ground, unconscious.
So it turned out that what Ye Gong liked was painted and carved fake dragons but not real ones.
The meaning
I didn't get this idiom (of course, I understood the story) when I first learned it, until many years later when I met some people …
Lord Ye's story is a metaphor for people who claim they like something but actually don't like or even understand it. Having been working in the IT industry for so many years, I have seen so many people, especially managers and tech leads, who behave just like Lord Ye, towards the new and more advanced knowledge and technology, such as Agile and DevOps. They talked about these every day, even on the stage. However, when they come to experience the real, they will dislike it and fear it, or even oppose it.
Examples in Software Development
In 2020, I worked at a large financial institution. My agent told me that this IT division's director was an excellent IT leader who loved Agile, test automation, DevOps, CI/CD, and wanted to change the industry.
There was an online (due to covid) division Skype meeting (100+ people) in my starting week there. This director said: "We should be more open-minded. In particular, why can't we push updates to production every month? ….";
In the same meeting. The principal software engineer announced the ebook library this company purchased (via a provider). Later I checked it out, the highest ranked book on test automation was mine.
My work in test automation has raised some interest as my automation script helped reduce ~4 hours of manual testing time to ~6 mins. The team leader was deeply impressed. He had never expected automated test scripts could be created so quickly, and even manual testers could understand. Moreover, manual testers could use automation scripts to assist their manual testing. Besides, all automated UI tests were run in a CT server many times a day. The value of test automation was clearly shown in the first week. I was told that this company (which switched to agile 15 years ago) has never seen Automated E2E Testing could be so real and useful, and done so quickly (a couple of key business scenarios done within one day).
(By the way, if you are interested in my approach. Check out AgileWay Test Automation Formula, all using the free, open-source, standard-based, widely used frameworks)
Hence, a meeting was organized to show this capability to the managers, including the above-mentioned executive director.
In the (Skype) meeting, I showed some slides (from my past conferences) and live demonstrations of running real tests. I concluded by saying, "Test Automation and Continuous Testing enabled frequent releases. Facebook releases twice a day, and I have been releasing all my apps on a daily basis since 2012. After developing a set of functional tests here, I am confident that continuous testing shall enable the capability to weekly production releases". (I was quite reservative, did not say deploying to production every day)
During the meeting, there were only a few questions raised by the attendees. The director was about 5-min late to join the meeting and did not say anything. The principal software engineer asked a layman's question “will it support headless testing?”. I think he knew the solution was impeccable (I showed the slides of recommendation of the framework by Facebook and Microsoft), and asking improper questions might embarrass him. (later I learned that the last disastrous test automation attempt was partly his work). Towards the end, a senior program manager said: "It looks good. We will work out something …".
Later on that day, my agent asked how the meeting went.
I said: " I felt that they probably would not want to do test automation or frequent releases, or real Agile".
He was very surprised: "The executive director said he really wanted to do release early, release often".
I replied: "Yes, I heard he said that myself. However, in my opinion, the director just likes the idea of test automation and frequent releases, but fears real implementation". Then I told this "Lord Ye Loves Dragon" story.
It turned out that I was right, no actions. Until I left, functional testing was still conducted manually. A few months later, I saw a Job Ad for a Senior Test Automation Engineer from this company. Interestingly, the selection criteria listed "scripting in Java, C#, JavaScript and Python", excluding Ruby, the only language (of Selenium's official five) that I used and proved working. I guess another round of "Lord Ye Loves Dragon" there …
Why?
"What is the fear exactly, as you have said?" young IT professionals like my daughter might ask.
It is fear of change. Only talking about Agile, test automation, DevOps, and "Release Early Release Often" is cool as mediocre managers/executives don't need to change a single thing. When an unquestionable working solution is present, and it ticks all the boxes, the talking thing becomes real, and these "Lord Ye"s start to panic.
To make it easier to understand, I showed my daughter a video clip from the famous political comedy show: "Yes, Minister".
When the Minister's secretary said: "A Very Courageous Decision, Sir", the Minister panicked.
Then I told my daughter: "Life is too short to live in fear. For a software professional, doing fake Agile/DevOps is shameful. Instead, do the real stuff, learn and practice Test Automation and Continuous Testing, and have the capability to push updates to production daily. For a green-field project, make it the main task for Sprint 0."
“Facebook is released twice a day, and keeping up this pace is at the heart of our culture. With this release pace, automated testing with Selenium is crucial to making sure everything works before being released.” — DAMIEN SERENI, Engineering Director at Facebook, at Selenium 2013 conference.
Wired magazine called this (continuous testing enabled release often) "Software Revolution":
“It was Scott and his team of programmers who completely overhauled how LinkedIn develops and ships new updates to its website and apps, taking a system that required a full month to release new features and turning it into one that pushes out updates multiple times per day”.
“Newly-added code is subjected to an elaborate series of automated tests designed to weed out any bugs. Once the code passes the tests it is merged into trunk and cataloged in a system that shows managers what features are ready to go live on the site or in new versions of LinkedIn’s apps.”
- The Software Revolution Behind LinkedIn’s Gushing Profits.
Have you met people like 'Lord Ye'?