sábado, 3 de septiembre de 2022

Modelos Desarrollo Software: Prototipos; Espiral e Incremental

 

Modelo de Prototipos

El modelo de prototipo se utiliza para dar al usuario una vista preliminar de parte del software.

Etapas

  • Recolección y refinamiento de requisitos
  • Modelado, diseño rápido
  • Construcción del Prototipo
  • Desarrollo, evaluación del prototipo por el cliente
  • Refinamiento del prototipo
  • Producto de Ingeniería

Fuente;https://www.ecured.cu/Modelo_de_prototipos

Ventajas:

  • Útiles cuando los requerimientos son cambiantes
  • Cuando no se conoce bien la aplicación.
  • Cuando el usuario no se quiere comprometer con los requerimientos.
  • Cuando se quiere probar una arquitectura o tecnología. 
  • Cuando se requiere rapidez en el desarrollo. 


Modelo Espiral

Este modelo tiene características del modelo de desarrollo en cascada y el de prototipos, incorporando la evaluación de los riesgos técnicos y de gestión. Se definen cuatro etapas:  

  1. Planificación: en la que se recolectan los requisitos iniciales o nuevos requisitos a añadir en esta iteración. 
  2. Análisis de riesgo: basándonos en los requisitos deciden si se desarrolla el software y continúan o no con el proyecto. 
  3. Ingeniería: se desarrolla un prototipo basado en los requisitos obtenidos en la fase de planificación. 
  4. Evaluación del cliente: el cliente comenta el prototipo. Si está conforme con él se acaba el proceso, si no se añaden los nuevos requisitos en la siguiente iteración. 


Este modelo tiene una representación en espiral, donde los cuadrantes son fases de especificación, diseño, realización y evaluación hasta que se logre el objetivo deseado.



Modelo Incremental

Se construye el proyecto en etapas incrementales en donde cada etapa agrega funcionalidad. Estas etapas, consisten en requerimientos, diseño, codificación, pruebas y entrega. Permite entregar al cliente un producto más rápido en comparación del modelo en cascada



                                            Fuente: https://repositorio.uca.edu.ar/bitstream/123456789/522/1/metodologias-desarrollo-                                                                            software.pdf

Ventajas: 
  • La solución se va mejorando en forma progresiva a través de las múltiples iteraciones
  • Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento.
  • Los clientes pueden aclarar los requisitos que no tengan claros, conforme ven las entregas del sistema. 
  • Se disminuye el riesgo de fracaso de todo el proyecto, ya que se las partes más importantes del sistema son entregadas primero y realizan más pruebas en todos los incrementos. 


miércoles, 31 de agosto de 2022

Equipo y Eventos Scrum

 Equipo Scrum


                                   Fuente: https://www.sydle.com/es/blog/framework-scrum


  •  El Dueño del Producto (Product Owner)

 Responsable de maximizar el valor del producto resultante del trabajo del equipo de desarrollo, y gestionar la lista del producto (Product Backlog).

  •  Scrum Master

 Es un experto en scrum y su trabajo es encargarse que el equipo de desarrollo trabaje sobre la metodología scrum, facilita el desarrollo del trabajo según la guías de scrum.

  •  Equipo de Desarrollo (Scrum Team)

Profesionales que realizan el trabajo de entregar un incremento de producto terminado que potencialmente se pueda poner en producción al final de cada Sprint, los cuales cuentan con las siguientes características:

  1. Auto organizados
  2. Multifuncionales
  3. No reconoce títulos a los miembros de equipo independiente del trabajo que desarrolle
  4. Los miembros individualmente pueden tener especialidades, pero la responsabilidad recae en todos.


Eventos Scrum
  • Lista del Producto (Product Backlog)

Lista ordenada de todo lo que se conoce que es necesario en el producto, donde sus elementos tienen como atributo la descripción, el orden, la estimación y el valor.

  •  Lista de Pendientes del Sprint (Sprint Backlog)

