Está en la página 1de 36

Fábricas de software

Conceptos y Modelo Propuesto


Agenda
1. Concepto
2. Arquitectura Propuesta
3. Modelo base del Propuesto
4. Modelo de Flujo de Proceso Propuesto
5. Modelo Ágil de Fábrica Propuesto
6. Actores Proceso Propuesto
7. Gestión de Cambios
8. Calidad en Fábricas de Software
9. Métricas en Fábricas de Software
10. Problemas y soluciones
Concepto
Modelo de procesos industrializados para la fabricación de software y prestación de
servicios tales producción de software a la medida, mantenimiento y soporte. En la
actualidad, este tipo de negocios presta una serie de servicios asociados con la
gestión de proyectos, análisis de negocio y levantamiento de requerimientos,
pruebas de software, además de los procesos de desarrollo de software.
Ejecutan proyectos de Desarrollo, Pruebas e Implementación de software así como
la venta de hora/hombres de desarrollo, por lo general el derecho intelectual es del
cliente. Entre sus principales objetivos está conseguir desarrollar software de
calidad basado en entandares y tecnologías ágiles.
En toda fábrica de software todos los procesos deben estar estandarizados y
normalizados con el objetivo de reducir los tiempos de producción e incrementar
los ingresos.
Concepto
Las fábricas de software deben ser modelos de producción de caja negra, tal
como sucede en los sistemas de producción de manufactura industrial, donde:
➢ Un cliente solicita un producto o servicio por medio de una solicitud o
requerimiento indicando incluso las cantidades requeridas,
➢ Se calcula la capacidad de la fábrica con base en la demanda de cada cliente,
➢ Se define un proyecto y con base a unas especificaciones de alto nivel se
determinan los tiempos base de producción,
➢ Se desarrolla un caso de negocio, y se establecen unos requerimientos y
especificaciones funcionales y técnicas, y tanto el caso de negocio, los
requerimientos y especificaciones se somete a validación con las diferentes
áreas, incluyendo calidad, y al cliente, con el objetivo de obtener su
aceptación,
➢ Se desarrolla un diseño, el cual se somete a validación con las diferentes
áreas, incluyendo calidad, y al cliente, con el objetivo de obtener su
aceptación,
➢ Una vez se ha obtenido aceptación, y con la capacidad de fábrica instalada, se
comienza la producción, donde cada entregable es sometido a pruebas de
calidad antes de su entrega al cliente.
Concepto
Ciclo de una Fábrica de Software.
Análisis del
Negocio

Evaluación de la
Especificación de
Satisfacción del
Requerimientos

Aseguramiento de la Calidad
Cliente
Gestión de Proyectos

Despliegue e
Análisis y Diseño
Implantación

Pruebas Construcción
Concepto
Esquema de trabajo propuesto de una fábrica de software.

FABRICA
CLIENTE Caso Negocio
Análisis
Requisitos de
Servicio Especificaciones

Elaboración
Pruebas de Planeación
Aceptación

Integración Construcción

Implantación
Transición
Transición

Gestión Proyectos
Arquitectura Propuesta

Avances CLIENTE Avances

Asignación Productos Asignación


CONTROL Y GESTION DE PROYECTOS

CONTROL Y GESTION DE PROYECTOS


Requerimientos / Entregables De solicitudes
Solicitudes y Ajustes de Soporte

Productos
Avances ANALISIS Y DISEÑO
Documentación

Seguimiento de Documentación y
TRANSICION Avances

Avances

Estándares y observaciones de calidad


Actividades Resultados pruebas

Ajustes
Documentación

Desarrollos y Pruebas U.

DESARROLLO TESTING
Casos de Prueba. SOPORTE Avances
Ajustes y Observa.

Gestión y Métricas
Documentación

Gestión y Métricas
Estándares

Estándares
Avances CALIDAD
Modelo Base Propuesto
Doc Check List Pruebas. Check list pruebas
Diseño Casos Prueba unitarias
Acta Reunión
Diseño Check list implantación
Doc. Deployment
Análisis y requerimientos
Acta de constitución GANTT
Glosario Definitivo Check list implantación
Ambigüedades

