Cómo lo hacemos >
 

METODOLOGIA

Dentro del contexto mundial, el desarrollo de software se convierte en un proceso cada vez mas difícil de dimensionar y controlar, AVATAR considera que la metodología de desarrollo es la base del éxito de todos los proyectos que emprende y la calidad de los productos que entrega, sin ella no se podría medir el impacto real de su ejecución y la afectación tanto en nuestros clientes como en nuestra propia empresa. También considera que cada proyecto de desarrollo posee características propias que los hacen convertirse en únicos tanto por el reto tecnológico que presupone como por el entorno organizacional de las empresas a las que servimos.
   
  CICLO DE VIDA
   
  Modelo El ciclo de vida de los proyectos de desarrollo de software en Avatar se basa en el modelo del Proceso Unificado de Rational (RUP por sus siglas en inglés). Por esta razón el ciclo de vida se descompone en el tiempo en cuatro fases secuenciales, cada una de las cuales concluye con un hito principal. Al final de cada fase se realiza una evaluación para determinar si se alcanzaron los objetivos de la misma. Si la evaluación es satisfactoria entonces el proyecto podrá continuar con la siguiente fase. (Referencia RUP: RUP LIFECYCLE)        

Alcance
Los proyectos de desarrollo de software para los cuales aplica el presente modelo de ciclo de vida tienen como objetivo desarrollar un producto nuevo en ambiente web o cliente/servidor. De acuerdo a la experiencia de Avatar, a la fecha este modelo ha sido probado con equipos de trabajo conjuntos de 5 a 20 personas, y una duración de 3 a 9 meses.
   
  Fases
Las cuatro fases del ciclo de vida son:
 
ü Concepción
ü Elaboración
ü Construcción
ü Transición
   
  ü Concepción
  La fase de Concepción por definición tiene como finalidad principal confirmar que existe consenso entre todos los interesados al interior del cliente acerca de los objetivos a alcanzar y la rentabilidad del proyecto, de modo que se tome la decisión si el proyecto continúa o no. (Referencia RUP: Phase: Inception). La realidad sin embargo es que los clientes envían sus proyectos a las posibles empresas ejecutoras (entre ellas Avatar) con esta decisión ya tomada y con la convicción que una de ellas se ajustará a sus estimados de tiempo y costo de manera razonable y beneficiosa para ambas partes. Por esta razón la fase de Concepción en la metodología de Avatar tiene como razón de ser encausar el proyecto dentro del modelo RUP.
   
  Objetivos
ü
Encontrar todos los actores y los casos de uso del software, y agruparlos por módulos.

ü
Delinear la arquitectura, e identificar las partes de la misma que requerirán ser atendidos durante la elaboración.

ü
Confirmar el alcance funcional, técnico y de gestión bajo los cuales se planificó el proyecto e identificar los controles de cambio que sean necesarios.


Entregables

De acuerdo al alcance del presente modelo de ciclo de vida de proyectos, los entregables de la fase de concepción son los siguientes (en orden de importancia):
   
 
Entregables esenciales Descripción
Visión

ü Donde se documenta la descripción de los módulos, la relación de casos de uso, los actores y la arquitectura del sistema.

ü Incluye los siguientes modelos:

 - El modelo de casos de uso
 - El modelo de despliegue
 - El modelo de clases de análisis
 - Prototipos de la interfaz con el usuario
 - Prototipos de la arquitectura

Plan de Desarrollo de Software

ü Donde se documenta la descripción de las actividades que se desarrollarán durante cada fase, la necesidad de recursos (personal, infraestructura, etc.), los criterios de aceptación y la programación de fechas.

ü En caso sea necesario, debe incluir también:

- El plan de migración
- El plan de pruebas 
-
El plan de capacitación

Lista de Riegos

ü Donde se enumera la lista de riesgos identificados durante esta fase del proyecto, con su correspondiente evaluación cuantitativa y cualitativa, y sus respectivos planes de mitigación y/o contingencia.

   
  Supuestos
Los supuestos que a continuación se describen deben ser fehacientemente comprobados por los responsables de dirigir el proyecto, tanto por parte del cliente como de Avatar.
   
 
Supuesto Fuente

El alcance, los supuestos, las dependencias, y los criterios de aceptación del proyecto están claramente establecidos

ü Oferta Técnica, elaborada por el Jefe de Proyecto de Avatar y aprobada por la Gerencia de Sistemas del Cliente

El personal asignado al proyecto ha pasado por el proceso de inducción con por lo menos una semana de anticipación.

ü Tablero de Control Interno, elaborado por el Jefe de Proyecto y revisada por el Gerente de Operaciones

El plan de trabajo ha sido revisado y aprobado por ambas partes

