Nuestros procesos
Todo proyecto que no sigue una metodología, está condenado si no al fracaso, a entregarse con baja calidad. Con este propósito, hemos implementado una metodología basada en 3 procesos principales: mapa de diseño de la solución, mapa de desarrollo y mapa de ciclo continuo.
Mapa de diseño de la solución
Todos tenemos en la mente al famoso programador solitario que salva al mundo en las películas, qué es un genio de la informática, con una velocidad impresionante para teclear código. O el famoso gurú de la informática al estilo de Steve Jobs, Bill Gates o algún otro. Nos han vendido la idea de que los programadores son los grandes genios que resuelven todos nuestros problemas con solo sentarse horas a escribir miles de líneas de código. En la práctica, la realidad es distinta. ¡Las soluciones se realizan en un documento de word!
La solución se basa en la observación y documentación, en hacer preguntas e indagar. La primera actividad es el “Análisis del negocio”. Analizamos el flujo de proceso, donde inicia y dónde termina, cuales son las entradas y cual es el producto final. ¿Qué documentos están involucrados? ¿Qué valor aportan estos documentos? ¿Cuáles son los roles de los empleados y qué actividades/responsabilidades desempeñan?
Un sistema se desarrolla para resolver uno o varios problemas. Después del análisis se debe documentar correctamente cuál o cuáles son los problemas de la empresa.Al construir una casa se resuelve un problema de vivienda. Al adquirir un vehículo resolvemos un problema de transporte. Al desarrollar un sistema ¿qué problema estamos resolviendo?
Como producto de este proceso, debemos obtener los Casos de Uso y el prototipo. Los casos de uso son documentos donde se detallan cuántos módulos se van a desarrollar, qué procesos realiza, qué datos entran, como se procesan y cuál es el resultado de dicho proceso. El prototipo es un documento donde se muestran visualmente las pantallas del sistema.
Por último el cronograma de actividades se propone en esta etapa. Se define la lista de actividades a realizar, se proyecta contra un calendario y se crea un cronograma, que incluye los alcances del proyecto, las etapas de desarrollo, pruebas y liberaciones.
Con estas actividades se cierra el primer proceso. Cabe mencionar que en esta etapa los entregables son documentos y no se ha iniciado la codificación de software. Este paso es sumamente importante porque es aquí donde se crea la solución a nivel conceptual.
Mapa de desarrollo
En el mapa de desarrollo tenemos como datos de entrada, los documentos del flujo anterior, los casos de uso y los prototipos. Esta documentación es la solicitud formal de qué se debe desarrollar, cuantos módulos, que hacen, bajo que reglas operan y visualmente cómo debe verse el producto final. No se puede iniciar a programar si no se tiene el conocimiento necesario de qué es lo que se va a entregar.
El primer paso es, el entendimiento de la solución. Esto significa que los programadores deben involucrarse en el proyecto, iniciaran actividades de lectura y comprensión de la documentación entregada, harán preguntas y se realizarán sesiones -video llamadas- de entendimiento en las cuales se le traspasará el conocimiento que el equipo de análisis obtuvo.
El siguiente paso es planear la arquitectura. En este punto ya entendemos el problema y entendemos la solución que se propuso. Se debe cuantificar el tamaño de la solución y dividirlas en partes más pequeñas. Responder preguntas como: ¿Qué arquitectura es la más conveniente? ¿Es una aplicación móvil o un servicio web? ¿En qué tipo de servidor se debe hospedar? ¿Qué patrones de diseño deben implementarse? ¿Qué lenguaje es más conveniente? Recordemos que una arquitectura limpia, patrones de diseño correctos y buenas prácticas de programación producen aplicaciones de alta escalabilidad, estabilidad y disponibilidad.
Después de las actividades mencionadas, se revalida el cronograma y se verifican los plazos de desarrollo. Se inicia la asignación de actividades y se procede a iniciar con la configuración de arquitectura. Se contratan servidores, dominios y todo lo necesario para realizar las tareas de infraestructura. En paralelo se propone una base de datos inicial que puede ser parcial o completa. Esto dependerá del tamaño del sistema, el número total de sprints y los requerimientos de cada uno.
Para el desarrollo seguimos los lineamientos del marco de trabajo Scrum, el cual plantea como unidad de medida los sprints. Cada sprint puede durar entre 15 días o hasta un mes, según se requiera. Con la liberación de sprint se busca realizar entregas periódicas que aporten valor a la empresa. Si el objetivo se logró, se dice que se ha realizado un incremento en el producto y, con cada sprint, se realizan más incrementos en el valor del software y por ende, en los servicios que ofrecen nuestros clientes.
Mapa de ciclo continuo
El mapa de ciclo continuo define tareas que se pueden llevar a cabo después de la liberación del proyecto. Por lo regular competen en tareas de mantenimiento, como pueden ser renovación de servicios con proveedores. Migraciones a otras plataformas. Actualizaciones de software, como desarrollo de nuevos módulos, funcionalidades o reglas de negocio. Respaldos de Bases de datos.