keeping software fresh



What is the best general strategy for having software that automatically updates?

Is it to have a separate executable that runs on startup and compares the current software version with the latest version every 10 minutes?
.