ü Plan de Desarrollo de Software, elaborado por los Jefes de Proyecto de Avatar y del Cliente, y aprobado por las Gerencias de Operaciones de Avatar y de Sistemas del Cliente.

El mbiente de trabajo está listo para ser utilizado por personal de Avatar

ü Acta de Iniciación (Kick-off) del Proyecto, elaborado por los Jefes de Proyecto de Avatar y del Cliente, y aprobado por las Gerencias de Operaciones de Avatar y de Sistemas del Cliente.

   
  ü Elaboración
   
  La fase de Elaboración por definición tiene como finalidad establecer una base sólida de la arquitectura del software (Referencia RUP: Concepts: Software Architecture). La arquitectura se desarrolla a partir del análisis y diseño de los requerimientos funcionales y técnicos más significativos, y se _evalúa por medio de uno o más prototipos. (Referencia RUP: Phase: Elaboration). Esto demanda una fuerte participación de los Líderes Funcionales y Técnicos del cliente. Siendo la realidad que los clientes mantienen a sus Líderes Funcionales y Técnicos en diferentes proyectos y/o tareas propias de la operatividad del día a día y que por lo tanto su disponibilidad en el proyecto es siempre mucho mayor al inicio y mucho menor después, la fase de Elaboración en la metodología de Avatar tiene como razón de ser el análisis y diseño de todos los requerimientos funcionales y técnicos del software, empezando por aquellos que son críticos para establecer su arquitectura.

Objetivos

Confirmar que los requerimientos, la arquitectura y los planes son suficientemente estables, y que los riesgos están suficientemente mitigados, de modo que los esfuerzos del Cliente y de Avatar estén adecuadamente estimados para completar el proyecto en los plazos previstos.


Entregables

De acuerdo al alcance del presente modelo de ciclo de vida de proyectos, los entregables de la fase de elaboración son los siguientes (en orden de importancia):
   
 
Entregables esenciables Descripción
Documento de Especificaciones Funcionales y Técnicos

ü Resultado de la labor de análisis y diseño, complementa el documento de la Visión porque describe la arquitectura del software en todos sus aspectos relevantes, y cómo se implementarán sus casos de uso.

ü Incluye los siguientes modelos:

- El modelo de casos de uso
- El modelo de despliegue
- El modelo de clases de análisis
- El modelo de datos
- El modelo lógico, a nivel de paquetes, módulos, subsistemas, clases de diseño, atributos y métodos
- El modelo de componentes
- Prototipos de la interfaz con el usuario
- Prototipos de la arquitectura
- La definición de la línea gráfica

Plan de Desarrollo de Software

ü Revisado y aprobado a la fecha. Su contenido puede ser mejorado y/o complementado siempre a través de un control de cambio.

Lista de Riesgos ü Revisado y aprobado a la fecha. Su contenido puede ser mejorado y/o complementado siempre a través de un control de cambio.
Casos de Prueba ü Relación de casos de prueba de los módulos que se implementaran en la siguiente iteración.
Adendas a la Visión ü Resultado de los controles de cambio que hayan sido solicitados
   
  Supuestos
Los supuestos que a continuación se describen deben ser fehacientemente comprobados por los responsables de dirigir el proyecto, tanto por parte del cliente como de Avatar.
   
 
Supuesto Fuente

El plan de trabajo ha sido revisado y aprobado por ambas partes

ü Plan de Desarrollo de Software actualizado a la fecha, elaborado por los Jefes de Proyecto de Avatar y del Cliente, y aprobado por las Gerencias de Operaciones de Avatar y de Sistemas del Cliente.

El ambiente de trabajo está listo para ser utilizado por personal de Avatar, específicamente el ambiente de desarrollo

ü  E-Mail de Confirmación por del Jefe de Proyecto del Cliente.

  ü Construcción
   
  La fase de Construcción por definición tiene como finalidad culminar el análisis y diseño de los requerimientos que hayan quedado pendientes de la fase de elaboración y completar el desarrollo del sistema siguiendo la arquitectura del software ya definida (Referencia RUP: Phase: Construction). Los requerimientos que puedan quedar pendientes de analizar y diseñar deben ser excepcionales, deben haber surgido como adicionales al alcance original, y no deben tener impacto alguno en la arquitectura. Siendo así, la fase de Construcción en la metodología de Avatar tiene como razón de ser culminar la implementación iterativa e incremental de todos los requerimientos funcionales y técnicos del software.

Objetivos
ü      Implementar las versiones del sistema con un equilibrio entre calidad y rapidez

ü     
Minimizar los costos de desarrollo optimizando el uso de recursos y previniendo retrasos, re-trabajo, desperdicio.


