Software, Architecture and Design Quotes

low angle photo of assorted book on bookshelf by Joshua Coleman

Tuesday 29 October 2024 β€’ πŸ“š 6 min read β€’ back to Blog β€’ edit on Github

These are some of the quotes that I found interesting, related to software, software architecture and software design.

Have a good read πŸ™‚.


Nothing is more dangerous than an idea when it is the only one you have.

― Emile Chartier Alain


Defer the actual decision until a decision can be made more responsibly, based on actual knowledge, but not so late that it is not possible to take advantage of the knowledge.

― Richard Monson-Haefel


You donβ€˜t drive the architecture, the requirements do. You do your best to serve their needs.

― Richard Monson-Haefel


How do you make two systems loosely coupled? Don't connect them.

― David Orchard


Data is a precious thing and will last longer than the systems themselves.

― Tim Berners-Lee


Deleting dead code is not a technical problem; it is a problem of mindset and culture.

― Kevlin Henney


Adding manpower to a late software project makes it later.

― Fred Brooks


Work expands so as to fill the time available for its completion.

― Cyril Northcote Parkinson


Be conservative in what you do, be liberal in what you accept from others.

― Jon Postel


The connections between modules are the assumptions which the modules make about each other.

― David Parnas


Make it work, make it right, make it fast.

― Kent Beck


Testing is not the point. The point is about responsibility.

― Kent Beck


Sometimes the problem has to mature before the solution can mature.

― Kent Beck


If testing costs more than not testing, then don't test.

― Kent Beck


An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution but isn't one.

― Andrew Koenig


Program testing can be used to show the presence of bugs, but never to show their absence.

― Edsger W. Dijkstra


Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.

― Edsger W. Dijkstra


Simplicity is prerequisite for reliability.

― Edsger W. Dijkstra


If debugging is the process of removing software bugs, then programming must be the process of putting them in.

― Edsger W. Dijkstra


and one for the balance πŸ˜‰

I don't know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-Dijkstras.

― Alan Kay


No matter what they tell you, it's always a people problem.

― Gerald Weinberg


A system is never finished being developed until it ceases to be used.

― Gerald Weinberg


The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.

― Ward Cunningham


What's the simplest thing that could possibly work?

― Ward Cunningham


Simple, not easy. There's a difference.

― Ron Jeffries


If there's only one answer, then this must not be a very interesting topic.

― Ron Jeffries


To change the architecture of a software-intensive system ensconced in a large organization, you often have to change the architecture of the organization. And ultimately, that is a political problem, not just a technical one.

― Grady Booch


All architecture is design, but not all design is architecture. Architecture represents the set of significant design decisions that shape the form and the function of a system, where significant is measured by cost of change.

― Grady Booch


The amateur software engineer is always in search of magic.

― Grady Booch


Hierarchy is a kind of order of abstractions.

― Grady Booch


Architectural decisions are design decisions that are hard to make or costly to change.

― Olaf Zimmermann


All architectures become iterative because of unknown unknowns, Agile just recognizes this and does it sooner.

― Mark Richards


I've learned to always avoid saying "always".

― Martin Fowler


Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

― Martin Fowler


So I hope I’ve made clear that imposing agile methods is a very red flag.

― Martin Fowler


I would rather have questions that can't be answered than answers that can't be questioned.

― Richard Feynman


I learned very early the difference between knowing the name of something and knowing something.

― Richard P. Feynman


Religion is a culture of faith; science is a culture of doubt.

― Richard P. Feynman


Stupidity is knowing the truth, seeing the truth but still believing the lies. And that is more infectious than any other disease.

― Richard P. Feynman


The first principle is that you must not fool yourself and you are the easiest person to fool.

― Richard P. Feynman


There are only two hard things in Computer Science: cache invalidation and naming things.

― Phil Karlton

see also: two hard things

or a more humorous variation πŸ˜‰ (by unknown):

There are two things difficult in programming:

  • (1) naming things
  • (2) cache invalidation
  • (3) off-by-1 errors
  • (7) async callbacks

Architecture is about the important stuff (whatever that is).

― Ralph Johnson


Reports that say that something hasn't happened are always interesting to me, because as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknownsβ€”the ones we don't know we don't know. And if one looks throughout the history of our country and other free countries, it is the latter category that tends to be the difficult ones.

― Donald Rumsfeld


The only source of knowledge is experience.

― Albert Einstein


If you can't explain it simply, you don't understand it well enough.

― Albert Einstein


Strive not to be a success, but rather to be of value.

― Albert Einstein


Insanity is doing the same thing over and over and expecting different results.

― Albert Einstein / Rita Mae Brown