¿Mejores prácticas para nombrar y realizar versiones de ensamblajes?

Estoy buscando algunas buenas prácticas para nombrar los ensamblados y la versión de ellos. ¿Con qué frecuencia incrementas las versiones mayor o menor?

En algunos casos, he visto lanzamientos que van directamente de la versión 1.0 a la 3.0. En otros casos, parece estar bloqueado en la versión 1.0.2.xxxx.

Esto será para un conjunto compartido utilizado en múltiples proyectos en toda la empresa. Esperando algunas buenas entradas.