Entregables
De acuerdo al alcance del presente modelo de ciclo de vida de proyectos, los entregables de la fase de elaboración son los siguientes (en orden de importancia):
   
 
Entregables esenciables Descripción

El Sistema

ü El sistema ejecutable en sí, listo para pruebas de certificación por parte del Cliente

Informe de Pruebas

ü Un reporte con los casos de prueba que se han podido ejecutar, la estadística de cuántos han sido satisfactorios y qué observaciones están quedando pendientes

Manual de Usuario

ü La documentación de ayuda para el usuario final respecto al uso del sistema

Manual de Sistema

ü La documentación de ayuda para los operadores de sistemas respecto a como instalar, configurar, operar y dar soporte al sistema

Plan de Desarrollo de Software

ü Revisado y aprobado a la fecha. Su contenido puede ser mejorado y/o complementado siempre a través de un control de cambio.

Lista de Riesgos

ü Revisado y aprobado a la fecha. Su contenido puede ser mejorado y/o complementado siempre a través de un control de cambio.

Casos de Prueba

ü Relación de casos de prueba de los módulos que se implementaran en la siguiente iteración.

Adendas a la Visión

ü Resultado de los controles de cambio que hayan sido solicitados

Adendas al Documento de Especificaciones Funcionales y Técnicos

ü Resultado de los controles de cambio que hayan sido solicitados

   
  Supuestos
Los supuestos que a continuación se describen deben ser fehacientemente comprobados por los responsables de dirigir el proyecto, tanto por parte del cliente como de Avatar.
   
 
Supuesto Fuente

El plan de trabajo ha sido revisado y aprobado por ambas partes

ü Plan de Desarrollo de Software actualizado a la fecha, elaborado por los Jefes de Proyecto de Avatar y del Cliente, y aprobado por las Gerencias de Operaciones de Avatar y de Sistemas del Cliente.

El ambiente de trabajo está listo para ser utilizado por personal de Avatar, específicamente el ambiente de desarrollo del cliente

ü E-Mail de Confirmación por del Jefe de Proyecto del Cliente.

   
  ü Transición
   
  La fase de Transición por definición tiene como finalidad asegurar que el software esté disponible para sus usuarios finales. (Referencia RUP: Phase: Transition). Esto implica que se lleven a cabo las pruebas de certificación del software en el ambiente de control de calidad, y se genere la documentación final necesaria para utilizarlo en producción. De esta manera el cliente comprobará tiene todo lo necesario para efectuar el pase a producción. Esto se debe a que los clientes muchas veces deciden no pasar a producción inmediatamente porque está a la espera de que culminen otros proyectos satélites, ó simplemente no dispone el acceso a todos los usuarios finales hasta que se termine un periodo de marcha blanca en producción atendiendo a un conjunto limitado de usuarios. En cualquier de estos casos, las observaciones que puedan surgir son atendidas por Avatar como parte de la garantía sobre el software. Siendo así, la fase de Transición en la metodología de Avatar tiene como razón de ser culminar la entrega del software certificado por los responsables de control de calidad del cliente, esto incluye toda la documentación y entrenamiento necesario para que el cliente efectúe el pase a producción y utilice el software en el momento que lo crea conveniente.

Objetivos
ü      Probar que el sistema cumple las especificaciones funcionales y técnicas requeridas
ü     
Cumplir con la lista de verificación que da por culminado el proyecto


Entregables
De acuerdo al alcance del presente modelo de ciclo de vida de proyectos, los entregables de la fase de elaboración son los siguientes (en orden de importancia):
   
 
Entregables esenciables Descripción

El Sistema

ü El sistema ejecutable en sí, incluido sus fuentes, listo para ser instalado, configurado y utilizado en producción por parte del Cliente

Manual de Usuario

ü La documentación de ayuda para el usuario final respecto al uso del sistema, aprobada por el Cliente

Manual de Sistema

ü La documentación de ayuda para los operadores de sistemas respecto a como instalar, configurar, operar y dar soporte al sistema, aprobada por el Cliente

Adendas a la Visión

ü Resultado de los controles de cambio que hayan sido solicitados

Adendas al Documento de Especificaciones Funcionales y Técnicos

ü Resultado de los controles de cambio que hayan sido solicitados

   
  Supuestos
Los supuestos que a continuación se describen deben ser fehacientemente comprobados por los responsables de dirigir el proyecto, tanto por parte del cliente como de Avatar.
   
 
Supuesto Fuente

El plan de trabajo ha sido revisado y aprobado por ambas partes

ü Plan de Desarrollo de Software actualizado a la fecha, elaborado por los Jefes de Proyecto de Avatar y del Cliente, y aprobado por las Gerencias de Operaciones de Avatar y de Sistemas del Cliente.

El ambiente de trabajo está listo para ser utilizado por personal de Avatar, específicamente el ambiente de certificación y de producción del cliente

