JavaRush /Blog Java /Random-ES /Todo lo que necesitas saber sobre metodologías de desarro...

Todo lo que necesitas saber sobre metodologías de desarrollo de software: tendencias, principios y dificultades para principiantes

Publicado en el grupo Random-ES
El desarrollo de software es un proceso empresarial complejo. Esto significa que TI necesita hablar el lenguaje de la optimización, la planificación y el cálculo. Todo lo que necesitas saber sobre metodologías de desarrollo de software: tendencias, principios y dificultades para principiantes - 1Comprender los conceptos de gestión proporciona una gran ventaja tanto para los empleadores como para los desarrolladores y ayuda a llevar la colaboración al siguiente nivel.

Nota para principiantes: modelos, metodologías y confusión general.

Para empezar, una aclaración importante: existen modelos separados para el desarrollo de software y una metodología separada para este mismo desarrollo. Los modelos predicen el comportamiento futuro de un sistema. Se necesitan metodologías para que el sistema funcione como necesita. Confundir modelos y metodologías de desarrollo de software es la tarea sagrada de todo principiante en TI, por lo que esto no se considera un error grave. Y, sin embargo, los modelos son la clásica cascada , con su linealidad, establecimiento claro de objetivos para cada etapa y control estricto de los plazos. Los modelos son Espiral , con su enfoque en la identificación temprana y mitigación de los riesgos del proyecto. El desarrollo en espiral comienza a pequeña escala, resolviendo primero problemas locales y luego otros más complejos. El modelo final es IID , que divide el ciclo de vida del proyecto en una secuencia de iteraciones, cada una de las cuales se asemeja a un "miniproyecto". En general, un modelo es algo que describe el proceso de desarrollo de software . Pero las metodologías son sistemas de control, evaluación y seguimiento del trabajo en las tareas asignadas. Las metodologías son el palo y la zanahoria del desarrollo moderno, que son necesarias para controlar cada eslabón del proceso de desarrollo. Se eligen en función de la dirección del proyecto, su presupuesto y el calendario del producto final. Además, las metodologías se pueden seleccionar en función del temperamento del director del proyecto y su equipo. Incluso basándose en la filosofía de la empresa o del cliente. Veamos las metodologías más populares.

1. Metodología scrum

Scrum es un método ágil de gestión de proyectos . Se basa en "sprints": iteraciones cortas, estrictamente limitadas en el tiempo (generalmente de 2 a 4 semanas). La duración de las reuniones se reduce al mínimo, pero aumenta su frecuencia. Cada sprint consta de una lista de tareas hasta el final de la iteración, y cada una de ellas tiene su propio "peso". Durante las reuniones, el equipo discute quién ha hecho qué, qué van a hacer y qué problemas hay. Scrum utiliza un diario de sprint para la planificación. En este enfoque, a menudo aparece en el equipo un Scrum Master, que establece el trabajo continuo de todo el equipo, creando condiciones cómodas para ello. También en el proyecto aparece el rol de Product Owner: el gerente de desarrollo, la persona que monitorea el producto y actúa como vínculo principal entre la solicitud del cliente y el resultado del equipo.

Ventajas:

  • lanzamiento rápido del proyecto con el menor presupuesto posible;
  • seguimiento diario del avance del trabajo, demostraciones frecuentes del proyecto;
  • la capacidad de realizar cambios a medida que avanza el proyecto.

Desventajas:

  • dificultades para celebrar contratos debido a la falta de un presupuesto fijo;
  • no trabaja con bajas calificaciones del equipo, plazos de trabajo o presupuesto subestimados;
  • la capacidad de realizar cambios continuamente entre sprints puede crear confusión.

¿Para quién es adecuado?

Este sistema es adecuado para proyectos de hasta diez personas, independientes o dentro de grandes empresas. Esto es conveniente si el equipo tiene una gran cantidad de trabajo y un ciclo de vida largo, lo que los obliga a cambiar y adaptarse a las nuevas condiciones del mercado.

2. Metodología Kanban

La característica más importante de Kanban es la visualización del ciclo de vida del proyecto . Las columnas se crean para completar tareas que se envían individualmente. Las columnas están marcadas con marcadores como: Por hacer, En progreso, Revisión de código, En prueba, Listo (los nombres de las columnas, por supuesto, pueden cambiar). El objetivo de cada miembro del equipo es reducir la cantidad de tareas en la primera columna. El enfoque Kanban es visual y ayuda a comprender dónde está el problema. La estructura Kanban no está determinada de forma definitiva e irrevocable: dependiendo de las particularidades del proyecto, se pueden añadir columnas improvisadas. Por ejemplo, algunos equipos utilizan un sistema en el que necesitan definir criterios para la preparación de una tarea antes de ejecutarla. Luego se agregan dos columnas: especificar (especificar los parámetros) y ejecutar (ponerse manos a la obra).

Ventajas:

  • flexibilidad de planificación. El equipo se concentra únicamente en el trabajo actual, también se determina la prioridad de la tarea;
  • visibilidad. Cuando todos los actores tienen acceso a los datos, los problemas globales son más fáciles de detectar;
  • Alta implicación en el proceso de desarrollo. La visualización de procesos aumenta la autoorganización y el autocontrol.

Desventajas:

  • no trabaja con equipos de más de cinco personas;
  • no está destinado a la planificación a largo plazo;
  • No apto para trabajar en equipo sin motivación. En Kanban, no hay plazos establecidos para cada tarea y la metodología no prevé sanciones por retraso.

