Quotes from Steve McConnell
Computing pioneer Edsger Dijkstra pointed out that computing is the only profession in which a single mind is obliged to span the distance from a bit to a few hundred megabytes, a ratio of 1 to 109, or nine orders of magnitude (Dijkstra 1989).
~ Steve McConnell
BazillionQuotes.com
Well-Estimated Project If the estimation inputs and process are well-defined, arbitrarily changing the output is not a rational action. Project stakeholders might not like the output, but the appropriate corrective action is to adjust the inputs (for example, reduce the project's scope) and to recalculate the outputs, not just to change the output to a different answer.
~ Steve McConnell
BazillionQuotes.com
the automatic computer confronts us with a radically new intellectual challenge that has no precedent in our history. Of course software has become even more complex since 1989, and Dijkstra's ratio of 1 to 109could easily be more like 1 to 1015 today.
~ Steve McConnell
BazillionQuotes.com
Dijkstra pointed out that no one's skull is really big enough to contain a modern computer program (Dijkstra 1972), which means that we as software developers shouldn't try to cram whole programs into our skulls at once; we should try to organize our programs in such a way that we can safely focus on one part of it at a time.
~ Steve McConnell
BazillionQuotes.com
An algorithm gives you the instructions directly. A heuristic tells you how to discover the instructions for yourself, or at least where to look for them.
~ Steve McConnell
BazillionQuotes.com
Be sure that the names you choose favor read-time convenience over write-time convenience.
~ Steve McConnell
BazillionQuotes.com
you shouldn't be uneasy about any parts of the architecture. It shouldn't contain anything just to please the boss. It shouldn't contain anything that's hard for you to understand. You're the one who'll implement it; if it doesn't make sense to you, how can you implement it?
~ Steve McConnell
BazillionQuotes.com
Because successful programming depends on minimizing complexity, a skilled programmer will build in as much flexibility as needed to meet the software's requirements but will not add flexibility—and related complexity—beyond what's required.
~ Steve McConnell
BazillionQuotes.com
Quicksort a few times, but what are the odds that your custom version will be fully correct on the first try?
~ Steve McConnell
BazillionQuotes.com
Notably, the core of NASA's approach to creating reusable classes does not involve designing for reuse. NASA identifies reuse candidates at the ends of their projects. They then perform the work needed to make the classes reusable as a special project at the end of the main project or as the first step in a new project. This approach helps prevent gold-plating—creation of functionality that isn't required and that unnecessarily adds complexity.
~ Steve McConnell
BazillionQuotes.com
It's okay to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it.
~ Steve McConnell
BazillionQuotes.com
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?"
~ Steve McConnell
BazillionQuotes.com
the road to programming hell is paved with global variables
~ Steve McConnell
BazillionQuotes.com
The big optimizations come from refining the high-level design, not the individual routines.
~ Steve McConnell
BazillionQuotes.com
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.
~ Steve McConnell
BazillionQuotes.com
Trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often. What you eat before you step onto the scale determines how much you will weigh, and the software-development techniques you use determine how many errors testing will find.
~ Steve McConnell
BazillionQuotes.com
once gotos are introduced, they spread through the code like termites through a rotting house.
~ Steve McConnell
BazillionQuotes.com
Heuristic is an algorithm in a clown suit. It's less predictable, it's more fun, and it comes without a 30-day, money-back guarantee.
~ Steve McConnell
BazillionQuotes.com
The only way to reduce the variability in the estimate is to reduce the variability in the project.
~ Steve McConnell
BazillionQuotes.com
usually more time is spent in making good-looking presentation slides than in improving the quality of the software.
~ Steve McConnell
BazillionQuotes.com
Copy and paste is a design error
~ Steve McConnell
BazillionQuotes.com
complicated code is a sign that you don't understand your program well enough to make it simple.
~ Steve McConnell
BazillionQuotes.com
You can do anything with stacks and iteration that you can do with recursion.
~ Steve McConnell
BazillionQuotes.com
Choose your battles. If rapid development is truly top priority, don't shackle your developers by insisting on too many priorities at once.
~ Steve McConnell
BazillionQuotes.com
