¿Cuáles son las ventajas y desventajas legales de cada modelo de desarrollo en el desarrollo de sistemas?
Existe una metodología determinada para llevar a cabo proyectos de desarrollo de sistemas. Normalmente, cuando se aprende sobre problemas legales relacionados con el desarrollo de sistemas a través de libros y otros medios, a menudo se asume el método más clásico conocido como el modelo de cascada (Waterfall). Sin embargo, el modelo de cascada no es el único método o modelo para avanzar en el desarrollo de sistemas. Por ejemplo, recientemente se ha vuelto más común seleccionar un método llamado modelo de desarrollo ágil (Agile).
En este artículo, explicaremos y compararemos estos dos modelos, el modelo de cascada y el modelo de desarrollo ágil, desde el punto de vista de la prevención de riesgos legales y conflictos.
¿Qué es un modelo de desarrollo?
¿Qué es el modelo de cascada?
El enfoque más común y clásico para el desarrollo de sistemas es el siguiente:
- Definición de requisitos: Identificación de las funciones que el sistema debe tener y las especificaciones necesarias.
- Diseño básico: Diseño de la imagen general del sistema desde el punto de vista del usuario, incluyendo el diseño de la pantalla y la transición entre pantallas.
- Diseño detallado: Diseño de la imagen general del sistema desde el punto de vista del proveedor de desarrollo, incluyendo la conexión entre los archivos de programa.
- Implementación de programación: Codificación del programa de acuerdo con el diseño.
- Prueba: Verificación de que el producto final cumple con las especificaciones y solicitud de confirmación al usuario.
Este método de desarrollo, que avanza de manera que se minimiza la posibilidad de retrocesos y cambios en el orden de los pasos, como si se estuviera bajando un río desde la parte superior hasta la inferior, se llama “modelo de cascada”. Este flujo en sí mismo no es esencial para crear un sistema en funcionamiento. Sin embargo, en el desarrollo de sistemas, que a menudo implica un gran número de personas y un largo período de tiempo, la planificación es importante. Por lo tanto, también se tiende a dar importancia a la división de cada proceso, la organización de roles y la clarificación de las responsabilidades de cada persona a cargo.
¿Qué es el modelo de desarrollo ágil?
Por otro lado, la forma de avanzar en el trabajo de desarrollo no siempre es adecuada para un enfoque que lo lleva a través de “arriba-abajo” en una sola vez. Sin duda, debido a la naturaleza del trabajo, la planificación y la habilidad para hacer estimaciones son importantes, por supuesto. Sin embargo, en trabajos que implican la creación de algo nuevo o la creación de una obra, a menudo es imposible hacer un plan perfecto desde el principio. Si se da importancia a estos puntos, debería haber un enfoque que no sólo avance el trabajo de acuerdo con el plan establecido, sino que también facilite la adaptación flexible a las correcciones y cambios de especificaciones posteriores, y que aumente el número de repeticiones de prueba y error. Este enfoque se refleja en el “modelo de desarrollo ágil”. En el modelo de desarrollo ágil, se evita gastar tiempo en preparar planes detallados y documentos de diseño, y se repite la implementación y prueba de programas muy pequeños, transformándolos gradualmente en programas y sistemas más grandes.
El modelo Waterfall facilita el aprendizaje de problemas legales
Antes de comparar ambos modelos de desarrollo, es importante mencionar que cada uno de ellos presenta problemas legales asociados que son más o menos fáciles de investigar y aprender.
La mayoría de los libros de referencia están escritos basándose en el modelo Waterfall
Al estudiar problemas legales relacionados con el desarrollo de sistemas o al buscar adquirir conocimientos legales, el modelo Waterfall es más fácil de investigar. La mayoría de los libros de derecho que discuten el desarrollo de sistemas están escritos con el modelo Waterfall como premisa. Como el desarrollo de sistemas clásico y general se lleva a cabo de acuerdo con el modelo Waterfall, el desarrollo ágil a menudo se presenta como un complemento y se limita a una breve introducción. Por lo tanto, si se intenta obtener información sobre problemas legales relacionados con el desarrollo de sistemas a partir de libros, es más fácil avanzar con el modelo Waterfall.
El modelo Waterfall también tiene una gran acumulación de casos judiciales
Además, dado que el modelo Waterfall es el método clásico y general de desarrollo de sistemas, también se puede decir que hay una gran acumulación de casos de disputas que realmente han ocurrido en el pasado. En las discusiones legales, no solo los artículos de la ley, sino también el conocimiento de los casos judiciales anteriores son importantes. En casos donde es difícil decir si algo es “blanco” o “negro” solo por interpretar el texto del artículo, a veces se puede complementar el contenido del artículo obteniendo conocimientos de casos judiciales anteriores.
Incluso si no es una ley escrita, la acumulación de juicios que los tribunales han demostrado puede establecerse como un criterio de juicio, al igual que los artículos. Estos se llaman “principios legales de los casos judiciales”. Incluso en áreas donde ya se ha acumulado la jurisprudencia, como el desarrollo de sistemas, puede ser relativamente fácil prever el resultado final de una disputa desconocida. En este sentido, el desarrollo de sistemas basado en el modelo Waterfall tiene muchas ventajas.
Ventajas de cada método de desarrollo
Tomando en cuenta lo anterior, a continuación, compararemos y organizaremos las ventajas y desventajas de cada método. La primera parte se centra en las ventajas del modelo Waterfall, y a medida que avanzamos, se hace más fácil entender las ventajas del desarrollo Agile.
Comparación en términos de planificación y previsibilidad
En términos de planificación y previsibilidad, se podría decir que el modelo Waterfall lleva la delantera. No importa cuán grande sea el sistema a desarrollar, siempre se dividirá en etapas que fluyen “de arriba a abajo”. Si se establecen plazos para cada etapa, es más fácil gestionar el progreso de manera planificada.
Por otro lado, el desarrollo Agile es un método que no dedica mucho costo o esfuerzo a la planificación previa o a la concepción general, por lo que puede tender a ser un enfoque improvisado.
Comparación en términos de claridad en los roles y responsabilidades individuales
Además, el modelo Waterfall tiene la ventaja de que cada etapa se divide en detalle, lo que permite aclarar el papel de cada miembro del proyecto.
Por otro lado, en el desarrollo Agile, la división de las etapas tiende a ser vaga, por lo que también puede ser vago quién asume la responsabilidad en caso de problemas imprevistos.
Comparación en términos de facilidad de desarrollo a gran escala
El modelo Waterfall, que es superior en términos de planificación y asignación de roles, tiene mayores ventajas cuanto más grande es el desarrollo. Incluso si se organiza un gran número de personal, si se divide el proceso y se promueve la división del trabajo, se pueden minimizar los costos de ajuste de las relaciones humanas.
Por otro lado, se considera que el modelo de desarrollo Agile no es muy adecuado para el desarrollo a gran escala. Dado que este enfoque valora la velocidad de inicio más que la planificación y la asignación de roles, es difícil de aplicar en situaciones donde se teme un desfase en la fecha de entrega final.
Comparación en términos de velocidad y eficiencia
El desarrollo Agile comienza más rápido
En términos de la velocidad con la que una función solicitada por el usuario se implementa realmente, el modelo de desarrollo Agile lleva la delantera. Esto se debe a que en el modelo Waterfall, es común que los responsables de las etapas superiores e inferiores estén claramente separados, lo que tiende a aumentar el tiempo de comunicación interna del proveedor. Este aumento en el tiempo de comunicación a menudo se relaciona con una mayor vulnerabilidad a las solicitudes de cambio de especificaciones posteriores.
Por otro lado, el modelo de desarrollo Agile permite esperar un inicio y ejecución rápidos sin la necesidad de un intermediario. Esto está estrechamente relacionado con la mayor ventaja del modelo de desarrollo Agile, que es la facilidad para manejar cambios en las especificaciones después del hecho. Sin embargo, incluso en el modelo de desarrollo Agile, si se sigue respondiendo de manera laxa a las solicitudes de cambio de especificaciones y desarrollo adicional, esto puede convertirse en un riesgo de “incendio” en el proyecto. En este sentido, la clave del éxito en el desarrollo de sistemas con el modelo de desarrollo Agile es cómo manejar la “gestión del cambio”. Para una explicación detallada de la gestión del cambio, consulte el siguiente artículo.
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
El modelo Waterfall es menos probable que se detenga a mitad de camino
Por otro lado, en una comparación desde el punto de vista de la velocidad y la eficiencia, es importante considerar un marco de tiempo a largo plazo. Si se considera el riesgo de que un proyecto se incendie a mitad de camino y se detenga el progreso, el modelo Waterfall lleva la delantera. El mayor riesgo de que un proyecto se detenga a mitad de camino es la falta de comunicación entre el usuario y el proveedor. El modelo Waterfall, que facilita la clarificación de las responsabilidades de ambas partes, tiene una ventaja en este aspecto.
El desarrollo Agile facilita el avance en la etapa de aceptación
Sin embargo, desde el punto de vista de la facilidad para avanzar en la etapa de aceptación, el modelo de desarrollo Agile tiene una ligera ventaja. Esto se debe a que se asume que el usuario y el proveedor compartirán información detallada incluso durante el desarrollo del sistema. Esto puede reducir el riesgo de que las discrepancias en la percepción de ambas partes se manifiesten de golpe al ver el producto final. Para una explicación detallada del paso de la aceptación en el desarrollo de sistemas y los problemas legales asociados, consulte el siguiente artículo.
https://monolith.law/corporate/estimated-inspection-of-system-development[ja]
Resumen
Al comparar de esta manera, en general, el modelo de cascada (Waterfall) contribuye a una gestión exhaustiva, mientras que el modelo de desarrollo ágil (Agile) prioriza la sensación de velocidad desde el inicio hasta la ejecución. Además, los problemas legales asociados con el desarrollo de sistemas basados en el modelo de desarrollo ágil se tratan en detalle en el siguiente artículo.
https://monolith.law/corporate/legal-and-contract-issues-of-agile-development[ja]
La elección del modelo de desarrollo adecuado debe ser una decisión integral que tenga en cuenta no solo el aspecto legal, sino también el tamaño del proyecto, el presupuesto, el objetivo, entre otros factores.
Category: IT
Tag: ITSystem Development