ü E-Mail de Confirmación por del Jefe de Proyecto del Cliente.

   
 

CONSIDERACIONES ADICIONALES

De acuerdo a la experiencia de AVATAR, en la industria nacional se carece mucho de los siguientes dos factores críticos de éxito en el proceso de desarrollo de software (independientemente de la tecnología que se utilice): La Gestión de la Calidad y la Disciplina de Pruebas de Software.

Gestión de la Calidad

La gestión de la calidad es responsabilidad de todos los miembros del proyecto y de la empresa, y se lleva a cabo en cada una de las actividades que se emprenden. La gestión de la calidad se enfoca principalmente en el proceso de desarrollo de software, como garantía de un adecuado producto. Adicionalmente a las tareas internas de control, resaltamos a continuación aquellas tareas que se llevan a cabo con la participación de un Analista del área de Calidad de Avatar

Tareas de Prevención

ü Prevención contra Entregables no adecuados para el Proyecto.- El Analista de Calidad revisa la estructura y el tipo de contenido de cada entregable con los miembros del proyecto involucrados en su elaboración. Resultado de esta tarea se revisa y complementa la Lista de Verificación (checklist).

ü Prevención contra Entregables poco claros para el Cliente.- El Jefe de Proyecto envía una copia de ejemplo de cada entregable con la intención de mostrarle un mayor detalle a lo descrito en la propuesta, y confirmar su aprobación respecto a la estructura y el tipo de contenido. Resultado de esta tarea se oficializa la Lista de Verificación (checklist).

Tareas de Control

ü Control de un adecuado seguimiento del avance del proyecto.- El Analista de Calidad revisa la documentación de seguimiento del avance del proyecto (carta gantt, reporte de estado, reporte de pendientes, actas de reunión), visita el ambiente de trabajo periódicamente y conversa con los miembros del proyecto, con la finalidad de:

- Verificar que la documentación de seguimiento señale, de manera explícita, entregables, plazos y responsables.

- Verificar que se estén cumpliendo los plazos del proyecto y el alcance establecido por cada entregable.

- Verificar que el proceso de desarrollo de software sea fluido y no se generen desperdicios o retrabados.

ü Control de la Lista de Verificación por Entregable.- El Analista de Calidad acompaña al Jefe de Proyecto en la tarea de revisar la Lista de Verificación contra un Entregable, desde el inicio de su elaboración hasta antes de la entrega al cliente.

Disciplina de Pruebas de Software

Esta disciplina complementa a la gestión de la calidad, toda vez que tiene como propósito principal el aseguramiento y el control de la calidad del producto final, el software. Las actividades de esta disciplina se llevan a cabo a lo largo de las cuatro fases, sin embargo consideramos crítico establecer con el Cliente el alcance de las pruebas necesarias para cada proyecto, por lo que a continuación exponemos brevemente las principales formas como se puede probar un sistema, cada una de las cuales tiene un objetivo específico y una técnica que lo soporta.

ü Prueba de Estructura Web.- Es el tipo de prueba que se enfoca en certificar que todos los enlaces del sitio web estén conectados a la página web que le corresponde, y que no hay contenido que no pueda ser consultado de ninguna manera (contenido huérfano).

ü Prueba de Funcionalidad.- Es el tipo de prueba que se enfoca en certificar que el funcionamiento del sistema esté acorde a lo descrito en el documento de especificaciones funcionales, esto es que provea los casos de uso que ahí se indican, y de la manera como ahí se especifica.

ü Prueba de Seguridad Funcional.- Es el tipo de prueba que se enfoca en certificar que los datos y las funciones del sistema solo son accesibles por los actores debidamente autorizados, acorde a lo descrito en el documento de especificaciones funcionales.

ü Prueba de Volumen Funcional.- Es el tipo de prueba que se enfoca en certificar la capacidad del sistema de manejar volúmenes de datos extremos, acorde a lo descrito en el documento de especificaciones funcionales.

ü Prueba de Robustez.- Es el tipo de prueba que se enfoca en certificar la capacidad de resistencia a fallar que tiene el sistema, acorde a lo descrito en el documento de especificaciones técnicas.

ü Prueba de Estructura de Programas.- Es el tipo de prueba que se enfoca en comprobar que los programas han sido codificados de acuerdo a los estándares de programación establecidos.

ü Prueba de Resistencia (Stress).- Es el tipo de prueba que se enfoca en comprobar cuál es el comportamiento del sistema bajo condiciones anormales, por ejemplo carencia de recursos de memoria, procesador, sistemas externos con los que interactúa y carga excesiva de trabajo. El objetivo de estas pruebas es identificar las partes débiles del sistema, de modo qu