Conjunto de elementos de la Lista de Producto seleccionados para el Sprint, sumado a un plan para entregar el incremento de producto y conseguir el objetivo del Sprint.

  • El Sprint
El bloque de tiempo generalmente de un mes o menos durante el cual se crea un incremento de producto utilizable y potencialmente desplegable. Cada nuevo sprint comienza inmediatamente después de la finalización del sprint anterior.

  •  Scrum Diario (Daily Scrum)

Reunión con un bloque de tiempo de 15 minutos para el Equipo de Desarrollo, donde se planea el trabajo para las siguientes 24 horas.

  •  Revisión de Sprint (Sprint Review)

Al final del Sprint se lleva a cabo una revisión de Sprint para inspeccionar el incremento y adaptar la Lista de Producto si es necesario.

  •  Retrospectiva de Sprint (Sprint Retrospective)

La retrospectiva de sprint tiene lugar después de la revisión de sprint y antes de la siguiente planificación de Sprint. Es una oportunidad para el equipo scrum de inspeccionarse a sí mismo y de crear un plan de mejoras que sean abordadas durante el siguiente Sprint.

domingo, 28 de agosto de 2022

Metodología Scrum

Esta metodología de trabajo no lo usan solo empresas dedicadas al desarrollo tecnológico, sino que ha traído beneficios a las entidades del sector educativo económico político y social.

Scrum es un marco bajo el cual se puede emplear varios procesos técnicos en el que se puede mejorar el producto, el equipo y el entorno de trabajo para entregar valor de manera continua al cliente.

Este tipo de metodología ayuda porque se puede ir realizando los cambio a tiempo para garantizar una entrega final precisa de máximo valor posible para que el cliente quede satisfecho. 

Usos del Scrum

  • Investigar, identificar mercados viables, tecnologías y capacidades de producto
  • Desarrollar e innovar productos cumpliendo con las expectativas y necesidades del cliente
  • Anticipa los riesgos que se pueden presentar en l desarrollo del los productos
  • Realiza de manera oportuna las mejoras.

Beneficios

  • Entregas más rápidas, se logra con un pequeño grupo de persona que pueden trabajar, adaptarse, y ser mas flexible. 
  • Reducción de costos
  • Desarrollo de equipo de alto desempeño y auto organizados.

Principios del Scrum

Los tres principios que inspiran esta metodología:

  1. Transparencia: Valor fundamental que permite ver lo que ocurre en cada fase y tener claridad en el proceso de los productos, permitiendo observar donde se encuentran los problemas y superar los impedimentos
  2. Inspección: Inspeccionar recurrentemente permite detectar a tiempo los cambios que se debe realizar para continuar avanzando. 
  3. Adaptación: Si  se determina que uno o mas aspectos se desvían de limites aceptables, se debe realizar ajustes cuanto antes para evitar desviaciones mayores.

Valores del scrum

  1. Compromiso: Las personas se comprometen de manera individual a alcanzar las metas del equipo scrum
  2. Coraje: Los miembros del quipo scrum tienen coraje para hacer bien las cosas y para trabajar los problemas difíciles 
  3. Foco: Todos se enfocan en el trabajo y en las metas propuestas 
  4. Apertura: Los miembros del equipo acuerdan estar abiertos a todo el trabajo y a los desafíos que se le presenten en el desarrollo del mismo.
  5. Respeto: Los miembros del equipo se respetan entre sí para ser personas capaces e independientes.   





miércoles, 24 de agosto de 2022

La Metodologías Desarrollo Software: Cascada o Agile

Metodología en Cascada

                                            
Una metodología ágil es una forma de organizar el trabajo del desarrollo de software. Las metodologías más conocidas son en cascada que es la tradicional o agile (ágil)  que es el desarrollo rápido de aplicaciones. La primera es la propuesta de Wilson W. Royce con una metodología lineal donde cada un de las etapas suceden una detrás de la otra como una cascada, esto significa que para que se desarrolle una nueva fase es indispensable que la anterior se haya terminado totalmente.


                                            Fuente: https://www.saptools.es/waterfall-o-agile/

