Automating software releases helps developers avoid problems by automating repetitive tasks like testing code and documentation. The author created a script called release(1) to automate tasks for releasing their Perl modules, which they later developed into the Module::Release module to make the process easier, pluggable, and shareable for other developers. Module::Release handles tasks like checking for bugs, testing distributions, and syncing source control to help developers focus on development rather than manual preparation and release steps.