MEDIAFACTO, para la prestación de servicios de desarrollo a la medida y desarrollo de bases de datos, ha perfeccionado una metodología de producción de software robusta y lo suficientemente flexible como para ajustarse a cualquier necesidad del cliente.

Combina las mejores prácticas y los más usados estándares de la industria enfocándose en mejorar el proceso de desarrollo y así lograr el mejor producto posible. La metodología de MEDIAFACTO ha sido probada en la producción de aplicaciones de pequeña a gran envergadura e involucra las siguientes fases:

  1. Definición de Requerimientos de Bajo Nivel
  2. Propuesta de Trabajo
  3. Especificación Funcional de Desarrollo y Aprobación
  4. Desarrollo de Software – Versión Alfa
  5. Prueba de Calidad y Funcionamiento – Versión Beta
  6. Implementación y Versión Final
  7. Soporte Técnico y Expansiones

A continuación se describen cada una de las fases de la metodología de desarrollo de MEDIAFACTO:

Definición de Especificaciones de Requerimientos

En esta fase MEDIAFACTO LTDA trabaja de cerca con el cliente y discute todos los detalles de las prácticas y objetivos de negocio y comunicación corporativa de tal manera que se logre un entendimiento profundo de todos los requerimientos del proyecto a realizar.

Al entender las necesidades del cliente y sus objetivos estratégicos MEDIAFACTO LTDA define el alcance, las tecnologías y el enfoque de desarrollo de la aplicación. Es así que se establecen los fundamentos de una implementación exitosa de una manera eficiente, controlando riesgos y asegurando la alta calidad del producto.

Es obvio que si el cliente provee unos requerimientos completos y detallados (RFP), MEDIAFACTO LTDA pasaría automáticamente a la siguiente fase que es hacer un documento de propuesta.

Entregable: Documento de especificación de requerimientos o RFP (Request for Proposal)

Propuesta de Trabajo

Basado en la información que entrega o que se recoge del cliente y un análisis posterior, nuestro equipo elabora un documento de propuesta detallada que incorpora los siguientes elementos:

  • Documento de visión, contiene la descripción del proyecto en términos de alcance, objetivo, índice de funcionalidades, restricciones (tiempo, costo, ambiente de software) e índice de requerimientos
  • Estimado preliminar del tamaño del proyecto, esfuerzo y costo de desarrollo.
  • Borrador de plan de proyecto, ilustra los principales hitos y un estimado de tiempo para la implementación del proyecto. Los hitos son los momentos más importantes del proyecto, la mayoría corresponden a los entregables que MEDIAFACTO LTDA proveería al cliente.

Este documento de propuesta es enviado al cliente para su revisión y consideración, antes de proceder.

Entregable: Propuesta de desarrollo detallada, documento de visión, estimados y plan de proyecto.

Especificación Funcional de Desarrollo y Aprobación

Cualquier cambio o actualización que se sugiera en la revisión y consideración de la propuesta de trabajo es discutida por ambas partes con el objetivo principal de refinar los requerimientos del proyecto y así evitar el gasto excesivo de recursos de desarrollo. MEDIAFACTO LTDA en esta fase construye una especificación funcional rigurosa del software a construir. Es una definición completa del producto, que describe no solamente los requerimientos funcionales (procesos) sino que también los no-funcionales, como lo son requerimientos de interface, seguridad, confiabilidad, y otros atributos especiales requeridos por el sistema.

Una vez se ha logrado una complete definición y entendimiento de todos los requerimientos de la aplicación se incorpora el diseño y arquitectura del software. Para este fin se descompone la arquitectura en los principales componentes, se describen las relaciones entre los mismos y se incorpora este esquema a las especificaciones funcionales.

El efectuar un diseño fundamental de la arquitectura de la aplicación en esta fase contribuye a prevenir la ocurrencia de cualquier cambio estructural tardío en el proceso de desarrollo. Estos cambios pueden ser muy costosos e impactar el calendario de entrega del proyecto por lo que deben evitarse en lo posible. La arquitectura también busca cumplir dos objetivos adicionales, el de permitir que la aplicación se adapte a necesidades futuras como lo es su expansión y proveer una senda de migración a futuros desarrollos.

Adicionalmente los estimados preliminares de costo y tiempo son revisados de acuerdo con los cambios que se hacen en esta fase para así proveer al cliente un presupuesto de tiempo y costo certero. Los hitos del proyecto también son actualizados y deben satisfacer las necesidades de seguimiento del cliente.

El documento final de especificaciones es enviado al cliente para su aprobación y firma, evento después del cual se congelan los requerimientos y funcionalidades de la aplicación. MEDIAFACTO LTDA basa la siguiente fase de implementación de la aplicación en esta especificación detallada, la cual se convierte en parte integral del contrato. Cualquier cambio adicional funcional o no funcional a la aplicación se acuerdan y negocian por medio del Formulario de Solicitud de Cambio que provee MEDIAFACTO LTDA a sus clientes.

Entregable: Documento de especificaciones completas de la aplicación confirmada por el cliente.

Desarrollo de Software - Versión Alfa

Una vez se confirman unas especificaciones completas del proyecto y su arquitectura se comienza con la fase de implementación o desarrollo.