Doc. Contextualización Doc. Deployment


Matriz Riesgos
Gestión Gestión
Cambios Cambios

QA Pruebas
QA de Diseño

QA Pruebas
requerimientos

Unitarias

SIT
QA de

Calidad Calidad
Calidad Calidad
Analista Analista
Analista Analista
Developer Developer
Developer Developer

Gestión de Proyectos

Gestión de Calidad

Base Line GANTT Definitivo


Modelo de Flujo de Proceso Propuesto
CLIENTE REQ/ANALISIS
SQAY DISEÑO/TEST DESARROLLO TEST

Asignación Redacción B
proyecto
del FRD
Análisis y Definición C B
Documentación Elaborar casos de
de Requerimientos
DRN Prueba y checklist de pruebas

Requerimientos Si No Asignar al
Errores Realizar Comenzar desarrollos Revisar y evaluar
Corrección de ambigüos Analista ajustes Documentación y
documentos Código
Realizar
Aprobar presupuesto e Contextualización
B Si
inicio del proyecto Realizar pruebas Errores
Unitarias
Elaborar Doc. Realizar estimación No
A Entendimiento de tiempos Implantar en SIT

No Realizar pruebas
Elaborar Documento De
FRD/DRN/Diseño SIT
Observaciones y Si
Errores Si Errores
No
Solicitud de ajustes
Si No
Si C Errores
Elaborar documento
Revisión de documentos
De deployment y
y tiempos Checklist de implantación
Revisión de Seguimiento y
tiempos y Soporte UAT
Realizar ajustes a No
documentos Errores D
la Seguimiento y
documentación Soporte Post- E
No producción

GESTION DE PROYECTOS

No

Elaborar Gantt Seguimiento de Elaborar informe Elaborar informe de


D de seguimiento Fin del Proyecto Lecciones aprendidas E
Definitivo actividades Si
Semanal por proyecto E indicadores de gestión

SQA Aseguramiento de calidad del software


Modelo Ágil de Fábrica Propuesto
Participación y
Entrega colaboración
Integrar Entrega continua clientes,
y probar Revisión y feedback usuarios y equipo

Integrar
y probar
Aceptación
Diseño /
Desarrollo Se libera
Integrar
Si la versión
Se repite tantas final
y probar veces como iteraciones
se requieran
No

Inicio Prueba
Requerimientos final

Próxima Iteración Registro e


Inicio de la fase de diseño incorporación de
desarrollo cambios
Repriorizar components o
requerimientos
Modelo Ágil de Fábrica Propuesto
Daily Standup
 Reunión de estado diaria del equipo de más o
menos 15 minutos.
 Cada miembro tiene que responder a tres
preguntas importantes: ¿Qué he hecho desde la
24 última reunión (ayer)?, ¿Qué voy a hacer antes de
la próxima reunión (mañana)? Y ¿Qué me impide
horas realizar mi trabajo lo mejor posible?

Product Backlog
Lista de elementos a crear

2-4
Prioridad

semanas

Sprint Backlog
Lista de tareas a ser
Sprint Incremento
funcional del
completadas durante el Sprint. producto
Modelo Ágil de Fábrica Propuesto
• Todo el equipo debe ser una unidad altamente integrada, incluyendo al
equipo, QA, gestión de proyectos, y el usuario y/o cliente.

• Comunicación frecuente que hace posible la integración, donde las reuniones


diarias permiten determinar el trabajo y las dependencias.

• Las entregas son a corto plazo con un ciclo de entrega que oscila de una a
cuatro semanas conocidos como sprints.

• Uso de técnicas de comunicación abiertos que permite al equipo expresar sus


opiniones y retroalimentación rápidamente dirigidos a gestionar los cambios
de forma rápida.
Actores Proceso Propuesto

