Comencé un trabajo como programador junior hace unos meses. El sistema en el que estamos trabajando ha estado en producción durante ~ 2 años. No participé en la mendicidad del sistema y el diseño.
Una cosa que he notado es que la versión principal del sistema ya es 11.YZ. Formando mi experiencia trabajando con otros sistemas y bibliotecas, no recuerdo haber visto una versión principal que golpeara el producto tan rápido. Hay productos que han estado durante años en 1.XY, y todavía reciben características y correcciones de errores.
Suponiendo que el control de versiones semántico se usa correctamente, ¿esto indica que el sistema está mal diseñado ya que realiza cambios importantes cada cuatro meses?
versioning
semantic-versioning
usuario367035
fuente
fuente
Respuestas:
No necesariamente.
Usted mencionó en los comentarios que esta es una API interna. Romper una API es malo, porque rompes el código de todos. Pero para una API interna, "todos" son solo "usted", y usted es perfectamente capaz de coordinar dichos cambios de API consigo mismo, por lo que el dolor que generalmente se asocia con los cambios de API es mucho menos grave.
Además, el promedio podría ser enormemente engañoso: ¿tal vez tuvieron 11 cambios de API de última hora durante los primeros días de desarrollo temprano y se han mantenido estables durante 4 años desde entonces? SemVer le permite realizar cambios importantes sin aumentar el número mayor si el número mayor es 0, pero no lo obliga a hacerlo. ¿Quizás comenzaron a usar SemVer desde el día 0, incluso durante las fases de creación de prototipos / exploración?
fuente
Respuesta corta
No
Respuesta larga
"A veces un número es solo un número"
Olvídate de "versiones semánticas", "racionalidad", "lógica" en el mundo loco actual
¿Por qué Chrome engulle los números de versión tan rápido?
fuente
Cuando se utiliza el control de versiones semántico, aún queda la decisión de qué cambios se consideran "mayores" y cuáles son "menores". Hay varias razones para aumentar el número de versión, o para no modificarlo.
Los sistemas con promesas de compatibilidad con versiones anteriores podrían terminar aumentando el número de versión principal con la mayoría de las actualizaciones, solo porque hay una interrupción de compatibilidad con versiones anteriores en algunos casos de esquina más o menos esotéricos. Los mismos sistemas podrían quedarse en 1.xy casi indefinidamente, porque se pone mucho esfuerzo en la compatibilidad con versiones anteriores, tratando de nunca romper ningún sistema dependiente. Ambos enfoques para la numeración de versiones podrían considerarse "conservadores", pero ambos también podrían ser un signo de un profundo problema subyacente.
Otras veces, en realidad tiene un cronograma de lanzamiento (piense en los CD de actualización trimestrales enviados a los clientes) donde tiene sentido cambiar el número de versión principal, de modo que en lugar de "Versión 3.4 / 16 de octubre" simplemente dice "Versión 11.0". Hoy en día, se lanza cada vez más software en intervalos cortos, lo que hace que los cronogramas de lanzamiento sean una razón menor para apegarse a un esquema de versiones específico. He visto esto en grandes sistemas de almacén que permiten que la TI interna solo tenga un día de inactividad por trimestre (generalmente un domingo). Este día es el día de implementación y está marcado con una nueva versión principal cada vez.
Algunos programas tienen dependencias externas que son de suma importancia, ya que el usuario tendrá que actualizar ambos al mismo tiempo. Si tiene un complemento de Word que solo funciona con Word 2010 y otro para Word 2013, es posible que desee sincronizar sus números de versión principales con los de MS-Word. Aquí, los números importantes son muy importantes, porque algunos de sus usuarios estarán "atrasados" en su programa de actualización normal, ya que no se han actualizado a la versión más reciente de Word (o cualquier otra cosa en la que confíe: SAP, Dynamics, etc)
A veces, otros factores externos dictan los números de versión. Si tiene software fiscal, puede haber actualizaciones anuales correspondientes a la ley tributaria (que tiende a entrar en vigencia el 1 de enero). Dichos sistemas tendrán versiones principales que cambian exactamente una vez al año, no porque ese sea el cronograma de actualización, sino porque eso es de otra importancia para el cliente: si hace sus impuestos de 2016, es mejor que tenga un programa que se actualice a la ley de impuestos de 2016.
Al final, los números de versión dependen de tantos factores, a menudo específicos de un dominio, que el número por sí solo no le dice nada sobre el estado de su base de código. Es un enfoque mucho mejor observar cuándo, por qué y cómo ocurren las implementaciones, y con qué facilidad. Si puede implementar una actualización importante para 10.000 clientes y hacer un par de llamadas telefónicas, probablemente esté bien. Si implementa un parche menor para 10 clientes y tiene que trabajar horas extras debido a eso, probablemente algo esté mal.
fuente
El consenso sobre el significado de los números de versión es de hecho major.minor.revision.buildnumber
Si las principales suben rápidamente, podría ser que el desarrollador tenga todas estas nuevas ideas y trabaje realmente duro.
Sin embargo, en el mundo de los negocios puede haber otras razones para incrementar el número de versión principal. Me gusta
Las ventas han bajado, los clientes / usuarios están esperando el próximo gran lanzamiento antes de actualizar.
El contrato dice que los clientes tienen derecho a actualizaciones menores. El vendedor no puede cobrarles por eso, por lo que se vende una pequeña mejora como una importante actualización del producto.
El competidor X ha estado en el juego un poco más de tiempo, por lo que su número de versión principal es más alto que el tuyo. Esto hace que parezca que te estás quedando atrás, tienes que "ponerte al día".
fuente