"We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris." -- Larry Wall, Programming Perl
Laziness is then defined as "The quality that makes you go to great effort to reduce overall energy expenditure." You don't want to spend an hour writing 40 slightly different functions, so you spend 3 drilling into the problem domain and devise an abstraction that allows you to express the whole thing in 17 lines of code.
His project manager might call him lazy, after all, he technically pushed back project completion by two hours more than needed, by wasting time on an abstraction that was probably unnecessary, all just to scratch an itch. Is it, though? You could argue both ways.
Laziness is then defined as "The quality that makes you go to great effort to reduce overall energy expenditure." You don't want to spend an hour writing 40 slightly different functions, so you spend 3 drilling into the problem domain and devise an abstraction that allows you to express the whole thing in 17 lines of code.
His project manager might call him lazy, after all, he technically pushed back project completion by two hours more than needed, by wasting time on an abstraction that was probably unnecessary, all just to scratch an itch. Is it, though? You could argue both ways.