ROL RESPONSABILIDAD
Dirección y gestión de proyectos grandes y complejos con múltiples equipos
ágiles integrando otras actividades fuera del alcance de los equipos.
Ayudar a poner en su lugar a las personas, los procesos, herramientas y
miembros del equipo adecuados, las necesidades de entrenamiento, para
optimizar la eficiencia del equipo de proyecto.
Generar los calendarios de proyectos, reportes de avance y estado de los
proyectos.
Apoyar al Scrum Master en la gestión de los recursos asignados.
Project Manager
Gestionar los riesgos y alertas de los proyectos.
Llevar el control de la gestión de cambios que puedan surgir durante el ciclo de
vida de los proyecto.
Actualizar y reportar el avance de los proyectos diariamente.
Apoyar en la gestión de solución de problemas que puedan surgir en los
proyectos tanto a nivel de diseño y desarrollo como a nivel de pruebas.
Gestionar de principio a fin los proyectos asignados, incluyendo el seguimiento
en Pruebas de usuario y producción.
Actores Proceso Propuesto

ROL RESPONSABILIDAD
Responsable por las decisiones estratégicas y tácticas en relación a los
productos.
Define la Visión y el conjunto de características priorizadas que describen cómo
cumplir la Visión en la implementación.
Desarrolla la estrategia del producto.
Agile Product Conduce los objetivos y prioridades de lanzamiento a través de la planificación
Manager de lanzamientos.
Actualiza y Mantiene el product roadmap que permite acoplar la visión con el
producto
Comprende las necesidades cambiantes del mercado y de los clientes y se
centra en segmentos de mercado, cartera, posicionamiento y ROI.
Mantiene una sólida comprensión de la solución actual.
Actores Proceso Propuesto

ROL RESPONSABILIDAD
Ser el representante de todos los interesados (internas o externas a la organización) y actuar
como interlocutor único ante el equipo, con autoridad para tomar decisiones.
Definir los objetivos del producto o proyecto.
Dirigir los resultados del proyecto y maximizar su ROI (Return Of Investment).
Colaborar con el equipo para planificar, revisar y dar detalle a los objetivos de cada iteración.
Product Participar en la reunión de planificación de iteración, proponiendo los requisitos más
Owner prioritarios a desarrollar, respondiendo a las dudas del equipo y detallando los requisitos que
el equipo se comprometer a hacer.
Esta disponible durante el curso de la iteración para responder a las preguntas que puedan
aparecer y asegurar que los requisitos que se están desarrollando en una iteración, una vez
está iniciada no cambien.
Participa en la reunión de demostración de la iteración, revisando los requisitos completados.
Actores Proceso Propuesto
ROL RESPONSABILIDAD
Vela que el equipo siga los valores y principios ágiles, las reglas y el proceso y guía la
colaboración dentro del equipo y con el cliente de manera que las sinergias sean máximas.
Esto implica:
• Asegurar que exista una lista de requisitos priorizada y que esté preparada antes de la
siguiente iteración.
• Facilitar las reuniones de planificación de la iteración, diarias de sincronización del
equipo, demostración y retrospectiva, de manera que sean productivas y consigan sus
objetivos.
Scrum • Enseñar al equipo a auto-gestionarse. No da respuestas, si no que guía al equipo con
Master - preguntas para que descubra por sí mismo una solución.
Technical Quita los impedimentos para conseguir el objetivo de cada iteración y poder finalizar el
Leader proyecto con éxito. Estos obstáculos se identifican de manera sistemática en las reuniones
diarias de sincronización del equipo y en las reuniones de retrospectiva.
Protege y aísla al equipo de interrupciones externas.
Realizar la contextualización de los proyectos asignados y el sizing de los mismos.
Apoyar al equipo en el análisis y diseño de los sistemas y/o requerimientos asignados.
Apoyar al Project Manager en la elaboración de los calendarios que permitirá realizar el
seguimiento del proyecto.
Apoya en la detección y gestión de los riesgos, cambios y alertas del proyecto.
Apoyar en la elaboración de Checklist y la documentación.
Actores Proceso Propuesto
ROL RESPONSABILIDAD
Encargado de ejecutar las actividades de desarrollo asignadas por el Analista/Líder.
Dentro de sus asignaciones están:
• Desarrollo de los programas, módulos o funciones asignadas.
• Reportar el avance de las asignaciones y alertas diariamente al analista.
Developer • Realizar las pruebas unitarias tomando como base la matriz de pruebas elaborada por
QA.
• Elaborar el Checklist de implantación y el documento de deployment conjuntamente
con el analista.
• Participar en las pruebas pre-SIT conjuntamente con el tester

