Larry Wall doesn't get to change the definition of laziness. His definition which explains a lazy person as going through "great efforts", fully "documenting what you wrote" and writing "labor-savor programs" goes against all definitions found in English dictionaries.
This is laziness: "inactivity resulting from a dislike of work."[1] Please note: it says "inactivity", not "activity". What Larry Wall is describing is just being an efficient and smart programmer. But calling it "laziness" is funnier and fits with the three-weaknesses-that-are-really-virtues joke he has going.
It's a little more complex than you present it. You only get to think of Alan as inefficient because you know what Charles did in a similar situation. However, if you only knew what Alan did you'd say he was smart and efficient.
He did everything he was expected to do and some more, a very industrious guy. He didn't seem bothered about doing a complicated design, writing lots of code, coordinating the other developers and the testers, revising the code several times and maintaining it. He wasn't lazy at all.
On the other hand, probably Charles didn't want to do all that stuff. He just wanted to write as little code as possible with as few bugs as possible and be done with it, no maintenance at all. And that required thinking very carefully and deeply about the problem he had to solve in order to get it right and write the necessary code.
In trying to do as little work as possible and return to Space Invaders, he had to be smart and efficient. That's the lesson here, great hackers use their brains and write great code to solve their problems with the absolute minimum amount of work required. It's really about laziness.
"industrious" does not been intelligent. "Industrious" means hard-working. No, I would not say Alan was smart, because he ended up writing a product with half the functionality, triple the amount of bugs, quintuple the amount of code, and quadruple the amount of employees. He didn't engineer the solution to minimize costs, maintenance, and simplicity while maximizing functionality. He just jumped into writing code thinking he knew best. So, to re-iterate, he's an idiot (compared to Charles).
"great hackers use their brains and write great code to solve their problems with the absolute minimum amount of work". Sorry, but I disagree. Just because, in the parable, Charles' solution ended up being the better one, that does not mean that all solutions with less code and less work are "greater" (remember, it's just a parable). Sometimes, you need extra work to make the solution more stable, more maintainable, more bug-free, etc. Great hackers recognize these situations and do the extra work and planning to come up with an elegant design when necessary.
I would never hire someone who always does the "absolute minimum amount of work", because if it's a poor solution, we'll end up doing more work later (fixing bugs, refactoring, debugging, etc.).
In the first paragraph you just repeated what I said. Yeah, Alan is an idiot, but you can only conclude that comparing him with Charles. Otherwise he just behave as any corporate developer is expected to.
In the second paragraph, we have a problem of semantics. If you need to do some work in order to have a more stable, maintable and bug-free solution, it's not extra at all, just the necessary amount to avoid doing even more work in the future.
By planning carefully you are actually avoiding rewrites, bug hunting, failures and maintenance problems. In other words: future work. And I think that identifying the problem and its best solution from the start will always reduce the total amount of work in the long run. Always.
As both of us are saying, a poor solution means more work. So, someone who truly wants to do the absolute minimum amount of work required should never build a poor solution intentionally. It's not the truly lazy thing to do. They are not as lazy as us, lazy people for real, they just want to avoid work in the present ;P
If you want to work less, then get the problem right and build a wonderful solution that should not present complications in the future. I know it's not a foolproof method, it's a bit ideallistic, has many grey (and black) areas, but for me it's a great principle to follow at work.
Would you hire a Charles, or would you hire a CharlesPrime who does exactly the same thing as Charles minus all the time spent playing space invaders at work?
But Charles wasn't just wasting his time, he was thinking about the problem while playing games! At least that's my interpretation.
I've learnt that I concentrate wonderfully and solve problems while walking. I know other people see just a guy walking in an absent-minded way, but I'm working!
For me Charles and CharlesPrime are exactly the same example, they just do the same thing in different ways. If it isn't Space Invaders then it will be another thing, they both need time to think. Otherwise you are hiring code monkeys.
Again, we'll just leave it as is, because I still think you have the definition of "lazy" wrong. A lazy person doesn't play Space Invaders to think, he plays Space Invaders to avoid working (as per the definition of "lazy").
What if playtime is essential to creativity and developing models? Aren't children encouraged to play in different ways for this very reason?
Honestly, I've been Charles before, and no one cared because the work was done well and on time. I was still responsive to my coworkers, but there were definitely periods where people understood I was recharging my "psychic energy" or whatever they thought made the magic happen.
"A lazy man, Dad believed, always makes the best use of his Therbligs because he is too indolent to waste motions."
Cheaper By The Dozen, 1948, Frank B Gilbreth Jr. and Ernestine Gilbreth Carey
I believe that there is precedent for this connotation, which granted is different than the denotation. This is the best example I have on hand since I remember this book from grade school. I could imagine Larry Wall had a similar encounter with this usage of "lazy".
This is laziness: "inactivity resulting from a dislike of work."[1] Please note: it says "inactivity", not "activity". What Larry Wall is describing is just being an efficient and smart programmer. But calling it "laziness" is funnier and fits with the three-weaknesses-that-are-really-virtues joke he has going.
[1] http://wordnetweb.princeton.edu/perl/webwn?s=laziness