Programming

“All problems in computer science can be solved by another level of indirection.” — David Wheeler

“But that usually will create another problem.” — David Wheeler

“Simplicity is prerequisite for reliability.” — Edsger Dijkstra

“If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’ “— Edsger Dijkstra

“Controlling complexity is the essence of computer programming.” — Brian Wilson Kernighan

“It’s harder to read code than to write it.” — Joel Spolsky

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler

“Don’t repeat yourself. Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.” — Andy Hunt and Dave Thomas

“Code never lies; comments sometimes do.” — Ron Jeffries

“There are only two hard things in computer science: cache invalidation and naming things.” — Phil Karlton

“There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.” — Leon Bambrick

“Deleted code is debugged code” — 𝕁𝕖𝕗𝕗 𝕊𝕚𝕔𝕜𝕖𝕝

“Bugs lurk in corners and congregate at boundaries” — 𝔹𝕠𝕣𝕚𝕤 𝔹𝕖𝕚𝕫𝕖𝕣

“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”” — Andrew Singer

“The moment you have to peek and dive into implementation details to understand how to compose it with other object. You’ve lost advantage of your programming paradigm.”

— Barotz Milewski

“A good programmer is someone who always looks both ways before crossing a one-way street” — 𝔻𝕠𝕦𝕘 𝕃𝕚𝕟𝕕𝕖𝕣

“Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else” — 𝔼𝕒𝕘𝕝𝕖𝕤𝕠𝕟’𝕤 𝕃𝕒𝕨

“One man’s crappy software is another man’s full-time job” — 𝕁𝕖𝕤𝕤𝕚𝕔𝕒 𝔾𝕒𝕤𝕥𝕠𝕟

“If you automate a mess, you get an automated mess” — ℝ𝕠𝕕 𝕄𝕚𝕔𝕙𝕒𝕖𝕝

“Increasing the efficiency with which a resource is used increases the usage of that resource” — 𝕁𝕖𝕧𝕠𝕟’𝕤 ℙ𝕒𝕣𝕒𝕕𝕠𝕩

“The cheapest, fastest, and most reliable components are those that aren’t there” — 𝔾𝕠𝕣𝕕𝕠𝕟 𝔹𝕖𝕝𝕝

“If debugging is the process of removing software bugs, then programming must be the process of putting them in” — 𝔼𝕕𝕤𝕘𝕖𝕣 𝔻𝕚𝕛𝕜𝕤𝕥𝕣𝕒

“There are two ways to write error-free programs; only the third one works” — 𝔸𝕝𝕒𝕟 ℙ𝕖𝕣𝕝𝕚𝕤

Architecture & Design

“Hiring people to write code to sell is not the same as hiring people to design and build durable, usable, dependable software” —𝕃𝕒𝕣𝕣𝕪 ℂ𝕠𝕟𝕤𝕥𝕒𝕟𝕥𝕚𝕟𝕖

“The hardest part of design is … keeping features out” — 𝔻𝕠𝕟𝕒𝕝𝕕 ℕ𝕠𝕣𝕞𝕒𝕟

“A software system built on top of a weak architecture will sink due to the weight of its own success” — 𝕋𝕙𝕖 𝔸𝕣𝕔𝕙𝕚𝕞𝕖𝕕𝕖𝕒𝕟 ℙ𝕣𝕚𝕟𝕔𝕚𝕡𝕝𝕖

“Before software can be reusable it first has to be usable” — ℝ𝕒𝕝𝕡𝕙 𝕁𝕠𝕙𝕟𝕤𝕠𝕟

“A complex system that works is invariably found to have evolved from a simple system that worked” — 𝔾𝕒𝕝𝕝’𝕤 𝕃𝕒𝕨

If you can’t explain it simply, you don’t understand it well enough. — Albert Einstein

Requirements

“Walking on water and developing software from a specification are easy if both are frozen” — 𝔼𝕕𝕨𝕒𝕣𝕕 𝔹𝕖𝕣𝕒𝕣𝕕

“The user will never know what they want until after the system is in production (and maybe not even then)” — ℍ𝕦𝕞𝕡𝕙𝕣𝕖𝕪’𝕤 𝕃𝕒𝕨

“It is easier to change the specification to fit the program than vice versa” — 𝔸𝕝𝕒𝕟 ℙ𝕖𝕣𝕝𝕚𝕤

“The more stable a requirement is considered, the greater the probability it is changed” — ℍ𝕖𝕚𝕤𝕖𝕟𝕓𝕖𝕣𝕘’𝕤 ℙ𝕣𝕚𝕟𝕔𝕚𝕡𝕝𝕖

“Increasing the number of choices will increase the decision time logarithmically” — ℍ𝕚𝕔𝕜’𝕤 𝕃𝕒𝕨

“A man with a watch knows what time it is. A man with two watches is never sure” — 𝕊𝕖𝕘𝕒𝕝’𝕤 𝕃𝕒𝕨

Estimation & Time Management

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time” — 𝕋𝕠𝕞 ℂ𝕒𝕣𝕘𝕚𝕝𝕝

“The time from now until the completion of the project tends to become constant” — ℍ𝕒𝕣𝕥𝕣𝕖𝕖’𝕤 𝕃𝕒𝕨

“Work expands to fill the time available for its completion” — ℙ𝕒𝕣𝕜𝕚𝕟𝕤𝕠𝕟’𝕤 𝕃𝕒𝕨

“It always takes longer than you expect, even when you take into account Hofstadter’s Law” — ℍ𝕠𝕗𝕤𝕥𝕒𝕕𝕥𝕖𝕣’𝕤 𝕃𝕒𝕨

“There’s never enough time to do it right, but there’s always enough time to do it over” — 𝕁𝕒𝕔𝕜 𝔹𝕖𝕣𝕘𝕞𝕒𝕟

Project Management

“Adding manpower to a late software project makes it later” —𝔹𝕣𝕠𝕠𝕜𝕤’𝕤 𝕃𝕒𝕨

“For many phenomena 80% of consequences stem from 20% of the causes” —ℙ𝕒𝕣𝕖𝕥𝕠 ℙ𝕣𝕚𝕟𝕔𝕚𝕡𝕝𝕖

“Nothing ever gets built on schedule or within budget” — ℂ𝕙𝕖𝕠𝕡𝕤 𝕃𝕒𝕨

“Anything that can go wrong will go wrong” — 𝕄𝕦𝕣𝕡𝕙𝕪’𝕤 𝕃𝕒𝕨

“I have always found that plans are useless, but planning is indispensable” — 𝔻𝕨𝕚𝕘𝕙𝕥 𝔼𝕚𝕤𝕖𝕟𝕙𝕠𝕨𝕖𝕣