ROL RESPONSABILIDAD
Encargado de gestionar la contextualización del proyecto en el entorno de los procesos de
pruebas.
Dentro de sus asignaciones están:
Analista de
• Revisar, conjuntamente con el analista los documentos de diseño.
Pruebas /
• Validar y evaluar toda la documentación requerida en el proyecto.
QA
• Elaborar el diseño de los casos de prueba del proyecto asignado.
• Elaborar el sizing del proceso de prueba del proyecto asignado.
• Llevar el control y gestionar la solución de errores detectados en las pruebas.
Actores Proceso Propuesto

ROL RESPONSABILIDAD
Será el encargado de llevar a cabo las pruebas en los ambientes de pre-SIT y SIT.
Dentro de sus actividades están:
• Revisar los desarrollos a nivel del cumplimiento de estándares.
Tester • Realizar las pruebas pre-SIT.
• Realizar las pruebas SIT.
• Informar y gestionar sobre los hallazgos de las pruebas al analista de pruebas / QA, al
analista / líder del proyecto y al developer.
Gestión de Cambios
La gestión de cambios en el proyecto pretende identificar, organizar y controlar las
modificaciones que pueda sufrir la solución del proyecto, por lo que se ve la
necesidad de plantear un mecanismo que contribuya en este proceso.
Solicitud de
cambio
Establecer
Documentar No
Urgente nivel de
cambio
impacto
Evaluar si es cambio Si
de alcance o nuevo
requerimiento Definir
Tiempo
Evaluar en Re planificar
Comité proyecto
No Definir
Resultado
Esfuerzo
Si Realizar
ajustes y
documentar
Solicitud
Formal Reportar
Gestión de Cambios
• Objetivos
– Permitir establecer los lineamientos generales para regular el proceso y los
ajustes a los requerimientos establecidos dentro del alcance del proyecto, así
como la identificación, seguimiento y control de las modificaciones que se
realicen y que puedan representar cambios en las actividades definidas para
su desarrollo.

– Evaluar y planificar el proceso de cambio para asegurar que, si éste se lleva a


cabo, se haga de la forma más eficiente, siguiendo los procedimientos
establecidos y asegurando en todo momento la calidad y continuidad del
servicio.

– El proceso de Control de Cambios aplica en todo el ciclo de vida del software


y en la etapa de garantía, asegurando que los cambios son controlados por
un método unificado garantizando el desempeño de los procesos y correcta
gestión del alcance, la calidad, los costes y los recursos.
Calidad en Fábricas de Software
• Objetivos

– Lograr la satisfacción del cliente y otras partes interesadas mediante la


entrega de soluciones que satisfagan sus necesidades y expectativas.

– Entregar productos de calidad que cumplan con los requerimientos


funcionales establecidos y no funcionales, dentro de los tiempos y costos
estimados en cada proyecto, reduciendo los costos asociados del re-trabajo
mediante la implementación de controles y estandarización de componentes
y actividades, para el aseguramiento de la calidad progresiva e incremento de
la productividad en el proceso de desarrollo y pruebas de software en todos
los proyectos y con un índice de CERO DEFECTOS

– Supervisar proactivamente la calidad de cada entregable y los procesos a


través de métodos cuantitativos.

– Mejorar continuamente los procesos, metodologías y técnicas mediante la


