Goodreads helps you follow your favorite authors. Be the first to learn about new releases!
Start by following Steve McConnell.
Showing 1-30 of 142
“the road to programming hell is paved with global variables,”
― Code Complete
― Code Complete
“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.”
― Code Complete: A Practical Handbook of Software Construction
― Code Complete: A Practical Handbook of Software Construction
“The big optimizations come from refining the high-level design, not the individual routines.”
― Code Complete: A Practical Handbook of Software Construction
― Code Complete: A Practical Handbook of Software Construction
“Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited with improving productivity, reliability, simplicity, and comprehensibility by factors of 5 to 15 over low-level languages such as assembly and C (Brooks 1987, Jones 1998, Boehm 2000). You save time when you don't need to have an awards ceremony every time a C statement does what it's supposed to.”
― Code Complete: A Practical Handbook of Software Construction
― Code Complete: A Practical Handbook of Software Construction
“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.”
― Code Complete: A Practical Handbook of Software Construction
― Code Complete: A Practical Handbook of Software Construction
“once gotos are introduced, they spread through the code like termites through a rotting house.”
― Code Complete
― Code Complete
“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.”
― Code Complete
― Code Complete
“The only way to reduce the variability in the estimate is to reduce the variability in the project.”
― Software Estimation: Demystifying the Black Art
― Software Estimation: Demystifying the Black Art
“Managers of programming projects aren’t always aware that certain programming
issues are matters of religion. If you’re a manager and you try to require compliance
with certain programming practices, you’re inviting your programmers’ ire. Here’s a
list of religious issues:
■ Programming language
■ Indentation style
■ Placing of braces
■ Choice of IDE
■ Commenting style
■ Efficiency vs. readability tradeoffs
■ Choice of methodology—for example, Scrum vs. Extreme Programming vs. evolutionary
delivery
■ Programming utilities
■ Naming conventions
■ Use of gotos
■ Use of global variables
■ Measurements, especially productivity measures such as lines of code per day”
― Code Complete: A Practical Handbook of Software Construction
issues are matters of religion. If you’re a manager and you try to require compliance
with certain programming practices, you’re inviting your programmers’ ire. Here’s a
list of religious issues:
■ Programming language
■ Indentation style
■ Placing of braces
■ Choice of IDE
■ Commenting style
■ Efficiency vs. readability tradeoffs
■ Choice of methodology—for example, Scrum vs. Extreme Programming vs. evolutionary
delivery
■ Programming utilities
■ Naming conventions
■ Use of gotos
■ Use of global variables
■ Measurements, especially productivity measures such as lines of code per day”
― Code Complete: A Practical Handbook of Software Construction
“Copy and paste is a design error”
― Code Complete
― Code Complete
“As Thomas Hobbes observed in the 17th century, life under mob rule is solitary, poor, nasty, brutish and short. Life on a poorly run software project is solitary, poor, nasty, brutish, and hardly ever short enough.”
― Software Project Survival Guide
― Software Project Survival Guide
“Choose your battles. If rapid development is truly top priority, don't shackle your developers by insisting on too many priorities at once.”
― Rapid Development
― Rapid Development
“complicated code is a sign that you don't understand your program well enough to make it simple.”
― Code Complete
― Code Complete
“usually more time is spent in making good-looking presentation slides than in improving the quality of the software.”
― Code Complete
― Code Complete
“When executives ask for an “estimate,” they’re often asking for a commitment or for a plan to meet a target.”
― Software Estimation: Demystifying the Black Art
― Software Estimation: Demystifying the Black Art
“few people can understand more than three levels of nested ifs”
― Code Complete
― Code Complete
“People who are effective at developing high-quality software have spent years accumulating dozens of techniques, tricks, and magic incantations. The techniques are not rules; they are analytical tools.”
― Code Complete
― Code Complete
“Study after study has shown that motivation probably has a larger effect on productivity and quality than any other factor”
― Rapid Development
― Rapid Development
“Reduce complexity. The single most important reason to create a routine is to reduce a program's complexity. Create a routine to hide information so that you won't need to think about it.”
― Code Complete
― Code Complete
“developers insert an average of 1 to 3 defects per hour into their designs and 5 to 8 defects per hour into code”
― Code Complete
― Code Complete
“Try to create modules that depend little on other modules. Make them detached, as business associates are, rather than attached, as Siamese twins are.”
― Code Complete
― Code Complete
“You can do anything with stacks and iteration that you can do with recursion.”
― Code Complete
― Code Complete
“One of the paradoxes of defensive programming is that during development, you'd like an error to be noticeable—you'd rather have it be obnoxious than risk overlooking it. But during production, you'd rather have the error be as unobtrusive as possible, to have the program recover or fail gracefully.”
― Code Complete
― Code Complete
“Managing complexity is the most important technical topic in software development. In my view, it's so important that Software's Primary Technical Imperative has to be managing complexity. Complexity is not a new feature of software development.”
― Code Complete
― Code Complete
“Spend your time on the 20 percent of the refactorings that provide 80 percent of the benefit.”
― Code Complete
― Code Complete
“Don't differentiate routine names solely by number. One developer wrote all his code in one big function. Then he took every 15 lines and created functions named Part1, Part2, and so on. After that, he created one high-level function that called each part.”
― Code Complete
― Code Complete
“The goal is to minimize the amount of a program you have to think about at any one time. You might think of this as mental juggling—the more mental balls the program requires you to keep in the air at once, the more likely you'll drop one of the balls, leading to a design or coding error.”
― Code Complete
― Code Complete
“A blanket attempt to avoid mistakes is the biggest mistake of all.”
―
―
“Inheritance adds complexity to a program, and, as such, it's a dangerous technique. As Java guru Joshua Bloch says, "Design and document for inheritance, or prohibit it." If a class isn't designed to be inherited from, make its members non-virtual in C++, final in Java, or non-overridable in Microsoft Visual Basic so that you can't inherit from it.”
― Code Complete
― Code Complete
“Building software implies various stages of planning, preparation and execution that vary in kind and degree depending on what's being built. [...]
Building a four-foot tower requires a steady hand, a level surface, and 10 undamaged beer cans. Building a tower 100 times that size doesn't merely require 100 times as many beer cans.”
― Code Complete: A Practical Handbook of Software Construction
Building a four-foot tower requires a steady hand, a level surface, and 10 undamaged beer cans. Building a tower 100 times that size doesn't merely require 100 times as many beer cans.”
― Code Complete: A Practical Handbook of Software Construction





