
The Pragmatic Programmer: From Journeyman to Master

When disorder increases in software, programmers call it "software rot."
David Thomas • The Pragmatic Programmer: From Journeyman to Master
EVERY PIECE OF KNOWLEDGE MUST HAVE A SINGLE, UNAMBIGUOUS, AUTHORITATIVE REPRESENTATION WITHIN A SYSTEM.
David Thomas • The Pragmatic Programmer: From Journeyman to Master
Don't spoil a perfectly good program by overembellishment and over-refinement.
David Thomas • The Pragmatic Programmer: From Journeyman to Master
"shortcuts make for long delays."
David Thomas • The Pragmatic Programmer: From Journeyman to Master
One broken window—a badly designed piece of code, a poor management decision that the team must live with for the duration of the project—is all it takes to start the decline. If you find yourself working on a project with quite a few broken windows,
David Thomas • The Pragmatic Programmer: From Journeyman to Master
Great lawns need small amounts of daily care, and so do great programmers. Management consultants like to drop the word kaizen in conversations. "Kaizen" is a Japanese term that captures the concept of continuously making many small improvements.
David Thomas • The Pragmatic Programmer: From Journeyman to Master
We feel that the best way to deal with this is to encourage active and frequent communication
David Thomas • The Pragmatic Programmer: From Journeyman to Master
You shouldn't be wedded to any particular technology, but have a broad enough background and experience base to allow you to choose good solutions in particular situations. Your background stems from an understanding of the basic principles of computer science, and your experience comes from a wide range of practical projects. Theory and practice c
... See moreDavid Thomas • The Pragmatic Programmer: From Journeyman to Master
Great software today is often preferable to perfect software tomorrow. If you give your users something to play with early, their feedback will often lead you to a better eventual solution