evaluación programada de los procesos.
Calidad en Fábricas de Software
• Roles y Responsabilidades en la Calidad
ROL RESPONSABILIDAD
Definir, documentar y establecer las actividades, procedimientos y
estándares de calidad.
QA Leader Generar los indicadores de gestión de la calidad y fijar los límites
de control del proceso.
Identificar oportunidades de mejora y establecer el plan de acción.
Realizar la revisión y auditoría a los entregables del proyecto.
Sugerir o reportar y apoyar en la identificación de oportunidades de
QA Analyst mejora.
Asegurar la inclusión de las actividades de QA en los planes de
proyecto (Revisión de Pares, Revisiones Técnicas e Inspecciones).
Cumplir con los estándares y actividades de calidad.
Apoyar en las actividades de Revisiones Pares.
Realizar las pruebas unitarias en conformidad con el modelo
Developer
establecido y con los casos de pruebas definidos.
Sugerir o reportar necesidades u oportunidades de mejora en los
procesos.
Calidad en Fábricas de Software
• Roles y Responsabilidades en la Calidad
ROL RESPONSABILIDAD
Asegurar el cumplimiento de los estándares de calidad.
Asegurar el cumplimiento de las Revisiones Pares.
Sugerir o reportar necesidades u oportunidades de mejora en los
procesos.
Scrum Realizar la revisión técnica del diseño en conformidad con lo establecido
Master - en el documento de estándares.
Technical Generar el plan de pruebas del desarrollador tomando en consideración el
Leader ciclo entrada – proceso - salida y especificar los casos de prueba a
realizar y datos a generar o utilizar.
Apoyar a las áreas de pruebas en la generación de casos de pruebas a
nivel técnico, de modo de determinar QUE y COMO probar, y establecer
las entradas y salidas del proceso.
Planificar y hacer cumplir las actividades de aseguramiento de la calidad.
Incluir en los planes de proyecto las actividades de QA y los ciclos
Project
iterativos de revisiones técnicas, inspecciones y revisiones de pares.
Manager
Sugerir o reportar necesidades u oportunidades de mejora en los
procesos.
Calidad en Fábricas de Software
• Roles y Responsabilidades en la Calidad

ROL RESPONSABILIDAD
Apoyar en las actividades de documentación de procesos y
procedimientos.
Apoyar en las actividades de difusión de información
PMO
relacionada con la mejora continua de procesos y de
aseguramiento de la calidad.
Apoyar en la identificación de oportunidades de mejora.
Cumplir con los estándares y actividades de calidad.
Apoyar en las actividades de Revisiones Pares.
Tester
Sugerir o reportar necesidades u oportunidades de mejora
en los procesos.
Calidad en Fábricas de Software
• Proceso de Calidad
PROCESO BASICO

Inicio

Evaluar
Evaluar Generar Plan
Proceso /
Causales de Acción
Defectos

Si

Evaluar Implementar
OK
Resultados Plan de Acción

No

Estandarizar Fin
Calidad en Fábricas de Software

• Proceso de Calidad
PROCESO GENERAL

Evaluar la trazabilidad Validar que el diseño


Documentación cumple con los
de los requerimientos y requerimientos y CU
CU establecidos y
estándares

Desarrollo
de software

Documentos:
Diseño
Implementación
Realizar pruebas
Realizar pruebas unitarias y de
integración
Software
Calidad en Fábricas de Software
• Proceso de Calidad
REQUERIMIENTOS / CONSTRUCCIÓN / PRUEBAS

Se realizaran bajo la Realizar


supervisión de QA Ajustes No

Código / Revisión Revisión


OK OK
Documentación Par Si QA

