Actualmente elijo entre dos diseños / soluciones de software viables. La solución 1 es fácil de implementar, pero bloqueará algunos datos en un formato propietario y será difícil cambiarlos más adelante. La solución 2 es difícil de implementar, pero será mucho más fácil cambiarla más adelante.
¿Debo ir a YAGNI en esto o debo incorporar el costo de salida en la toma de decisiones? O preguntado de manera diferente, ¿es el costo de salida parte del TCO?
Estoy pensando en volver al cliente con esto para preguntarle si cree o no que los costos de salida son relevantes, pero me gustaría saber qué piensa primero la comunidad.
PD: ¿Es el costo de salida el término correcto?
design
architecture
terminology
decisions
dvdvorle
fuente
fuente
Respuestas:
El costo de salida es parte del costo total de propiedad (la T representa el total ), pero es difícil precisar a menos que sepa a priori cuánto tiempo durará el sistema. En otras palabras, si sabe que el sistema se usará exactamente por un año y costará $ 52,000 desmantelarlo dentro de un año, puede estar seguro de agregar $ 1,000 por semana al presupuesto operativo para cubrirlo.
Ese modelo sale por la ventana cuando no conoce la vida útil del sistema. El sistema podría, en teoría, permanecer en uso para siempre, lo que significa que no se gastará dinero para cerrarlo. Todo lo que tenga en cuenta ahora será en dólares de hoy, y esas cifras podrían no tener sentido dentro de cinco años debido a los cambios en las tasas de mano de obra y la tecnología que hacen que el proceso sea más fácil (o más difícil).
Sería mejor que le diera a su cliente una idea de lo que se necesita para alejarse del sistema y dejar que lo tenga en cuenta en las decisiones de reemplazo cuando llegue el momento.
(Y ahora, después de escribir esta respuesta, puedo votar para cerrar esto como fuera de tema).
fuente
YAGNI es una gran regla en su lugar, pero no estoy seguro de que deba aplicarse en este caso. Aquí está estimando los costos futuros, una actividad que debería involucrar cierta consideración de los cambios en los requisitos futuros. Si estuviera escribiendo la implementación, ¡sería una historia diferente!
Te sugiero que hagas el cálculo de costos, pero asegúrate de que el cliente entienda por qué lo has hecho. Si no son muy técnicos, no se sorprenda si dicen algo en el sentido de "¡no puede ser una buena solución si ya está pensando en usar otra cosa!"
Puede haber algunos aspectos más específicos a tener en cuenta al hacer / presentar sus estimaciones de costos:
fuente
A partir de su comentario sobre la situación del archivo Excel, lo veo como:
Creo que YAGNI se aplica a ese paso de análisis; asegúrese de mantener el conocimiento sobre la estructura actual, pero aún no implemente el análisis.
Además, la estructura de datos analizados puede no ser tan flexible como cree; los requisitos también podrían ir hacia el almacenamiento de información / archivos diferentes, lo que significaría que debe actualizar / expandir sus tablas.
fuente
Si no está 95% seguro de que se cambiará en el futuro - Solución 1 - YAGNI =)
Seguramente depende de sus clientes y de su experiencia en la programación de algo para este cliente.
fuente
En mi experiencia, las ruedas reinventadas tardan más en reinventarse de lo que piensas, y las ruedas externas tienden a ser más fáciles de reemplazar. Ambos tipos de ruedas tienden a verse peor una vez comprados que cuando tomaste la decisión.
Si realmente crees que el n. ° 1 es fácil de implementar y te preguntas cuánto tiempo tomará el n. ° 2, escucharía la pregunta. Implemente el n. ° 1 ahora y piense en el diseño más grande a medida que avanza. Eso te ayudará si luego quieres reinventarlo.
Por el contrario, si # 1 ya no parece tan fácil como creías, salta al # 2.
fuente