To begin with it's versions vs snapshots. Maven downloads a particular artifact and its final. Maven never re-attempts to download a version already existing in the repository. If something has changed, then a new version is released and is not accommodated in the same/older version of the artifact.(changes => new versions)
Now let's say, you got a dependency, that is a work in progress/ changes are expected. If you are to use versions, every time the artifact is updated, you gotta change versions in your pom. So to avoid these, snapshots are used. Maven treats snapshots differently. It tries to pull the latest snapshot of the artifact. (default interval is the first build of the day, can be altered). So you don't have to keep changing versions anymore and just include a snapshot, it's pulled automatically.
Hope that helps, Happy coding!
Very beautifully explained in this article.