¿Debo incorporar el costo de salida al elegir una solución?

10

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?

dvdvorle
fuente
¿Puede agregar por qué cree que la primera solución bloqueará los datos y será difícil cambiarla más adelante?
Jaap
En esencia, ¿no son todos los formatos propietarios, incluso los que se supone 'estándar' o 'abierto'? Probablemente, Yagni se aplica si el formato 'propietario' es más fácil de implementar, sencillo de usar y / o el formato de facto para el intercambio.
JustinC
Sin entrar en detalles; piense en ello como colocar una hoja de Excel (diseñada por el cliente) en un sistema de gestión de documentos (solución 1), en lugar de crear las tablas y GUI apropiadas y generar la hoja de Excel a pedido (solución 2). Excepto que no es Excel.
dvdvorle
Sin embargo, esto probablemente no impide señalar este aspecto de preocupación al presentar la elección y la decisión al patrocinador del proyecto.
JustinC
@JustinC bueno eventualmente estamos hablando de efectivo aquí. ¿Es más barato usar el formato 'propietario' a largo plazo o no? Eso es lo que creo que es más importante para el patrocinador del proyecto
dvdvorle el

Respuestas:

4

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).

Blrfl
fuente
La alternativa a que el costo de salida sea parte del TCO de esta solución, sería que sería parte del TCO de la próxima solución. Ahora sé que esto suena extraño si lo digo así, pero en mi experiencia, el costo de desmantelar un sistema forma parte del plan / presupuesto del proyecto del próximo sistema, no del plan / presupuesto del proyecto para el sistema actual. ¿Tiene sentido?
dvdvorle
1
Tiene sentido para mí, y esa es más o menos la conclusión a la que llegué. Realmente no se puede llegar a un total real hasta que todo haya terminado.
Blrfl
Estoy de acuerdo con las dificultades de estimar con precisión los "costos de salida", creo que hay valor en proporcionar uno, incluso si está en el dinero de hoy. Compare "esto sería difícil y requeriría mucho tiempo" y "probablemente costará entre $ 25000 y $ 50000 si se hace mañana".
vaughandroid
@Blrfl, ¿qué hace que esta pregunta esté fuera de tema?
neontapir
1
@neontapir: El meollo de la pregunta es realmente sobre la gestión de proyectos; el hecho de que se trata de un programa realmente no tiene que ver con la programación. Lo mismo podría aplicarse con la misma facilidad a interruptores telefónicos u hornos de pizza.
Blrfl
2

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:

  • ¿Qué posibilidades hay de que los datos se migren a otro sistema en el futuro?
  • ¿Es probable que el proveedor de la solución altere su propio formato de datos para que sea más fácil / difícil migrar los datos en el futuro? Si es así, ¿afectará esto a su solución?
  • Incluso si no desea cambiar los datos más adelante, ¿existe la posibilidad de que desee presentarlos / acceder a ellos de una manera diferente? ¡Mi experiencia es que esto es bastante común!
vaughandroid
fuente
1

A partir de su comentario sobre la situación del archivo Excel, lo veo como:

  • no cambiar el formato actual (solución 1)
  • versus analizar el formato ahora y almacenarlo en un formato diferente (posiblemente / con suerte más adecuado / preparado para el futuro) (solución 1 + paso de análisis, también conocido como solución 2)

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.

Jaap
fuente
Para ser claros, actualmente no hay solución (solución 0 si lo desea). Actualmente mantienen toda la información en archivos de papel. Estaría totalmente de acuerdo con esta respuesta si ya usaran el archivo "Excel" en el sistema de gestión de documentos, pero todavía hay una opción aquí.
dvdvorle
¿O cree que eso no es relevante porque la implementación de la solución 1 es barata?
dvdvorle el
Mi punto es que creo que si la solución 2 puede considerarse una mejora de la solución 1, pero esa mejora no es estrictamente necesaria ahora, aplica YAGNI.
Jaap
Veo a que te refieres. Es algo en lo que pensar. Aunque creo que es hora de ir al cliente ahora, ver qué piensa que es una mejora y otras cosas.
dvdvorle
0

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.

MikroDel
fuente
2
¿Entonces está diciendo que cualquier costo relacionado con el 5% de posibilidades de que la solución cambie es irrelevante?
dvdvorle
Quiero decir que este tipo de sentimiento ... Ya sabes lo que significa "YAGNI" - el resto es sentimiento =)
MikroDel
0

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.

btilly
fuente