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
Publicar un comentario