Overcooking corn does make it tough. But why are you so quick to jump to the conclusion that you've done everything wrong? A very likely culprit for tough corn is age (the corn's, not yours).

corn ages - specifically, the longer is stays on the stalk after it is fully ripe - the thicker and harder the pericarp (the skin of the kernel) gets. It is quite possible that you are buying elderly corn, and it is lessening your self-esteem.

Get some fresh, young corn at a farmer's market or farm stand and don't overcook it. Starting the corn in cold water, bringing it to a boil, and THEN setting the timer for 15 minutes does seem like you're overdoing it a bit. You should start with the water already boiling, add the corn, and in four or five minutes after the water returns to the boil, the corn will be done. We think you'll taste a world of difference.