Why is 'present perfect' present if it happened in the past? And why is it 'perfect'?
Present Perfect is called like that because it combines the present grammatical tense (you have) and the perfect grammatical aspect (done). Compare that to Past Perfect which uses the past tense (you had + done), or the Future Perfect which uses the future "tense" (you will have + done).
As to why it's perfect, the term comes from Latin perfectus, "achieved, finished, completed". Which is quite literally what you have done whenever you have done something.
The present perfect, like the simple past, locates the situation, or part of it, in the past:
- She has read your letter.
- She read your letter.
However, the present perfect is a compound tense that combines the present and the past, while the simple past is purely a past tense.
Here are some reasons its called the present perfect, and not just the past tense:
Use of time adjuncts
The present perfect allows the use of time adjuncts referring to the present.
- We have, by now, finished most of our work.
- *We, by now, finished most of our work. (incorrect)
Conversely, the present perfect does not allow the use of time adjuncts referring to the past.
- *We have finished our work last week. (incorrect)
- We finished our work last week.
With the present perfect, the situation in the past is seen to have some kind of current relevance. Compare these two:
She has lived in this city for ten years.
She lived in this city for ten years.
Use of the present perfect in the first sentence indicates that she still lives in this city while use of the simple past in the second indicates that she lived in this city in the past, but no longer does.
I've quoted quite a bit from the very descriptive A Student's Introduction to English Grammar by Huddleston and Pullum.
As noted in @RegDwight's answer, I understand that the perfect part comes from the Latin perfectus, meaning "completed".
Latin and other languages like Italian, French, German, English have a double tense system in active and passive. We have simple tenses: present, past, future, conditional.
And parallel to these tenses we have a second set of tenses: Present perfect, past perfect, future perfect, conditional perfect.
verbix.com has a conjugation table that shows the two sets of tenses very well. http://www.verbix.com/webverbix/English/do.html
In the verbix table present perfect is simply called perfect, past perfect is called pluperfect, just another name for the same thing.
As to the name perfect, which means completed, it was the grammar term in Latin where it may have been justified. But in modern languages the name is just a name and doesn't say anything essential.
- I read Hamlet last year. - I have read Hamlet. Both events are completed in the past, so it makes not much sense to call one tense past, and the other perfect.
You could use other names for the tenses: Present 1, past 1, future 1, conditional 1 and present 2, past 2, future 2, conditional 2. This would be the same. Just names, so we can talk about the tenses. You could also call the first set "left", present left etc, and the second set "right", present right etc.
The use of these tenses is a thing that must be learnt from grammars. And the use is not the same for all languages. English uses perfect for things past with a bearing on the present time. German uses perfect in the north as in English, in the south perfect is used as the English past tense.
Remark: In English grammars conditional is seen as a mood and is lacking in almost all conjugation tables. As "would" ist the past tense of "will", subjunctive and sometimes indicative, too it is possible to see conditional as a tense as well. Verbix.com has solved the problem by adding conditional under the three traditional tenses.