No Si
Realizar
Ajustes
Generar
No Reportar Indicadores
OK
Si a PMO
Lo realiza el TL
Reportar
con apoyo de QA
a PMO
Revisión del Devolver
Diseño / Diseño y Diseño y
Inicio Requerimientos Fin
Requerimientos Doc. Requer.
Métricas en Fábricas de Software
Métricas en Fábricas de Software
Métricas en Fábricas de Software
Métricas en Fábricas de Software
Métricas en Fábricas de Software
Problemas y Soluciones
Con base en mi experiencia en fábricas de software los principales problemas
que se presentan en este tipo de industria son los siguientes:
1. Venta y firma de contratos donde vendedores y áreas legales son las únicas
que intervienen, sin considerar a las áreas técnicas en el ofrecimientos de las
soluciones con base en las restricciones que puedan existir.
La solución, TODA VENTA DEBE CONSIDERAR LOS CONOCIMIENTOS Y
RESTRICCIONES TECNICAS. RECUERDE TODO CONTRATO DEBE SER
GANAR – GANAR.
2. Estimaciones irreales, las estimaciones de tiempos deben considerar todos
los posibles riesgos que pueden intervenir en los proyectos, especialmente en
proyectos de desarrollo de software.
La solución, INCLUYA TODOS LOS POSIBLES RIESGOS QUE PUEDAN
EXISTIR, CONSIDERE TENER UNA LISTA DE RIESGOS ESTANDARIZADA.
3. Falta de procesos estándares, en una fábrica de software todo proceso debe
estar estandarizado con la finalidad de asegurar que toda orden de
producción o nuevo requerimiento siga los mismos procesos.
La solución, ESTANDARICE LOS PROCESOS Y ASEGURESE QUE TODOS
LOS CONOCENY SIGUEN.
Problemas y Soluciones
4. Injerencia de los clientes en las decisiones de la fábrica, como lo explique al
principio, un modelo fábrica de software debe ser una caja negra, un proceso
con sus entradas, procesos y salidas, donde los clientes no deben interferir,
ya que esto puede generar problemas en el proceso de producción.
La solución, ASEGURECE QUE CADA MIEMBRO DE LA FABRICA CONOCE
LAS NECESIDADES Y ESTANDARES DE CALIDAD DE CADA CLIENTE, Y
NO PERMITA POR NINGUN MOTIVO QUE LOS CLIENTES INTERFIERAN
EN EL PROCESO. EL INTERES DE LOS CLIENTES DEBE SER QUE SE
CUMPLAN SUS ESTANDARES DE CALIDAD Y QUE LAS ENTREGAS SE
REALICEN EN LOS TIEMPOS DEFINIDOS POR LA FABRICA CUMPLIENDO
CON LO SOLICITADO.
5. Requerimientos cambiantes, a lo largo de todo proyecto, los requerimientos
pueden cambiar, generados principalmente por cambios en las estrategias, el
ambiente, y modelos de negocio.
La solución, DEFINA DENTRO DEL MODELO DE FABRICA UN MODELO
DE GESTIÓN Y DESARROLLO AGIL QUE PERMITA GESTIONAR DE
FORMA AFECTIVA LOS REQUERIMIENTOS CAMBIANTES.
Problemas y Soluciones
6. Falta de responsabilidad tanto del cliente como de los miembros de la fábrica.
Este es un tema de cultura organizacional donde las fallas de uno son la
responsabilidad de otro. Este comportamiento genera altos niveles de
deserción, debido a que en lugar de buscarse soluciones, se buscan culpables
y a la final nadie asume la responsabilidad de los errores, generando
problemas a la fábrica.
La solución, ESTABLEZCA UN CLARO MODELO DE COMUNICACIÓN Y
ESCALAMIENTO, CON TIEMPOS Y RESPONSABLES, Y SOBRE TODO,
TODO CAMBIO, PROBLEMA, RIEGOS, ETC, DOCUMENTELO.
Ingeniero Giovanny Guillén Bustamante

➢ Ingeniero de sistemas certificado PMP, SCRUM MASTER, ITIL e IBM i


(AS/400).

➢ Metodologías de desarrollo de software SCRUM, RUP y SDLC, estimación de


proyectos, aseguramiento de la calidad, integración de plataformas y
gestión de canales electrónicos.

➢ Experiencia en la gestión de proyectos de desarrollo de software para el


sistema financiero.

También podría gustarte