a48785f
|
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... This decision may impact the project schedule. The assumption is that the impact will be less than the cost of /not/ making the change.
|
|
|
Andrew Hunt |
8b5ff6b
|
The greatest of all weaknesses is the fear of appearing weak.
|
|
|
Andrew Hunt |
8644018
|
You Can't Write Perfect Software. Did that hurt? It shouldn't. Accept it as an axiom of life. Embrace it. Celebrate it. Because perfect software doesn't exist. No one in the brief history of computing has ever written a piece of perfect software. It's unlikely that you'll be the first. And unless you accept this as a fact, you'll end up wasting time and energy chasing an impossible dream.
|
|
|
Andrew Hunt |
96407d7
|
Tools amplify your talent. The better your tools, and the better you know how to use them, the more productive you can be.
|
|
|
Andrew Hunt |
d83892c
|
The editor will be an extension of your hand; the keys will sing as they slice their way through text and thought.
|
|
|
Andrew Hunt |
d55786a
|
Great software today is often preferable to perfect software tomorrow.
|
|
|
Andrew Hunt |
ba3b10d
|
An investment in knowledge always pays the best interest.
|
|
|
Andrew Hunt |
5c69863
|
Names are deeply meaningful to your brain, and misleading names add chaos to your code.
|
|
|
Andrew Hunt |
766480e
|
Don't gloss over a routine or piece of code involved in the bug because you "know" it works. Prove it. Prove it in this context, with this data, with these boundary conditions."
|
|
|
Andrew Hunt |
8c606cc
|
A good idea is an orphan without effective communication.
|
|
|
Andrew Hunt |
0f9d9c4
|
Kaizen" is a Japanese term that captures the concept of continuously making many small improvements."
|
|
|
Andrew Hunt |
e12211a
|
All software you write will be tested--if not by you and your team, then by the eventual users--so you might as well plan on testing it thoroughly.
|
|
|
Andrew Hunt |
698fd86
|
In some ways, programming is like painting. You start with a blank canvas and certain basic raw materials. You use a combination of science, art, and craft to determine what to do with them. You sketch out an overall shape, paint the underlying environment, then fill in the details. You constantly step back with a critical eye to view what you've done. Every now and then you'll throw a canvas away and start again. But artists will tell you ..
|
|
|
Andrew Hunt |
0cebf20
|
If you work closely with your users, sharing their expectations and communicating what you're doing, then there will be few surprises when the project gets delivered. This is a BAD THING. Try to surprise your users. Not scare them, mind you, but /delight/ them.
|
|
|
Andrew Hunt |
17485bd
|
In an article in the April 1999 CACM, Robert Glass summarizes research that seems to indicate that, while code inspection is effective, conducting reviews in meetings is not.
|
|
|
Andrew Hunt |
79acdca
|
There is a simple marketing trick that helps teams communicate as one: generate a brand. When you start a project, come up with a name for it, ideally something off-the-wall. (In the past, we've named projects after things such as killer parrots that prey on sheep, optical illusions, and mythical cities.) ...Use your team's name liberally when talking with people. It sounds silly, but it gives your team an identity to build on, and the worl..
|
|
|
Andrew Hunt |
f489d25
|
The amount of surprise you feel when something goes wrong is directly proportional to the amount of trust and faith you have in the code being run.
|
|
|
Andrew Hunt |
3b8c321
|
We who cut mere stones must always be envisioning cathedrals.
|
|
|
Andrew Hunt |
f607ecf
|
Programmers are constantly in maintenance mode.
|
|
|
Andrew Hunt |
808b3d9
|
One hundred years from now, our engineering may seem as archaic as the techniques used by medieval cathedral builders seem to today's civil engineers, while our craftsmanship will still be honored.
|
|
|
Andrew Hunt |
f6192d5
|
Every day, work to refine the skills you have and to add new tools to your repertoire.
|
|
|
Andrew Hunt |
8202cc6
|
In addition, build dependencies may not be the same as test dependencies, and you may need separate hierarchies.
|
|
|
Andrew Hunt |
912625c
|
Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, or display a "Not Implemented" message, or substitute dummy data instead. Take some action to prevent further damage and to show that you're on top of the situation."
|
|
|
Andrew Hunt |
453eab0
|
More testing should be done automatically. It's important to note that by "automatically" we meant that the test /results/ are interpreted automatically as well."
|
|
|
Andrew Hunt |
78a9342
|
maintaining good regression tests is the key to refactoring with confidence.
|
|
|
Andrew Hunt |
911bd26
|
Everything emanated from the temple. On the northern side of the oval Salt Lake Valley, the earliest Mormon arrivals set aside ten acres for what they called Temple Square.
|
|
|
Andrew Hunt |
cb7cf22
|
Just be aware that you reach a point of diminishing, or even negative, returns as the specifications get more and more detailed.
|
|
|
Andrew Hunt |
9e989ed
|
Have you noticed how some project teams are efficient, with everyone knowing what to do and contributing fully, while the members of other teams are constantly bickering and don't seem able to get out of each other's way? Often this is an orthogonality issue. When teams are organized with lots of overlap, members are confused about responsibilities. Every change needs a meeting of the entire team, because any one of them might be affected.
|
|
|
Andrew Hunt |
a0887eb
|
Entropy is a term from physics that refers to the amount of "disorder" in a system."
|
|
|
Andrew Hunt |
026e6a1
|
An investment in knowledge always pays the best interest. * Benjamin Franklin
|
|
|
Andrew Hunt |
396862e
|
Documenting the reasons behind requirements will give your team invaluable information when making daily implementation decisions.
|
|
|
Andrew Hunt |
d613e38
|
Providing a comfortable transition through familiar metaphors is one way to help get buy-in.
|
|
|
Andrew Hunt |