No hace mucho tiempo, diecisiete ingenieros de software y desarrolladores expertos se sentaron y decidieron cambiar la forma en que las personas solían desarrollar soluciones de software para siempre, creando lo que hoy conocemos como desarrollo de software Agile.
Esto se hizo en 2001, cuando había demasiadas metodologías diferentes, formas y recursos disponibles para llevar a cabo un proceso de desarrollo de software, pero poco o ningún control en absoluto, lo que resultó en que los programadores e ingenieros de software implementaran procesos que eran difíciles de terminar. y no ayuda en absoluto.
Estos diecisiete ingenieros de software vieron el problema por el que pasaba la comunidad de TI y decidieron curar estos procesos obsoletos y molestos, y desde ese momento en adelante, el desarrollo de software Agile es, con mucho, la mejor metodología jamás implementada.
En pocas palabras, cuando hablamos de Agile, hablamos del enfoque más popular para el desarrollo de software, uno que se centra directamente en trabajar en requisitos específicos a través del esfuerzo colaborativo del equipo, la organización y los equipos multifuncionales entre la empresa y los clientes o usuarios.
Tenga en cuenta que Agile no es necesaria una metodología en sí misma, sino un término general que contiene otros métodos, prácticas y enfoques diferentes para el desarrollo de software, a través de los cuales los desarrolladores de software pueden crear y finalizar cualquier proyecto.
Piénselo de esta manera: Agile es solo la punta del iceberg, es lo que contiene las otras metodologías de desarrollo de software que los ingenieros de software están utilizando en estos momentos.
Básicamente, Agile Software Development tiene las mejores metodologías de desarrollo de software en el mismo lugar, lo que permite a los ingenieros de software decidir cuál implementar de acuerdo con el proyecto al que deben enfrentarse.
Como hemos mencionado en este blog, Agile en sí no es una metodología, sino un término general que contiene muchos tipos diferentes de metodologías de desarrollo de software.
Ahora, estas metodologías están ahí porque son consideradas como las más eficientes, y todas giran en torno a la idea de trabajar junto con los requisitos de las partes interesadas, abogando por un proceso de desarrollo rápido y evolutivo que permita una planificación adaptativa y una mejora constante en todo el proceso. todo el proyecto.
Las metodologías de desarrollo de software que componen el término general de desarrollo de software ágil son:
1. Metodología SCRUM
2. Desarrollo de software Kanban
3. Desarrollo de software Lean
4. Programación extrema
5. Cristal
6. Método de desarrollo de sistemas dinámicos (DSDM)
7. Desarrollo basado en funciones (FDD)
Estos son los siete enfoques diferentes para el desarrollo de software que actualmente utilizan los ingenieros de software de todo el mundo. Tenga en cuenta que todos ellos comparten una filosofía de trabajo muy similar que está orientada a lograr los objetivos de la manera más rápida posible, sin comprometer ningún paso del proceso, ni incurrir en pasos innecesarios.
Sin embargo, hoy no vamos a hablar sobre todas las diferentes metodologías y qué las diferencia, pero en cambio, vamos a hablar sobre la metodología SCRUM, que debemos decir, es la que implementamos aquí en Roostack.
Entre los siete tipos diferentes de desarrollo de software, la metodología Scrum es, con mucho, uno de los más populares (si no el más popular), debido a lo simple y sencillo que es implementarlo.
Tenga en cuenta que esta metodología no es exclusiva del desarrollo de software, y podría implementarse también en otros procesos; sin embargo, tiene sus orígenes en el desarrollo de software y fue una de las principales metodologías que realmente influyeron en el Manifiesto Ágil.
Los ingenieros definen SCRUM como un marco que se utiliza en proyectos de desarrollo de software con el único objetivo de ofrecer una nueva solución de software en un corto período de tiempo.
Vamos a elaborar un poco más sobre eso, ¿de acuerdo? Verá, SCRUM se basa en el manifiesto Agile, lo que significa que está dirigido a administrar y controlar proyectos de desarrollo de software incrementales.
Esta metodología particular se basa en tres características principales:
1. Adoptar una estrategia de desarrollo incremental.
2. Crear equipos autosuficientes basados en el sólido conocimiento de cada desarrollador, con el objetivo de obtener un mejor resultado general.
3. Trabajar en diferentes fases del proyecto al mismo tiempo en lugar de seguir un círculo consecuente.
En resumen, la metodología SCRUM proporciona a los ingenieros de software un marco de trabajo adaptable y creciente que involucra diferentes figuras y métodos para terminar una solución de software en un período de tiempo establecido (generalmente, desde 2 semanas hasta un mes).
Como dijimos anteriormente, SCRUM se basa en las premisas de equipos multifuncionales que trabajan juntos de manera organizada para alcanzar una meta. Lo que significa que muchas figuras diferentes están involucradas en el proceso de desarrollo de software.
En total, hay tres roles diferentes dentro de esta metodología, que son:
1. El propietario del producto: también conocido como cliente, el propietario del producto suele ser la persona que necesita la solución de software y, por lo tanto, debe participar durante el proceso de desarrollo.
En la metodología SCRUM, el Propietario del producto no interfiere con el proceso en sí (ya que la autoorganización entre equipos nunca debe ser perturbada), sino que siempre debe estar presente y abierto para comunicarse con el equipo durante todo el proceso.
2. El Scrum master: piense en ellos como una facilitación entre las otras dos partes involucradas (es decir, el propietario del producto y el equipo de desarrollo), cuyo trabajo no es administrar directamente el equipo, sino estar al tanto de cualquier problema o impedimento que Están obstruyendo el proceso.
Generalmente, el scrum master tiende a ser el Project Manager, y tiene que actuar como una brecha entre su equipo y el cliente.
3. El equipo: Por último, pero no menos importante, el equipo de desarrollo de software, también conocido como responsable de hacer que todo funcione. Tenga en cuenta que el tam debe ser completamente auto organizado y autogestionado, y debe estar 100% enfocado para finalizar el proceso dentro del período de tiempo establecido.
En cuanto a cómo funciona SCRUM, podemos resumirlo en una sola palabra: Sprints. Usted ve, los sprints son el corazón y el alma de la metodología scrum, es la forma en que el equipo logra ser lo más eficiente posible.
Como empresa de desarrollo de software, ya estamos acostumbrados a la idea de trabajar con sprints, ya que son una excelente manera de hacer las cosas de la manera más efectiva posible.
Como se ve, en el desarrollo de software, un resorte es simplemente un período específico de tiempo a través del cual se debe completar el trabajo. En un sprint, generalmente habrá una meta (que es el trabajo a completar) y las diferentes tareas que deben realizarse para alcanzar dicha meta.
Básicamente, cada equipo es 100% responsable de determinar cómo alcanzarán la meta del sprint, qué harán y cómo se organizarán para completar con éxito el trabajo requerido.
Como puede ver, la metodología scrum es simple, pero efectiva, y se puede aplicar a casi cualquier proyecto que tenga, siempre y cuando se adhiera a los principios del desarrollo Agile.