“Failure is an option here. If things are not failing, you are not innovating enough.”
“The most common mistake of smart engineers is to optimize a thing that should not exist.”
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”
“Simplicity is a prerequisite for reliability.”
“Everything should be made as simple as possible, but not simpler.”
“The best way to predict the future is to invent it.”
“Complexity is your enemy. Any fool can make something complicated.”
“Design is not just what it looks like and feels like. Design is how it works.”
“People don't care about what you say. They care about what you build.”
“Your most unhappy customers are your greatest source of learning.”
“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.”
“Talk is cheap. Show me the code.”
“Bad programmers worry about the code. Good programmers worry about data structures and their relationships.”
“First, solve the problem. Then, write the code.”
“Premature optimization is the root of all evil.”
“Software is a great combination of artistry and engineering.”
“If you are not embarrassed by the first version of your product, you've launched too late.”
“Code is like humor. When you have to explain it, it's bad.”
“Programs must be written for people to read, and only incidentally for machines to execute.”
“The function of good software is to make the complex appear to be simple.”
“One of my most productive days was throwing away 1000 lines of code.”
“The most disastrous thing that you can ever learn is your first programming language.”
“Controlling complexity is the essence of computer programming.”
“There are only two hard things in Computer Science: cache invalidation and naming things.”
“Make it work, make it right, make it fast.”
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
“The most powerful tool we have as developers is automation.”
“Debugging is twice as hard as writing the code in the first place.”
“Deleted code is debugged code.”
“Before software can be reusable, it first has to be usable.”
“A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.”
“The cheapest, fastest and most reliable components are those that aren't there.”
“In programming, the hard part isn't solving problems, but deciding what problems to solve.”
“I'm as proud of many of the things we haven't done as the things we have done. Innovation is saying no to a thousand things.”
“It's fine to celebrate success, but it is more important to heed the lessons of failure.”
“The most damaging phrase in the language is: 'We've always done it this way.'”
“The best error message is the one that never shows up.”
“UX is not about adding features. It's about removing barriers.”
“Users hate change, even when it's for the better.”
“The best code is no code at all.”
“Simple can be harder than complex.”
“Software and cathedrals are much the same: first we build them, then we pray.”
“Adding manpower to a late software project makes it later.”
“Good judgment comes from experience, and experience comes from bad judgment.”
“Security is a process, not a product.”
“Security is a chain; it's only as secure as the weakest link.”
“The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - and even then I have my doubts.”
“Security engineering is about building systems to remain dependable in the face of malice, error, or mischance.”
“Given enough eyeballs, all bugs are shallow.”
“At the very basic level, organizations should provide a clear way for someone to report issues.”
“Risk is a necessary consequence of dependence.”
“If you want to build truly large and long-lasting software, aim to build a free software community.”
“Over the last twenty years, open source has skewed from a collaborative to a solo endeavor.”
“Complexity is the enemy of security.”
“It is simply unrealistic to depend on secrecy for security in computer software.”
“Thinking that technology will solve your problems means you do not understand the technology and you do not understand your problems.”