NOTICIAS

Lo último en tecnología

Resumen De Metodologías De Desarrollo De Software


Usar metodologías de desarrollo de software es muy similar a usar un libro de recetas de concina. Cualquiera que intente hacer un pastel simplemente adivinando la receta y el método descubrirá muy rápidamente que el resultado puede no ser un buen pastel. La mayoría de nosotros recurriremos a algún tipo de recetario. De la misma manera, al embarcarse en un proyecto de desarrollo de software, usar una metodología para proporcionar un marco y un sentido de dirección asegurará un mejor resultado.

ENFOQUES DE DESARROLLO DE SOFTWARE

En el corazón de un nuevo proyecto de desarrollo de software está la necesidad de resolver un problema identificado. ¿Pero cuál es la mejor manera de abordarlo y comunicar ideas? 

Lamentablemente, no existe un único marco, metodología o técnica «que sirva para todo» que resuelva todos tus problemas — ¡eso sería demasiado fácil! Además, diferentes organizaciones adoptan métodos y tácticas distintas para resolver sus problemas. Sin embargo, hay un punto de partida razonable, y ese es el ciclo de vida del desarrollo de software (SDLC, por sus siglas en inglés).

El ciclo de vida del desarrollo de software

Las metodologías de desarrollo de software en general es seguir un proceso establecido con una serie de pasos definidos (y predecibles). Esto se conoce como el ciclo de vida del desarrollo de software (SDLC, por sus siglas en inglés). Por lo general, comienza con la identificación de un problema interno o una aspiración, a menudo en forma de un breve documento inicial. La revisión del producto al final del ciclo de vida puede desencadenar un nuevo desarrollo. 

El ciclo de vida contiene una serie de fases, cada una de las cuales contribuye con un proceso al desarrollo.

La duración de un SDLC varía enormemente dependiendo de las metodologías de desarrollo de software utilizadas, del tamaño y la complejidad del problema que intenta resolver. A pesar de esto, la duración de cada fase generalmente permanece proporcional: por ejemplo, la fase de codificación es más larga (potencialmente varios meses) en comparación con un período más corto de diseño y arquitectura (quizás varias semanas). 

Los componentes básicos del ciclo de vida (hasta el punto del lanzamiento) son los siguientes.

Documento inicial (Brief) 

Este desencadena el proceso de desarrollo. Puede basarse en un problema con un sistema o proceso existente, algo nuevo que sea necesario para cumplir con un requisito empresarial o simplemente una respuesta a una oportunidad emergente basada en una nueva idea. Puede surgir como resultado de la aspiración de una organización de brindar una mejor experiencia al cliente, mejorar sus procesos o reducir costos (¡o las tres cosas!).

Esta es una investigación de alto nivel sobre el documento inicial (brief), que en esencia considera el problema a resolver e investiga posibles soluciones. Estas soluciones pueden incluir:

  • Una solución lista para usar: un producto o aplicación existente que se puede comprar y utilizar sin necesidad de modificaciones. 
  • Una solución adaptada: se utiliza una aplicación genérica para construir una solución adecuada (como una hoja de cálculo o un paquete de bases de datos), o bien una solución lista para usar se adapta añadiendo funcionalidades adicionales para satisfacer las necesidades de la organización. 
  • Una solución personalizada: una solución que se escribe desde cero, con un proceso completo de investigación, diseño, desarrollo y pruebas antes de su implementación. 
  • Ningún cambio: hay ocasiones en las que los costos de un proyecto de desarrollo superarían ampliamente los beneficios organizacionales que se obtendrían. Esto a menudo se mide financieramente en términos del posible retorno de la inversión (ROI). El ROI se calcula para evaluar qué tan bien rendirá (o ha rendido) una inversión particular. Un ROI bajo sugeriría que el desarrollo de software podría no ser factible.

Análisis

Una vez que se ha establecido que es necesario un desarrollo, se lleva a cabo un análisis completo del problema y del sistema existente (y de cómo este podría contribuir a la solución). Esto se documenta para asegurar que las decisiones posteriores puedan justificarse.

Planificación

Esta es una parte formal y muy necesaria del proceso que a veces puede pasar por alto. Aquí se identifican las actividades y procesos esperados necesarios para lograr la solución, junto con los plazos previstos. Luego, se establecen y asignan los recursos disponibles a las tareas que deberán realizarse.

Diseño 

La finalización del análisis conduce al diseño del nuevo sistema. Esto puede o no estar documentado formalmente (dependiendo de la naturaleza del desarrollo y de la metodología utilizada para enfocar las actividades).

Desarrollo 

Esta fase implica la codificación real de la nueva solución, sistema o servicio.

Pruebas 

En el desarrollo de software pueden aplicarse diversas estrategias de prueba. Algunas se realizan durante el desarrollo, otras cuando el desarrollo se considera relativamente completo, y otras durante un período de pruebas finales antes de que el sistema desarrollado sea entregado al cliente.

Implementación/Puesta en marcha 

Una vez que el código ha pasado las pruebas, funcionará sin problemas en un entorno de prueba (staging) y estará listo para entrar en producción («live»). En este punto, el sistema se implementa (instala y prepara) para ser utilizado por clientes internos y/o externos.

El cliente buscará el consejo de los desarrolladores en cuanto a las metodologías de desarrollo de software sobre la implementación del sistema para que pueda integrarse adecuadamente en el negocio (a menudo llamado «estrategia de cambio»). No hay una única respuesta correcta a la pregunta de cómo debe implementarse la solución, por lo que el equipo de desarrollo debe considerar las necesidades del cliente, los factores de riesgo y la cantidad de trabajo adicional que generará la actividad de implementación al dar sus recomendaciones.

Común a todas las estrategias de cambio es la necesidad de que los datos de la organización se agreguen al nuevo sistema para que, cuando entre en funcionamiento, tenga algo con qué trabajar. Esto puede requerir cambios en los datos para prepararlos para la integración, como convertir formatos de datos o reorganizar los datos para prepararlos para la transferencia. Los datos generalmente se migrarán al nuevo sistema en un momento en que las transacciones comerciales normales están suspendidas porque la organización está cerrada. Esto puede ser más desafiante si el negocio opera en línea.