Thoughts on
Programming

"Thoughts on programming" is a curated listing of quotes from industry thought leaders on software craftsmanship, product development and lean thinking in general. Follow us on Instagram, Twitter or LinkedIn to receive the latest #ThoughtsOnProgramming straight to your inbox.

If we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent".
If we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent".
In programming, as in many fields, the hard part isn't solving problems, but deciding what problems to solve.
One man's crappy software is another man's full time job.
Code is like humor. When you have to explain it, it’s bad.
Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday's code.
No matter how brilliant your mind or strategy, if you’re playing a solo game, you’ll always lose out to a team.
A computer would deserve to be called intelligent if it could deceive a human into believing that it was human.
The danger of computers becoming like humans is not as great as the danger of humans becoming like computers.
It turns out that style matters in programming for the same reason that it matters in writing. It makes for better reading.
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
Before software can be reusable it first has to be usable.
The best time to plant a tree was 20 years ago. The second best time is now.
If you think your users are idiots, only idiots will use it.
Programs must be written for people to read, and only incidentally for machines to execute.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
You cannot reduce the complexity of a given task beyond a certain point. Once you've reached that point, you can only shift the burden around.
No one in the brief history of computing has ever written a piece of perfect software. It's unlikely that you'll be the first.
I think IT projects are about supporting social systems - about communications between people and machines. They tend to fail due to cultural issues.
People have an enormous tendency to resist change. They love to say, "We've always done it this way." I try to fight that.
If It Hurts, Do It More Frequently, and Bring the Pain Forward.
The cheapest, fastest, and most reliable components are those that aren’t there.
It's not a testing problem, it's a design problem manifesting as a testing problem. Usually.
As iron sharpens iron, so one person sharpens another.