Chinese Idiom Stories for Software Professionals: #17 It is never too late to mend (亡羊补牢)

Never too old to learn, never too late to turn. Just do it immediately after realization .

Zhimin Zhan
4 min readMay 22, 2022


Image credit:

This article is one of the “Chinese Idiom Stories for Software Professionals” series.


Once upon a time, there was a shepherd who kept several sheep. One morning, the shepherd discovered that one of his sheep was missing. It turned out that, during the night, a wolf had stolen his sheep through a hole in the sheep pen.

His neighbour suggested to him: “You should fix the pen and cover the hole right away.”

But the shepherd said: “The sheep is already lost, so I don’t need to repair it.” And so he rejected the neighbour’s suggestion.

The next morning, he discovered that another sheep was missing. Once again, the wolf stole the sheep through the hole in the fence.

The shepherd regretted not taking the neighbour’s advice. So he patched up the hole to secure the sheep pen.

From then on, no more sheep were stolen by the wolf.


Never too old to learn, never too late to turn.

Examples in Software Development

Most software projects don’t take Automated End-to-End Testing seriously in the beginning, despite it should be the case (“Done, Done” in Agile). A more real reason is that the team members lack the skills.

However, along with development,

  • Many regression errors were detected (by manual testers or business analysts)
    Surely, there were a lot more undetected.
  • Tech debt accumulating to an unacceptable level
    However, software engineers dare not to refactor due to lacking a safety net (test harness)
  • The ever-growing testing cycle severely halts development velocity.
    The inefficiency and limitation of manual testing become more apparent.
  • Business analysts spent a large percentage of their time creating/finding test data
  • Bug-fixing cycle is too long
    Developers tend to



Zhimin Zhan

Test automation & CT coach, author, speaker and award-winning software developer. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.