¿Para quién es adecuado?

Kanban funciona muy bien en empresas donde el equipo está motivado para desarrollarse y lograr resultados. Como ya es obvio, un equipo pequeño. Quizás incluso una división o parte de un equipo.

3. Metodología RUP

La metodología RUP utiliza un modelo de desarrollo iterativo. Al final de cada iteración (que lleva de 2 a 6 semanas), el equipo debe lograr los objetivos planificados y tener una versión temporal pero funcional del proyecto. RUP implica dividir el proyecto en cuatro fases , en cada una de las cuales se trabaja en una nueva generación del producto: fase de inicio del proyecto, refinamiento, construcción e implementación. Al final de la fase, se ingresa un marcador de finalización de etapa (Hito del Proyecto). Project Milestone puede considerarse el momento en el que el equipo evalúa los resultados obtenidos. Como resultado, la metodología implica que las características principales se publican en la primera fase y se agregan adiciones en las fases posteriores.

Ventajas:

  • le permite hacer frente a las tareas cambiantes tanto del cliente como de las que surgen durante el trabajo;
  • garantiza la mejora continua del producto. Durante las iteraciones, se puede examinar el diseño;
  • le permite identificar y eliminar riesgos en las primeras etapas de trabajo, así como controlar efectivamente la calidad del desarrollo.

Desventajas:

  • un método bastante complejo que es difícil de implementar con un equipo o empresa pequeña;
  • dependencia de la capacidad de los expertos para establecer tareas;
  • Necesita documentación excesiva de los requisitos.

¿Para quién es adecuado?

Grandes proyectos con requisitos claramente definidos y riesgos definidos, cuando el producto debe lanzarse lo más rápido posible. Incluso a expensas de la funcionalidad, para ocupar rápidamente su nicho y solo entonces perfeccionar los matices.

Muchas metodologías, una tendencia

Además de los innegablemente populares Scrum y Kanban, que se basan en los principios de flexibilidad bajo el nombre general de "Agile" , así como el tenaz iterativo RUP, las empresas trabajan con muchas variaciones de metodologías. Algunas personas prefieren la programación extrema y tomar las decisiones más rápidas y simples, algunas prefieren el desarrollo basado en pruebas y otras prefieren el desarrollo rápido de aplicaciones (RAD). Al mismo tiempo, la tendencia principal e incondicional es el uso de varias metodologías simultáneamente . O incluso combinar modelos y metodologías en un sistema de control único. Todo lo que necesitas saber sobre metodologías de desarrollo de software: tendencias, principios y trampas para principiantes - 2Las empresas modernas se esfuerzan por eliminar las barreras burocráticas y crear una atmósfera de trabajo en equipo general dentro de la organización, sin transferir responsabilidades entre departamentos y bloques. Según el informe Scrumalliance , el 70% de las empresas de TI utilizan Scrum. Entre ellos se encuentran gigantes como Google, Amazon, Salesforce, Microsoft, Adobe. Las empresas emergentes y los proyectos jóvenes se inclinan más por Kanban, pero también lo utilizan Toyota y, por ejemplo, los jugadores de Wargaming. Las empresas más modestas de la CEI, Prom.ua, Bigl.ua, Kabanchik.ua, utilizan las metodologías Scrum y Kanban simultáneamente, pero para diferentes tareas. Scrum, como herramienta de planificación, Kanban, para controlar el progreso del trabajo. En cuanto al RUP, lo practican con mayor frecuencia empresas occidentales con entre 50 y 200 empleados y unos ingresos de entre 1 y 10 millones de dólares. Pero al mismo tiempo, IBM cambió RUP para acercarse a los principios ágiles al lanzar la metodología OpenUP: "RUP, solo ágil". Esa misma agilidad ágil ahora gobierna el panorama de TI . Hoy en día no es sólo una moda pasajera: sigue siendo innovador y, de hecho, funciona en muchas grandes empresas. Agile se utiliza en Silicon Valley y lo utilizan Facebook y Uber.

Línea de fondo

Cada proyecto tiene su propia metodología de desarrollo de software, dependiendo del equipo, la financiación, el calendario y los requisitos del cliente. No existe una tecnología de gestión universal: ni siquiera la muy popular Agile puede proporcionar el mejor enfoque para el proceso de desarrollo. Por lo tanto, la metodología se elige con cuidado y, a veces, incluso de manera fundamental. Tanto es así que puedes utilizarlo para sacar conclusiones sobre la propia empresa o sus clientes. Las metodologías se mezclan, se complementan con modelos y se adaptan a su medida. Tanto es así que dan lugar a nuevos enfoques. Aunque al final el ámbito de la gestión queda en manos de Scrum y Kanban, con inesperadas inclusiones del modelo Waterfall o RUP iterativo.
Que mas leer
Sitios web: Libros:
  • Andrew Stelman, Jennifer Greene: “Aprendizaje ágil”;
  • Per Kroll, Bruce MacIsaac: “Agilidad y disciplina simplificadas: prácticas de OpenUP y RUP”;
  • Mike Cohn: Scrum. Desarrollo ágil";
  • Robert K. Martin: “Desarrollo rápido de software. Principios, ejemplos, práctica";
  • Markus Hammarberg, Joakim Sundén: “Kanban en acción”;
  • A Jacobson, G. Booch, J. Rumbaugh: "Un proceso de desarrollo de software unificado".
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION