PA4. REPORTE METODOLOGÍAS DE EMPRESAS

 


Descargar pdf

Introducción.

Como todos sabemos hoy en día existen muchas metodologías que distintas empresas dedicadas al desarrollo de software utilizan, dichas metodologías se aplican para diseñar soluciones informáticas entre sus principales objetivos es el de intentar organizar los equipos de trabajo para que estos desarrollen las funciones de un programa de la mejor manera posible.

          El trabajo con una metodología de desarrollo de software permite reducir el nivel de dificultad, organizar las tareas, agilizar el proceso y mejorar el resultado final de las aplicaciones a desarrollar.

Existen metodologías tradicionales como son:

          Waterfall (cascada): es una metodología en la que las etapas se organizan de arriba a abajo, de ahí el nombre. Se desarrollan las diferentes funciones en etapas diferenciadas y obedeciendo un riguroso orden. Antes de cada etapa se debe revisar el producto para ver si está listo para pasar a la siguiente fase. Los requisitos y especificaciones iniciales no están predispuestos para cambiarse, por lo que no se pueden ver los resultados hasta que el proyecto ya esté bastante avanzado.

          Prototipado: se basa en la construcción de un prototipo de software que se construye rápidamente para que los usuarios puedan probarlo y aportar feedback. Así, se puede arreglar lo que está mal e incluir otros requerimientos que puedan surgir. Es un modelo iterativo que se basa en el método de prueba y error para comprender las especificidades del producto.

          Espiral: es una combinación de los dos modelos anteriores, que añade el concepto de análisis de riesgo. Se divide en cuatro etapas: planificación, análisis de riesgo, desarrollo de prototipo y evaluación del cliente. El nombre de esta metodología da nombre a su funcionamiento, ya que se van procesando las etapas en forma de espiral. Cuanto más cerca del centro se está, más avanzado está el proyecto.

 

          Incremental: en esta metodología de desarrollo de software se va construyendo el producto final de manera progresiva. En cada etapa incremental se agrega una nueva funcionalidad, lo que permite ver resultados de una forma más rápida en comparación con el modelo en cascada. El software se puede empezar a utilizar incluso antes de que se complete totalmente y, en general, es mucho más flexible que las demás metodologías.

          Diseño rápido de aplicaciones (RAD): esta metodología permite desarrollar software de alta calidad en un corto periodo de tiempo. Los costes son mucho más altos y el desarrollo más flexible, aunque requiere una mayor intervención de los usuarios. Por otro lado, el código puede contener más errores, y sus funciones son limitadas debido al poco tiempo del que se dispone para desarrollarlas. El objetivo es iterar el menor número posible de veces para conseguir una aplicación completa de forma rápida.

Metodologías de desarrollo de software ágiles

          Las metodologías ágiles se basan en la metodología incremental, en la que en cada ciclo de desarrollo se van agregando nuevas funcionalidades a la aplicación final. Sin embargo, los ciclos son mucho más cortos y rápidos, por lo que se van agregando pequeñas funcionalidades en lugar de grandes cambios.

          Kanban: metodología de trabajo inventada por la empresa de automóviles Toyota. Consiste en dividir las tareas en porciones mínimas y organizarlas en un tablero de trabajo dividido en tareas pendientes, en curso y finalizadas. De esta forma, se crea un flujo de trabajo muy visual basado en tareas prioritarias e incrementando el valor del producto.

          Scrum: es también una metodología incremental que divide los requisitos y tareas de forma similar a Kanban. Se itera sobre bloques de tiempos cortos y fijos (entre dos y cuatro semanas) para conseguir un resultado completo en cada iteración. Las etapas son: planificación de la iteración (planning sprint), ejecución (sprint), reunión diaria (daily meeting) y demostración de resultados (sprint review). Cada iteración por estas etapas se denomina también sprint.

 

          Lean: está configurado para que pequeños equipos de desarrollo muy capacitados elaboren cualquier tarea en poco tiempo. Los activos más importantes son las personas y su compromiso, relegando así a un segundo plano el tiempo y los costes. El aprendizaje, las reacciones rápidas y potenciar el equipo son fundamentales.

          Programación extrema (XP): es una metodología de desarrollo de software basada en las relaciones interpersonales, que se consideran la clave del éxito. Su principal objetivo es crear un buen ambiente de trabajo en equipo y que haya un feedback constante del cliente. El trabajo se basa en 12 conceptos: diseño sencillo, testing, refactorización y codificación con estándares, propiedad colectiva del código, programación en parejas, integración continua, entregas semanales e integridad con el cliente, cliente in situ, entregas frecuentes y planificación (Santander Universidades, 2021).


 

Empresa Troop Software Factory

Maneja la metodología SCRUM.

Con la metodología Scrum el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo, le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración sin ningún problema.

Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades.


Beneficios

1.  Cumplimento de expectativas: El cliente establece sus expectativas indicando el valor que le aporta cada requisito / historia del proyecto, el equipo los estima y con esta información el Product Ownerestablece su prioridad. De manera regular, en las demos de Sprint el Product Owner comprueba que efectivamente los requisitos se han cumplido y transmite se feedback al equipo.

2.  Flexibilidad a cambios: Alta capacidad de reacción ante los cambios de requerimientos generados por necesidades del cliente o evoluciones del mercado. La metodología está diseñada para adaptarse a los cambios de requerimientos que conllevan los proyectos complejos.

3.  Reducción del Time to Market: El cliente puede empezar a utilizar las funcionalidades más importantes del proyecto antes de que esté finalizado por completo.

4.  Mayor calidad del software: La metódica de trabajo y la necesidad de obtener una versión funcional después de cada iteración, ayuda a la obtención de un software de calidad superior.

5.  Mayor productividad: Se consigue entre otras razones, gracias a la eliminación de la burocracia y a la motivación del equipo que proporciona el hecho de que sean autónomos para organizarse.

6.  Maximiza el retorno de la inversión (ROI): Producción de software únicamente con las prestaciones que aportan mayor valor de negocio gracias a la priorización por retorno de inversión.

7.  Predicciones de tiempos: Mediante esta metodología se conoce la velocidad media del equipo por sprint (los llamados puntos historia), con lo que consecuentemente, es posible estimar fácilmente para cuando se dispondrá de una determinada funcionalidad que todavía está en el Backlog.

8.  Reducción de riesgos: El hecho de llevar a cabo las funcionalidades de más valor en primer lugar y de conocer la velocidad con que el equipo avanza en el proyecto, permite despejar riesgos eficazmente de manera anticipada.

 

 

El proceso

El desarrollo se realiza de forma iterativa e incremental. Cada iteración, denominada Sprint, tiene una duración preestablecida de entre 2 y 4 semanas, obteniendo como resultado una versión del software con nuevas prestaciones listas para ser usadas. En cada nuevo Sprint, se va ajustando la funcionalidad ya construida y se añaden nuevas prestaciones priorizándose siempre aquellas que aporten mayor valor de negocio. 

1.  Product Backlog: Conjunto de requisitos demoninados historias descritos en un lenguaje no técnico y priorizados por valor de negocio, o lo que es lo mismo, por retorno de inversión considerando su beneficio y coste. Los requisitos y prioridades se revisan y ajustan durante el curso del proyecto a intervalos regulares.

2.  Sprint Planning: Reunión durante la cual  el Product Owner presenta las historias del backlog por orden de prioridad. El equipo determina la cantidad de historias que puede comprometerse a completar en ese sprint, para en una segunda parte de la reunión, decidir y organizar cómo lo va a conseguir.

3.  Sprint: Iteración de duración prefijada durante la cual el equipo trabaja para convertir las historias del Product Backlog a las que se ha comprometido, en una nueva versión del software totalmente operativo.

4.  Sprint Backlog: Lista de las tareas necesarias para llevar a cabo las historias del sprint.

5.  Daily sprint meeting: Reunión diaria de cómo máximo 15 min. en la que el equipo se sincroniza para trabajar de forma coordinada. Cada miembro comenta que hizo el día anterior, que hará hoy y si hay impedimentos.

6.  Demo y retrospectiva: Reunión que se celebra al final del sprint y en la que el equipo presenta las historias conseguidas mediante una demonstración del producto. Posteriormente, en la retrospectiva, el equipo analiza qué se hizo bien, qué procesos serían mejorables y discute acerca de cómo perfeccionarlos.

Roles


En Scrum, el equipo se focaliza en construir software de calidad. La gestión de un proyecto Scrum se centra en definir cuáles son las características que debe tener el producto a construir (qué construir, qué no y en qué orden) y en vencer cualquier obstáculo que pudiera entorpecer la tarea del equipo de desarrollo.

El equipo Scrum está formado por los siguientes roles:

1.  Scrum master: Persona que lidera al equipo guiándolo para que cumpla las reglas y procesos de la metodología. Gestiona la reducción de impedimentos del proyecto y trabaja con el Product Owner para maximizar el ROI. 

2.  Product owner (PO): Representante de los accionistas y clientes que usan el software. Se focaliza en la parte de negocio y el es responsable del ROI del proyecto (entregar un valor superior al dinero invertido). Traslada la visión del proyecto al equipo, formaliza las prestaciones en historias a incorporar en el Product Backlog y las reprioriza de forma regular. 

3.  Team: Grupo de profesionales con los conocimientos técnicos necesarios y que desarrollan el proyecto de manera conjunta llevando a cabo las historias a las que se comprometen al inicio de cada sprint (Metodología Scrum - Troop Software Factory, 2015).

Empresa Softdem. Desarrollo Bajo Demanda.

METODOLOGÍA ICONIX


Análisis de Requisitos

·     Identificar objetos del dominio y relaciones de agregación y generalización

·     Identificar casos de uso

·     Organizar casos de uso en grupos (paquetes)

·     Asignar requerimientos no funcionales a casos de uso y objetos del dominio

·     Revisión de requerimientos

Diseño

·     Diseño de usuarios y datos hacia sistema.

·     Detalle a partir de modelos de alto nivel.

·     Para cada caso de uso.

·     Identifica mensajes y métodos.

·     Dibujar diagramas de secuencia.

·     Actualizar clases.

·     Terminar modelo estático

·     Verificar cumplimiento de requerimientos

Análisis y diseño preliminar

·     Descripción de Casos de uso

·     Análisis de robustez

·     Identificar grupos de objetos que realizan escenario

·     Actualizar diagramas de clases del dominio

·     Diagramas de clases

Implementación y pruebas

·     Producir diagramas necesarios:

·     Despliegue

·     Componentes

·     Escritura de código

·     Pruebas de sistema y aceptación basadas en casos de uso

Beneficios que Ud. obtiene

Financieros

Te ayudamos a reducir costos a través del control del gasto operativo al contar con proyectos medibles y con alcances bien establecidos. Disminuye los gastos fijos de proyecto, para redireccionar inversiones y focalizar esfuerzos en la esencia de su negocio.

Operativos

Te hacemos un “traje a la medida” Evita la dependencia y el ajustar procesos a cómo opera un sistema “de caja”. Disminución del tiempo destinado al desarrollo y mantenimiento de sistemas.

Técnicos

Te ofrecemos un desarrollo de calidad bajo estándares de clase mundial. Con metodología ICONIX mediante la cual se logran resultados de alta calidad y cumplimiento puntual de requerimientos. Disponibilidad de equipos de trabajo altamente calificados en diversas plataformas y especialidades de software.

Ø El desarrollo se organiza en series de mini-proyectos cortos, llamados iteraciones, cuyo resultado es en sí un sistema que puede ser probado, integrado y ejecutado.

Ø El ciclo de vida iterativo se basa en la ampliación y refinamiento sucesivos del sistema, mediante múltiples iteraciones con retroalimentación cíclica y adaptación.

Ø El sistema crece incrementalmente a lo largo del tiempo, iteración tras iteración.

Ø Cada iteración es desarrollada como un proyecto con etapa de análisis, diseño, implementación y pruebas e integración.

