Steve McConnell Quotes

Most memorable quotes from Steve McConnell.

Steve McConnell Famous Quotes

Reading Steve McConnell quotes, download and share images of famous quotes by Steve McConnell. Righ click to see or save pictures of Steve McConnell quotes that you can use as your wallpaper for free.

Good visual layout shows the logical structure of a program.
Steve McConnell Quotes: Good visual layout shows the
11 years is a long time in this industry.
Steve McConnell Quotes: 11 years is a long
Implement "is a" through public inheritance. When a programmer decides to create a new class by inheriting from an existing class, that programmer is saying that the new class "is a" more specialized version of the older class. The base class sets expectations about how the derived class will operate and imposes constraints on how the derived class can operate (Meyers 1998).
Steve McConnell Quotes: Implement
Spend your time on the 20 percent of the refactorings that provide 80 percent of the benefit.
Steve McConnell Quotes: Spend your time on the
the road to programming hell is paved with global variables,
Steve McConnell Quotes: the road to programming hell
It's OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it.
Steve McConnell Quotes: It's OK to figure out
Programming requires more concentration than other activities. It's the reason programmers get upset about 'quick interruptions' - such interruptions are tantamount to asking a juggler to keep three balls in the air and hold your groceries at the same time.
Steve McConnell Quotes: Programming requires more concentration than
complicated code is a sign that you don't understand your program well enough to make it simple.
Steve McConnell Quotes: complicated code is a sign
You save time when you don't need to have an awards ceremony every time a C statement does what it's supposed to. Moreover,
Steve McConnell Quotes: You save time when you
In software, consultants sometimes tell you to buy into certain software-development methods to the exclusion of other methods. That's unfortunate because if you buy into any single methodology 100 percent, you'll see the whole world in terms of that methodology. In some instances, you'll miss opportunities to use other methods better suited to your current problem.
Steve McConnell Quotes: In software, consultants sometimes tell
it's done by creating 25 times as many dirty tests
Steve McConnell Quotes: it's done by creating 25
In software, the chain isn't as strong as its weakest link; it's as weak as all the weak links multiplied together.
Steve McConnell Quotes: In software, the chain isn't
The default movement on a software project should be in the direction of taking elements of the software away to make it simpler rather than adding elements to make it more complex.
Steve McConnell Quotes: The default movement on a
The only way to reduce the variability in the estimate is to reduce the variability in the project.
Steve McConnell Quotes: The only way to reduce
Error processing is turning out to be one of the thorniest problems of modern computer science, and you can't afford to deal with it haphazardly. Some people have estimated that as much as 90 percent of a program's code is written for exceptional, error-processing cases or housekeeping, implying that only 10 percent is written for nominal cases (Shaw in Bentley 1982). With so much code dedicated to handling errors, a strategy for handling them consistently should be spelled out in the architecture.
Steve McConnell Quotes: Error processing is turning out
It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free.
Steve McConnell Quotes: It's hard enough to find
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.
Steve McConnell Quotes: Inheritance adds complexity to a
Copy and paste is a design error
Steve McConnell Quotes: Copy and paste is a
Trying to apply formal methods to all software projects is just as bad as trying to apply code-and-fix development to all projects.
Steve McConnell Quotes: Trying to apply formal methods
Be critical of classes that contain more than about seven data members. The
Steve McConnell Quotes: Be critical of classes that
Software projects fail for one of two general reasons: the project team lacks the knowledge to conduct a software project successfully, or the project team lacks the resolve to conduct a project effectively.
Steve McConnell Quotes: Software projects fail for one
Mature testing organizations tend to have five dirty tests for every clean test.
Steve McConnell Quotes: Mature testing organizations tend to
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 Quotes: Heuristic is an algorithm in
Immature testing organizations tend to have about five clean tests for every dirty test.
Steve McConnell Quotes: Immature testing organizations tend to
Watch for coupling that's too tight. "Coupling" refers to how tight the connection is between two classes. In general, the looser the connection, the better. Several general guidelines flow from this concept: Minimize accessibility of classes and members. Avoid friend classes, because they're tightly coupled. Make data private rather than protected in a base class to make derived classes less tightly coupled to the base class. Avoid exposing member data in a class's public interface. Be wary of semantic violations of encapsulation. Observe the "Law of Demeter" (discussed in Design and Implementation Issues of this chapter). Coupling goes hand in glove with abstraction and encapsulation. Tight coupling occurs when an abstraction is leaky, or when encapsulation is broken.
Steve McConnell Quotes: Watch for coupling that's too
defect corrections have more than a 50 percent chance of being wrong the first time
Steve McConnell Quotes: defect corrections have more than
Even when you have skilled, motivated, hard-working people, the wrong team structure can undercut their efforts instead of catapulting them to success. A poor team structure can increase development time, reduce quality, damage morale, increase turnover, and ultimately lead to project cancellation.
Steve McConnell Quotes: Even when you have skilled,
in the vast majority of systems, efficiency isn't critical.
Steve McConnell Quotes: in the vast majority of
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.
Steve McConnell Quotes: Programmers working with high-level languages
The job of the average manager requires a shift in focus every few minutes. The job of the average software developer requires that the developer not shift focus more often than every few hours.
Steve McConnell Quotes: The job of the average
Study after study has shown that motivation probably has a larger effect on productivity and quality than any other factor
Steve McConnell Quotes: Study after study has shown
A typical software project can present more opportunities to learn from mistakes than some people get in a lifetime.
Steve McConnell Quotes: A typical software project can
Another good reason to create a class is to model an abstract object - an object that isn't a concrete, real-world object but that provides an abstraction of other concrete objects. A good example is the classic Shape object. Circle and Square really exist, but Shape is an abstraction of other specific shapes.
Steve McConnell Quotes: Another good reason to create
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 Quotes: Choose your battles. If rapid
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.
Steve McConnell Quotes: One of the paradoxes of
Motivation is undoubtedly the single greatest influence on how well people perform. Most productivity studies have found that motivation has a stronger influence on productivity than any other factor.
Steve McConnell Quotes: Motivation is undoubtedly the single
Hurrying to solve a problem is one of the most time-ineffective things you can do.
Steve McConnell Quotes: Hurrying to solve a problem
Make interfaces programmatic rather than semantic when possible. Each interface consists of a programmatic part and a semantic part. The programmatic part consists of the data types and other attributes of the interface that can be enforced by the compiler. The semantic part of the interface consists of the assumptions about how the interface will be used, which cannot be enforced by the compiler. The semantic interface includes considerations such as "RoutineA must be called before RoutineB" or "RoutineA will crash if dataMember1 isn't initialized before it's passed to RoutineA." The semantic interface should be documented in comments, but try to keep interfaces minimally dependent on documentation. Any aspect of an interface that can't be enforced by the compiler is an aspect that's likely to be misused. Look for ways to convert semantic interface elements to programmatic interface elements by using Asserts or other techniques.
Steve McConnell Quotes: Make interfaces programmatic rather than
developer testing should probably take 8 to 25 percent of the total project time.
Steve McConnell Quotes: developer testing should probably take
If the derived class isn't going to adhere completely to the same interface contract defined by the base class, inheritance is not the right implementation technique. Consider containment or making a change further up the inheritance hierarchy.
Steve McConnell Quotes: If the derived class isn't
Use locking to control access to global variables. Similar to concurrency control in a multiuser database environment, locking requires that before the value of a global variable can be used or updated, the variable must be "checked out." After the variable is used, it's checked back in. During the time it's in use (checked out), if some other part of the program tries to check it out, the lock/unlock routine displays an error message or fires an assertion.
Steve McConnell Quotes: Use locking to control access
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.
Steve McConnell Quotes: It's better to wait for
On their way to America, the Pilgrims argued about the best maximum length for a routine. After arguing about it for the entire trip, they arrived at Plymouth Rock and started to draft the Mayflower Compact. They still hadn't settled the maximum-length question, and since they couldn't disembark until they'd signed the compact, they gave up and didn't include it. The result has been an interminable debate ever since about how long a routine can be.
Steve McConnell Quotes: On their way to America,
once gotos are introduced, they spread through the code like termites through a rotting house.
Steve McConnell Quotes: once gotos are introduced, they
Steve McClaren Quotes «
» Steve McCurry Quotes