Apply Laziness, Impatience and Hubris in Agile

Apply Laziness, Impatience and Hubris in Agile

If you have worked in the IT industry before, you may come across the term “laziness, impatience, and hubris” from your developer friends, colleagues at your workplace.

If you haven’t come, no worries! 😉

Just keep reading on…

The father of Perl Programming language, Larry Wall, once made an interesting statement about the three virtues of great programmer:

…the three great virtues of a programmer [are] laziness, impatience, and hubris.

And here comes more of the definitions, written in his book

Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book.

Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer.

Hubris: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer.

These definitions aren’t just apply to developers. It fits well under agile methodology.

Let me explain in detailed what my thoughts are:


Microsoft Founder, Bill Gates once said this famous quote,

“I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.”


Laziness helps in reducing costs and effort by deliver great value to customers.

In my honest opinion, it fits very well under the agile core principles and values.

By encouraging teams to build working software as a measure of progress enables customer to see early, it also reduce the time and effort to write a comprehensive documentations up-front which brings little value to both ends.



Launch your product to market quickly. Let the customers to drive and validate their needs and wants.

Let’s not wasting time to make assumption based on the customer.

In a fast changing world, nobody is going to wait for you.

Hence it is important to get fast feedback and feed any requirement changes into the next development cycle.



When working in an agile team, you have to take pride on what you have done. In agile principles, it encourages the team to focus on technical excellence and code quality.

However, I would like to expand this idea further when it applies in a practical world. 

In reality, customers often cannot explain or convey their ideas properly in first place.

It is a team effort to help them understand themselves better.

Hence, when working in an agile team, team member has to be authentic to themselves and work collaboratively with your customers. Make sure you pay attention and listen closely to their feedback.

This is how we keep our heads high and be proud of the work we are doing in everyday. 🙂


Let’s go through a quick summary on how we apply the three virtues of great programmer into agile methodology.

  • Laziness – Doing less work but delivery great values to customers.
  • Impatience – Launch your product to market as early as possible, let the customers validate your ideas!
  • Hubris – Apart from technical excellence, pay close attention to your customer feedback, that makes you tick at all times!

That’s it.

Hope you enjoy reading the article. 🙂

Before you go, I would like to offer you an opportunity to ask me any questions or feedbacks. All you need to do is simply drop me a note

I will get back to you as soon as possible.

Talk soon!