Ø Cada iteración termina con la entrega de una parte del producto completamente funcional.

Ø La cantidad de iteraciones dependerá de la complejidad y duración del desarrollo.

Características significativas

Ø Desarrollo iterativo y adaptable para un proceso ágil y eficiente.

Ø Uso de tecnologías de objetos y casos de uso para un adecuado análisis y diseño de las soluciones.

Ø Involucramiento continuo de los usuarios para la evaluación, retroalimentación y requisitos del proyecto.

Ø Verificación sistemática de la calidad para asegurar el correcto seguimiento del proyecto.

Ø Manejo de peticiones de cambio y gestión de configuración (Softdem - Desarrollo Bajo Demanda, 2013)

Empresa Grupo Perti

METODOLOGÍA.

  • ·     PMI 2004
  • ·     PMP 2005
  • ·     BTS 2009
  • ·     AGILES 2010
  • ·     SCRUM 2011

1. Propuesta de solución

El primer paso es analizar juntos lo que tu empresa necesita. Con esta información realizaremos una propuesta (RFP) que contemple la descripción del proyecto y sus objetivos.

2. Análisis, diseño y especificaciones

Analizaremos tus necesidades funcionales y técnicas a detalle para establecer el alcance del Software, diseñaremos el proceso y lo plasmaremos en un RFP, documento que podamos revisar juntos.

3. SOW, acuerdo y aceptación.

Desarrollaremos un Statemnet of Work, en el que definiremos los entregables, plazos establecidos y el presupuesto para el proyecto a que se compromete Grupo PERTI. Este deberá ser aceptado por ambas partes.

4. Pruebas de funcionalidad

Para asegurar la calidad del proyecto, correremos pruebas a todas las funcionalidades y comprobaremos que cumplan con los requisitos especificados de acuerdo con las tecnologías aplicadas.

5. Construcción

¡Ahora si! Nuestro equipo de desarrolladores pondrá manos a la obra en la construcción del proyecto y generará la codificación que hará funcionar la plataforma.

6. Diseño UI /UX

En esta etapa estableceremos los parámetros y diseñaremos la interfaz gráfica con la que interactuará el usuario para lograr que la experiencia que buscas sea la adecuada.

7. Pruebas de integración

Para corroborar que todo funcione como debe ser, ensamblaremos un prototipo con todas las partes del proyecto para que funcionen en conjunto y podamos someterlas a revisión contigo.

8. Implementación

Una vez ensamblado el prototipo lo adaptaremos a tu entorno.

9. Entrega y liberación

Haremos una entrega formal del proyecto ¡Tu nuevo Software está lista para usarse!

(Empresa de desarrollo de software en Mexico., 2021)

Conclusión.

En conclusión, el desarrollo de software y la programación hoy en día son de gran ayuda, ya que automatizan diversos procesos o nos hacen más fácil nuestro día a día, al hablar de la importancia también debemos tener en cuenta las metodologías que debemos emplear al crear o desarrollar un software, para eso es necesario de identificar las necesidades del cliente, como por ejemplo la metodología XP es muy usado cuando el cliente necesita determinado software en menos tiempo, cabe mencionar que esto sucede regularmente, pero no se debe olvidar las desventajas de este, es que al ser de manera rápida a veces puede contener muchos errores o bugs.

Por eso es necesario saber que metodología usar cada vez que sea desee desarrollar algún software.

Bibliografía.

Santander Universidades. (2021, August 31). Metodologías de desarrollo software | Blog Becas Santander. Becas-Santander.com; Santander Universidades. https://www.becas-santander.com/es/blog/metodologias-desarrollo-software.html

‌Metodología Scrum - Troop Software Factory. (2015, March 30). Troop Software Factory. https://www.troopsf.com/scrum/

‌Softdem - Desarrollo Bajo Demanda. (2013). Softdem.com.mx. http://softdem.com.mx/

‌Empresa de desarrollo de software en Mexico. (2021). Grupoperti.com.mx. https://grupoperti.com.mx/empresa-de-desarrollo-de-software-en-mexico.html

‌


Comentarios