La ingeniería del software es una disciplina que implica el uso de estructuras, herramientas y técnicas para construir programas informáticos. El enfoque de ingeniería del software cuenta con un compromiso organizacional con la calidad porque no es posible incorporarlo en una organización que no está centrada en conseguir calidad. El objetivo primario de la ingeniería del software es construir un producto de alta calidad de una manera oportuna. Esta disciplina tiene tres componentes que son procesos, métodos y herramientas. 

La primera capa define el proceso que se usará para construir el software y las actividades y tareas que un jefe de proyecto tiene que gestionar. Por lo tanto, las áreas claves del proceso forman la base del control de gestión de proyectos del software y establecen el contexto en el que se aplican los métodos técnicos. La siguiente capa, la capa de métodos se centra en las actividades técnicas que se deben realizar para conseguir las tareas de ingeniería. Proporciona el “cómo” y cubre las actividades de ingeniería fundamentales. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. La capa de métodos contiene los métodos definidos para realizar esas actividades de forma eficiente. Se centra en cómo se han de realizar las actividades técnicas.

Es adecuada diferenciación lo que es método de metodología. Los métodos son herramientas relacionadas con la práctica. Mientras que la metodología estudio los métodos. Una definición estándar de metodología puede ser el conjunto de métodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla. Determina los pasos a seguir y cómo realizarlos para finalizar una tarea.

Ciclo de vida del software

Los modelos de ciclo de vida del software describen las fases del ciclo de software y el orden en que se ejecutan las fases. Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociados entre estas etapas.

¿Cuál consideras que es el principal motivo por el que fracasan los proyectos software?

Para mi la mala planificación es el principal motivo por el que fracasan los proyectos. Las etapas iniciales de un proyecto, iniciación y planificación marcan el curso de este hacia el éxito o lo abocan directamente al fracaso. Uno de los aspectos más delicados es la tarea de planificación de recursos, para la que es necesario contar con datos suficientes, objetivos y contrastados; además de conocer las limitaciones y supuestos del proyecto. La experiencia y la formación contribuyen a minimizar el margen de error en esta labor. Planificar un proyecto con antelación detallando los objetivos del plan es una tarea necesaria para el éxito empresarial y la lógica consecución de las metas propuestas. Lo contrario aumenta la posibilidad de cometer fallos y eleva el nivel de fracaso y conflicto.

¿Qué es Scrum?

Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos.

Este modelo fue identificado y definido por Ikujiro Nonaka y Takeuchi a principios de los 80, al analizar cómo desarrollaban los nuevos productos las principales empresas de manufactura tecnológica: Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M y Hewlett-Packard (Nonaka & Takeuchi, The New New Product Development Game, 1986). En su estudio, Nonaka y Takeuchi compararon la nueva forma de trabajo en equipo, con el avance en formación de melé (scrum en inglés) de los jugadores de Rugby, a raíz de lo cual quedó acuñado el término “scrum” para referirse a ella. Los roles principales en Scrum son el Scrum Master, que procura facilitar la aplicación de Scrum y gestionar cambios, el Product Owner, que representa a los stakeholders (interesados externos o internos), y el Team (equipo) que ejecuta el desarrollo y demás elementos relacionados con él. Durante cada sprint, un periodo entre una y cuatro semanas (la magnitud es definida por el equipo y debe ser lo más corta posible), el equipo crea un incremento de software potencialmente entregable (utilizable).

La metodología se basa en:

  • El desarrollo incremental de los requisitos del proyecto en bloques temporales cortos y fijos.
  • Se da prioridad a lo que tiene más valor para el cliente.
  • El equipo se sincroniza diariamente y se realizan las adaptaciones necesarias.
  • Tras cada iteración (un mes o menos entre cada una) se muestra al cliente el resultado real obtenido, para que este tome las decisiones necesarias en relación a lo observado.
  • Se le da la autoridad necesaria al equipo para poder cumplir los requisitos.
  • Fijar tiempos máximos para lograr objetivos.
  • Equipos pequeños (de 3 a 9 personas cada uno).

Principales características de Scrum

·   Gestión regular de las expectativas del cliente, resultados anticipados, flexibilidad y adaptación, retorno de inversión, mitigación de riesgos, productividad y calidad, o, equipo motivado.

·        Se hace uso de equipos auto-dirigidos y auto-organizados.

·      Se realiza a diario una reunión de Scrum, que es una reunión de avance diaria que no dura más de 15 minutos con el objetivo de obtener realimentación sobre las tareas del equipo y los obstáculos que se presentan.

Bibliografía

¿Qué son las metodologías de desarrollo de software? (16 de junio de 2016). Obtenido de OBS business school: https://www.obsbusiness.school/blog/que-son-las-metodologias-de-desarrollo-de-software

Maida, E. P. (2015). Metodologias de desarrollo de software. Obtenido de Tesis de licenciatura en sistema y computacion: https://repositorio.uca.edu.ar/bitstream/123456789/522/1/metodologias-desarrollo-software.pdf

Metodologias del desarrollo de software. (s.f.). Obtenido de okhosting.com: https://okhosting.com/blog/metodologias-del-desarrollo-de-software/

Universitat carlemany. (s.f.). Metodologías de desarrollo de software. Obtenido de universitatcarlemany.com: https://www.universitatcarlemany.com/actualidad/metodologias-de-desarrollo-de-software