Barbara Liskov

Computer Scientist American Born 1939 (age 87)

Turing Award winner for contributions to data abstraction and programming.

378 quotes

"The most important stakeholder in your design is the person who will maintain it five years from now."
Kindness
"Interfaces should express contracts, not just function signatures."
Leadership
"You can't design well if you don't understand the human and organizational context of the system."
Wisdom
"The principle of least surprise should guide your design: make the common case easy and obvious."
"Good abstractions feel natural because they align with how humans think about the problem."
Creativity
"Every layer of indirection you add should earn its place by providing real clarity or flexibility."
"The test of a good design is whether it allows you to change your mind later without breaking everything."
Wisdom
"In design, as in writing, clarity often requires more work than obscurity."
"A system's design reflects the assumptions of its creators; understand the history to understand the structure."
History
"The interfaces you design today will constrain the evolution of your system for decades."
"Software design is not about perfection; it's about making the most important parts right."
"When you see the same pattern repeated in multiple places, you've found a place where abstraction is hiding."
Wisdom
"A programming language shapes how you think; choose one that encourages good thinking."
"The most dangerous code is the code that seems to work but contains hidden assumptions."
"Design for change, because change is the only certainty in software."
Truth
"Inheritance hierarchies that are too deep usually reflect confused thinking about the domain."
Wisdom
"The code you write embodies your understanding of the problem; if the code is confused, so is the understanding."
Truth
"A well-designed system reduces the cognitive load on anyone who must use or modify it."
Kindness
"The principle of substitutability tells us something profound about how the world works."
Philosophy
"When your abstractions require exceptions, you've usually found an abstraction boundary that doesn't match reality."
Wisdom
"Good design makes the implicit explicit, so nothing is left to dangerous assumptions."
"The performance of a system and the clarity of its design are not opposed; clear designs are usually faster."
Truth
"The hardest part of software design is deciding what to leave out."
"A system that is too flexible is as problematic as one that is too rigid."
"The most important interface is the one between the system and its users' mental model."
"Design patterns are lessons learned, not laws to obey."
Wisdom
"When you understand the principles, the patterns will emerge naturally."
Knowledge
"A good design is one where the code almost explains itself through its structure."
Beauty
"The cost of a design mistake is paid long after the original designer has moved on."
"Simplicity is not the absence of features; it's the absence of unnecessary complexity."
Wisdom