1.  Los requerimientos del cliente, se debe tener claro todos los requerimientos del cliente porque de este primer paso depende que se desarrollen los demás pasos. 
2.  Diseño se piensa en soluciones que cumplan los requerimientos del cliente. 
3. Implementación, los desarrolladores escriben el código del proyecto en base con los requerimientos obtenidos y las especificaciones diseñadas. 
4. Verificación o testing donde el cliente hace la revisión del producto y el cumplimiento de los requerimientos. 
5. Mantenimiento donde el cliente ya utiliza el producto de manera regular y descubre cosas que no esta bien y el equipo de desarrolladores se dedica a resolver estos problemas hasta que el cliente este satisfecho con el resultado final. 

Desventajas

- Puede ser más costoso
- Puede ser más lento porque se demora tanto en cada etapa que cuando se entrega el resultado final los requerimientos ya cambiaron.
- No permite cambios de requisitos y alcances 

Esta metodología fue adoptada por parte del Departamento de Defensa de los Estados Unidos. Sin embargo, debido a los pocos resultados obtenidos por el exceso de presupuesto y costos en los proyectos, deciden no continuar con este tipo de enfoque y fomentan resolver estos inconvenientes a través de una metodología iterativa para el desarrollo de software al reconocer que los requisitos cambian y el diseño puede presentar un proceso evolutivo.

Al respecto, Standish Group publicó en el año 1994 un análisis basado en entrevistas con los gerentes e compañías de TI de e investigaciones  sobre la gestión de proyectos en la industria de software, considerando la gran cantidad de recursos anuales que invierte Estados Unidos en el desarrollo de aplicaciones de TI, arrojando los siguientes resultados: 

Fuentes: https://www.standishgroup.com/sample_research_files/chaos_report_1994.pdf
                                                    
31.1% de los proyectos se cancelaron durante su desarrollo (Type 3 - Fracasaron)
52.7% de los proyectos fueron terminados pero excedieron presupuesto y tiempo  y con menos                            funciones a las inicialmente especificadas (Type 2- Cambiados)
16.2% de los proyectos culminaron con el presupuesto asignado (Type 1 - Exitosos)


Para resolver estos inconvenientes surge la metodología agile que esta orientado a equipo e iterativa hace énfasis en la entrega rápida de aplicaciones en componentes funcionales, en lugar de entregar el producto completo al final del proceso  que no permite recibir feedback. realiza la entrega por partes para entregar feedback del cliente  y utilizarlo en próxima iteración.

En este ámbito, Scrum es la más reconocida en esta metodología ayuda a los equipos a adaptarse a los permanentes cambios de los requerimientos del usuario y cambiar loas prioridades, considerando los cortos ciclos de entrega.

 

domingo, 21 de agosto de 2022

Scrum - All Black

El termino Scrum 

El termino scrum nace originariamente de una formación de un equipo de rugby, donde la pelota circula entre los jugadores del equipo en la medida que éstos avanzan por el campo como una unidad todos los integrantes del equipo empujan en la misma dirección y están alineados hacia un mismo propósito y esto es lo que la metodología procura imitar en equipo de trabajo.



                                                Link: https://youtu.be/I3gbneDt-S4?t=40

El equipo de rugby de Nueva Zelanda All Blacks antes de cada encuentro realizan una danza guerrera Maorí denominada el ritual del Haka donde puedes ver la energía de cada individuo y del equipo que para convertirse en un equipo que no admite derrotas deben tener intensa concentración en la meta; colaboración para alcanzar el objetivo; aplastar todo lo que se interpusiera en su camino; y entusiasmo universal.  Estos valores se han implementado en la metodología para de desarrollo de software scrum.

Modelos Desarrollo Software: Prototipos; Espiral e Incremental

  Modelo de Prototipos El modelo de prototipo se utiliza para dar al usuario una vista preliminar de parte del software. Etapas Recolección ...