One of the important principles in software design is simplicity. You shouldn’t over-engineer your programs, and you should not add features that aren’t needed.

What it doesn’t mean is taking the easy way when creating a program. Putting effort into a proper design and structure, choosing proper names (an art in itself) and testing it well is something that pays off in the long run, especially if you have to maintain it.

Doing things the easy way can be dangerous

Although “laziness” is a desirable attribute in a programmer, it needs to be balanced

Only doing lazy solutions means you’ll have a mess at the end, that just somehow works.

“First make it work, then make it work right”

Do be lazy when creating a solution to your problem: It should only solve your problem, nothing more, nothing less. But make sure it does so in a correct, elegant, reusable, and understandable way. Don’t solve problems you don’t have yet. Do go the extra mile to make your solution work well.