More on this book
Community
Kindle Notes & Highlights
if one person misunderstands, then it's possible many people do.
Nothing astonishes men so much as common sense and plain dealing. • Ralph Waldo Emerson,
Don't be a slave to history. Don't let existing code dictate future code. All code can be replaced if it is no longer appropriate. Even within one program, don't let what you've already done constrain what you do next—be ready to refactor (see Refactoring, page 184). This decision may impact the project schedule. The assumption is that the impact will be less than the cost of not making the change.[1]
Rather than construction, software is more like gardening—it is more organic than concrete. You
activity that needs to be undertaken slowly, deliberately, and carefully. Martin Fowler offers the following simple tips on how to refactor without doing
This style of testing requires you to test subcomponents of a module first. Once the subcomponents have been verified, then the module itself can be tested.
Examples of how to use all the functionality of your module A means to build regression tests to validate any future changes to the code
But if you do use a wizard, and you don't understand all the code that it produces, you won't be in control of your own application. You won't be able to maintain it, and you'll be struggling when it comes time to debug.
No matter how well thought out it is, and regardless of which "best practices" it includes, no method can replace thinking.
Work with a User to Think Like a User
If it's on the Web, the programmers may even read it.
Don't get us wrong. We like (some) formal techniques and methods. But we believe that blindly adopting any technique without putting it into the context of your development practices and capabilities is a recipe for disappointment.
There is also a tendency to fall back into the us versus them mentality of designers against coders. We prefer to understand the whole of the system we're working on.
At Group L, Stoffel oversees six first-rate programmers, a managerial challenge roughly comparable to herding cats.
How does this functional style of organization help? Organize our resources using the same techniques we use to organize code, using techniques such as contracts (Design by Contract, page 109), decoupling (Decoupling and the Law of Demeter, page 138), and orthogonality (Orthogonality, page 34), and we help isolate the team
Many teams develop elaborate test plans for their projects. Sometimes they will even use them.

