If debugging is the process of removing software bugs, then programming must be the process of putting them in.— Edsger Dijkstra
Fulfilling Software Engineering quotations
Curiosity is the engine of achievement.
I think that the most beautiful thing lately hasn't been in hardware or software per se but collaboration - the idea behind Napster, which uses the distributed power of the Internet as its engine.
The question of whether computers can think is like the question of whether submarines can swim.
Great teachers engineer learning experiences that put students in the driver's seat and then get out of the way.
Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.
When debugging, novices insert corrective code; experts remove defective code.
Computers are good at following instructions, but not at reading your mind.
To an engineer, good enough means perfect. With an artist, there's no such thing as perfect.
Copy and paste is a design error.
Software gets slower faster than hardware gets faster.
Indeed, the woes of Software Engineering are not due to lack of tools, or proper management, but largely due to lack of sufficient technical competence.
Rust rust rust in the engines of love and time.
Considering the current sad state of our computer programs, software development is clearly still a black art, and cannot yet be called an engineering discipline.
The trouble with programmers is that you can never tell what a programmer is doing until it's too late.
Good code is its own best documentation.
As you're about to add a comment, ask yourself, "How can I improve the code so that this comment isn't needed?" Improve the code and then document it to make it even clearer.
Hiring people to write code to sell is not the same as hiring people to design and build durable, usable, dependable software.
It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.
The cheapest, fastest, and most reliable components are those that aren't there.
If you think good architecture is expensive, try bad architecture.
It's a curious thing about our industry: not only do we not learn from our mistakes, we also don't learn from our successes.
An API that isn't comprehensible isn't usable.
When someone says, "I want a programming language in which I need only say what I want done," give him a lollipop.
An organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only.
A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.
Avoiding complexity reduces bugs.
A dynamic duo who work well together can be worth any three people working in isolation.
Never in the annals of software engineering was so much owed by so many to so few lines of code
Time pressure gradually corrupts an engineer's standard of quality and perfection. It has a detrimental effect on people as well as products
Code reuse is the Holy Grail of Software Engineering.
Increasingly, people seem to misinterpret complexity as sophistication, which is baffling -- the incomprehensible should cause suspicion rather than admiration.
When to use iterative development? You should use iterative development only on projects that you want to succeed.
Nine people can't make a baby in a month.
I find that writing unit tests actually increases my programming speed
Inadequate use of usability engineering methods in software development projects have been estimated to cost the US economy about $30 billion per year in lost productivity.
It's better to wait for a productive programmer to become available than it is to wait for the first available programmer to become productive.
Hey, I'm a good software engineer, but I'm not exactly known for my fashion sense. White socks and sandals don't translate to 'good design sense'.