Durante el desarrollo de la aplicación se proveen al cliente entregables intermedios en acuerdo con los hitos especificados en la fase anterior, permitiéndoles el seguimiento del progreso de la implementación o desarrollo. Los hitos para cada sub-sistema pueden ser verificados por el cliente para asegurar que se estén cumpliendo sus requerimientos de negocio, asegurando que el producto final va a cumplir con los objetivos originales. La revisión de los entregables es importante porque el cliente puede descubrir que sus especificaciones son insuficientes y puede solicitar cambios que a su vez pueden aumentar o reducir el presupuesto de desarrollo. Estos cambios que efectúan a tiempo después de las revisiones entregables intermedias, por lo general disminuyen los costos de futuras correcciones para MEDIAFACTO LTDA, lo cual aumenta aun más su valor en nuestra metodología de desarrollo a terceros.

Uno de los aspectos más importantes de la fase de implementación es el esquema de pruebas y calidad que impone MEDIAFACTO LTDA a sus productos. Este obliga inicialmente a los ingenieros de desarrollo a efectuar pruebas de unidad (unit tests) inmediatamente después de la programación del código con el fin de descubrir cualquier error lógico trivial que cause un funcionamiento inesperado del sistema. Los errores lógicos son ellos que no detienen el funcionamiento del programa, que no causan un error pero que si causan un funcionamiento inesperado, en otras palabras que hace lo que no debe. Estos errores son los más complejos de solucionar pues su existencia no es obvia pero si persistente a menos que el ingeniero la experimente. Cada clase o ensamble del sistema es sometida al examen de pruebas de unidad para asegurar la confiabilidad y funcionalidad a nivel de unidad.

Cuando las distintas clases o componentes pasan los exámenes de unidad estos se combinan y se conforman los módulos los cuales son sometidos a pruebas modulares (modular function tests). Después de que se cumplen las pruebas modulares estas son integradas y probadas otra vez para asegurar un ejecución suficiente y comprobada de acuerdo con los requerimientos. Eventualmente, cuando la integración es completa se efectúa una prueba de sistema que involucra toda la aplicación la cual debe pasar pruebas funcionales, de desempeño y de carga o estrés asegurando asi que todos los requerimientos del cliente se cumplan. El resultado es una versión alfa de la aplicación o producto la cual se puede enviar al cliente para su revisión.

Entregable: Versión alfa de la aplicación.

Prueba de Calidad y Funcionamiento – Versión Beta

La siguiente fase comprende la prueba de aseguramiento de calidad y la producción de una versión beta del producto. Acá se incluyen pruebas de calidad extensas, donde el código fuente es revisado y validado por consistencia y funcionalidad. La responsabilidad del equipo de aseguramiento de calidad es detectar cualquier desviación del sistema durante las pruebas y revisar el cumplimiento y consideración de todos los requerimientos específicos acordados con el cliente. Cualquier error (bug) es detectado y solucionado efectuando todos los cambios necesarios.

Después de que el sistema pasa todas las pruebas rigurosas y es aprobado por el departamento de aseguramiento de calidad la versión Beta de la aplicación se ofrece a consideración del cliente. Esta versión se instala en el ambiente final donde va a residir la aplicación, la cual provee el cliente en muchos casos, y se hacen las verificaciones y revisiones adicionales del caso. Durante esta etapa MEDIAFACTO LTDA recoge la retroalimentación efectuada por parte del cliente y se hace cualquier corrección que sea necesaria. Lo ideal es que la planeación funcional que se hace en las fases anteriores sea tan rigurosa que durante esta etapa el cliente no encuentre la necesidad de efectuar cambios mayores a la implementación. La versión beta es aprobada y aceptada por el cliente lo que se convierte en la versión definitiva lo que oficializa las etapas de implementación y da lugar al comienzo de la fase de entrega.

Entregable: Acta de aprobación de la versión beta.

Despliegue y Versión Final

La fase de entrega de la versión final comprende todas las actividades de entrega, instalación y despliegue del producto. Después de que la aplicación es instalada y configurada en su sitio de despliegue se hace un seguimiento cercano a su funcionamiento y el desempeño del sistema es monitoreado. MEDIAFACTO LTDA se asegura de responder con inmediatez a cualquier eventualidad que se reporte para asegurar una completa satisfacción del cliente.

Durante esta fase MEDIAFACTO LTDA se encarga de apropiar el conocimiento necesario al cliente sobre el funcionamiento y operación del producto. Así mismo efectúa el entrenamiento del personal y provee la documentación técnica y de uso del producto si asi lo requiere el cliente.

Soporte Técnico y Expansiones

Una vez la solución final ha sido desplegada , MEDIAFACTO LTDA prove e el soporte para el product según lo estableció el cliente en sus requerimientos. Durante este periodo, si corrige cualquier error adicional que se detecte.

Posteriormente a la terminación del periodo de soporte el cliente puede encontrar necesario en desarrollar y expandir aun más las funcionalidades de la aplicación para así asumir los nuevos retos que enfrente en el cumplimiento de sus objetivos de negocio. Mediante un contrato adicional MEDIAFACTO LTDA puede proveer un soporte extendido o un servicio de expansión de las funcionalidades de la aplicación original.