Is there any difference in the meaning of the following sentences? Or do they mean the exact same thing?
By doing both, you have completed the task.
By doing both, you completed the task.
English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It only takes a minute to sign up.Sign up to join this community
Use the present-perfect (have completed) only when the action has bearing upon present circumstances. The present perfect is ungrammatical if the action was completed in the past and has no bearing whatsoever upon present circumstances.
When you were ten years old (now you're in your 30s, say) you were in the Boy Scouts and back then you wanted to earn a merit badge on Morse Code. There were two prerequisite tasks: 1) demonstrate knowledge of Morse Code by converting a message in dots and dashes into letters and words and 2) send a text message in Morse Code to another person.
By completing both tasks, you earned the merit badge.
It would be ungrammatical to say to you, now in your 30s, when speaking of that specific accomplishment achieved in your childhood:
By completing both tasks, you have earned the merit badge. [wrong tense]
However, the scout master might very well say to a boy scout in his troop:
Congratulations! By completing both tasks, you have earned the Morse Code merit badge.
On the other hand, the simple past tense (earned) can be used for both scenarios. The scout master could say to a boy scout in his troop:
Congratulations! By completing both tasks, you earned the Morse Code merit badge.
Although "have earned" would be more precise there, employing the simple past in situations where the present perfect would be more appropriate is far less jarring than employing the present-perfect in situations where the present perfect is inappropriate. That's because the present perfect implies that the action expressed has relevance to present circumstances; the sentence becomes "dissonant" if there is no such relevance.
It depends on context. Present Perfect (have completed) implies a strong connection between the past activity and the present time. If the task was completed long ago, and/or has no special relevance to the time of speaking/writing, use Simple Past. Consider...
1: By dancing naked on the table-top just now you annoyed me.
2: By dancing naked on the table-top last year you annoyed me.
3: By dancing naked on the table-top just now you have annoyed me.
4: By dancing naked on the table-top last year you have annoyed me.
...where it's implicit in both #1 and #2 that the speaker is no longer annoyed, since if she was, she'd have used #3 or (an unforgiving speaker in relatively unusual circumstances) #4.