¿Por qué realizar una consultoría IT? ¿Qué nos aporta?

Gonzalo García19-Nov, 2019

Es evidente que vivimos en un entorno cada vez más tecnológico en el que muchos de nuestros hábitos terminan por tornarse en acciones sobre determinadas plataformas o herramientas que, hace no tanto tiempo, realizábamos de forma analógica. En paralelo, cada vez más empresas invierten en digitalizar sus procesos en busca de reducir costes, optimizar recursos y mejorar sus productos o servicios.

Consultoría IT: Estrategia y Análisis

Para poder llevar a cabo transformaciones digitales de alto impacto sin morir en el intento es necesario, y cada vez más común, hablar de fases de consultoría tecnológica que brindan una capa estratégica y de análisis a la hora de embarcarse a realizar un desarrollo de software específico.

Si bien es cierto que la consultoría o la estrategia está presente en otros sectores con un peso relevante, podemos decir que en el ámbito tecnológico muchas veces y todavía a día de hoy se ve por mucha gente como algo poco demandado o necesario. Seguramente, y más de una vez, todos hemos pensado en alto frases como “Es sencillo”, “Yo creo que está claro” o “Eso lo iremos viendo sobre la marcha”.

Sin embargo, cabe destacar que un proceso de producción, independientemente del ámbito o disciplina, comparte problemática de una serie de factores como son el alcance, las entregas, los esfuerzos, los tiempos, el coste y objetivo esperado, sobre todo cuando hablamos de proyectos de un considerable espacio temporal.

Este artículo es un llamamiento a la realización de fases de consultoría y análisis, que evitan (o al menos reducen en gran medida) el caos durante la producción, porque el caos ¡también tiene un coste! Y, normalmente, este coste es mayor al de invertir en un análisis adecuado.

Áreas de interés

Si pensamos en las áreas en las que tiene interacción la realización de un software específico, nos damos cuenta de que, habitualmente, se implican desde la dirección o gerencia hasta los puestos más operativos o funcionales pasando por la capa financiera o de marca de la compañía.

Cuando hablamos de transformar digitalmente, hablamos de cooperación necesaria entre los agentes implícitos en la transformación que vendrá. Solo de esta forma podremos tener una visión global y realista en la fase de consultoría, que permita a la empresa encargada de realizarla, analizar debidamente el impacto del software a desarrollar y el camino para lograrlo.

Algunos de los agentes/departamentos activamente implicados en un proceso de consultoría pueden ser:

Negocio

Es el eje de todas las cuestiones globales. Deberá definir los resultados esperados a la finalización de la producción del software a desarrollar, así como los objetivos y tiempos necesarios para el negocio. Además, deberá tomar ciertas decisiones de concepto, según comience la definición de requerimientos.

Financiero

Con el resultado de la consultoría, obtendrá el músculo económico necesario no sólo desde el punto de vista del desarrollo, sino también el coste de mantenimiento de la plataforma o el de licencias asociadas o servicios de cloud necesarios para la continua operatividad del software a desarrollar, así como la viabilidad.

Sistemas

Desde el equipo técnico o de sistemas se deberá facilitar a los consultores toda la información relevante de los procesos tecnológicos actuales en el momento de realizar la consultoría. Normalmente, juegan un papel crucial en la migración de la información de la que la empresa disponga, que se deberá migrar al nuevo sistema a desarrollar.

Sea cual sea el origen o formato de esos datos, tendrán una lógica aplicada en su guardado que deberá ser facilitada en la fase de consultoría para abordar correctamente a futuro esa migración de datos.

Marca

La transformación digital también pasa por trasladar la identidad corporativa a los entornos digitales donde la compañía está presente, siendo importante que el producto a desarrollar lleve consigo la imagen, el tono y el mantra de la marca.

Otros

Como se comentaba antes, cualquier persona que forme parte activa de los procesos a digitalizar tendrá también un papel importante en la definición y alcance de los mismos. ¿Quién conoce mejor una tarea específica si no el personal que la usa día a día?

¿Cuál es el proceso de trabajo?

La fase de la consultoría tecnológica pretende separar la reflexión sobre el producto de la programación del mismo. Con ello, se puede dimensionar correctamente el producto, su alcance, tiempos y coste; despejando las dudas que puedan ocasionar a futuro retrocesos en la producción o ambigüedad en cuestiones realmente críticas para el negocio.

Para ello, se suelen seguir los siguientes pasos (siempre dependiendo del contexto, cliente y entorno):

1. Kick Off

Toma de contacto con los implicados en el proyecto: gerentes, empleados y/o proveedores. Serán un conjunto de reuniones para planificar, reestructurar o alinear objetivos. Es el inicio de todo y se tratará de abarcar el conjunto de hitos principales del sistema o proyecto a desarrollar.

2. Especificación funcional

Se refiere a la definición de los requerimientos funcionales del sistema. Son aquellos que describen cualquier actividad que este deba realizar, es decir, el comportamiento o función particular de un sistema o software cuando se cumplen ciertas condiciones.

3. Requisitos no funcionales

Se trata de identificar aquellos requisitos que no se refieren directamente a las funciones específicas suministradas por el sistema (características de usuario), sino a las propiedades del sistema: rendimiento, seguridad, disponibilidad. En otras palabras, no hablan de lo que hace el sistema, sino de cómo lo hace.

4. Roles de usuario y permisos

Se analizarán los tipos de usuario existentes en el sistema, así como la asociación de estos con los requisitos funcionales. Esto es lo que se conoce comúnmente como permisos por roles o tipos de usuarios (por ejemplo: el SuperAdmin podrá realizar todas las funciones disponibles, mientras que el gestor de contenido o el personal de ventas no).

5. Casos de uso

Se preparará un listado detallado de casos de uso que tendrá el producto. Esto aportará luz en cuál será la mejor forma de diseñar los flujos o procesos de la herramienta, teniendo en cuenta cual será el uso de la misma.

6. Versiones del producto o Roadmap

Se diseña el plan de versiones del producto. Es una planificación del desarrollo del software, con los objetivos a corto y largo plazo, incluyendo un cronograma de tareas temporal y la asignación de los recursos necesarios para su posterior ejecución.

7. UI / UX

Serán entregables de esta parte los wireframes y diagramas de flujo, así como la interacción del usuario con el producto y prototipado. Se detalla visualmente la navegación de cada tipo de usuario y acción en el producto a desarrollar.

8. Modelo de datos

Abarca el diseño técnico de los datos y su estructura, dotando así una matriz relacional o no relacional en el que confluyen todos los datos del sistema. También entran en esta parte diagramas de flujo que simplifiquen no sólo la estructura, sino el ciclo de vida de los datos.

Conclusiones y ventajas de realizar una consultoría IT

Pueden deducirse las ventajas que, en definitiva, aporta una fase de consultoría y análisis a la hora de acometer un proyecto o transformación tecnológica. No obstante, y resumiendo, podemos decir que la práctica y el estudio del producto a desarrollar nos aportará una visión global muy importante para la correcta toma de decisiones.

También nos ayudará a conocer la envergadura del proyecto. Puede que lo que parece muy sencillo contenga una gran cantidad de pasos a dar y, por tanto, requiera de mucho tiempo y esfuerzo. Por el contrario, una cuestión aparentemente compleja bien atacada puede resultar corta en tiempo y/o esfuerzos.

Adelantarse a preguntas complicadas de resolver en una charla de café o reunión informal recae directamente en una reducción de costes. No hay que olvidar que una vez arrancado el desarrollo de un producto, cualquier giro inesperado sobre la programación puede terminar por romper desarrollos ya realizados y, por ende, acarrear sobrecostes tanto para el cliente como para el proveedor.

Todo este análisis, así como un roadmap en firme, facilita enormemente la compleja tarea para el cliente de tener un control del estado actual del proyecto, así como para los equipos de desarrollo en la ejecución del desarrollo.

Además con la elaboración de un roadmap, validación de wireframes, requisitos y un presupuesto realista, el cliente es partícipe y cercano desde el minuto 1 en el proyecto, sintiéndose y actuando activamente en el desarrollo del mismo, lo que podemos traducir en una relación sana para ambas partes (cliente y proveedor – parte interesada y el equipo que lo liderará).

El conjunto de pasos y ejemplos de este artículo es sólo un acercamiento básico a lo que una consultoría tecnológica básica pretende abarcar, en la que pueden entrar muchos y diversos aspectos, dependientes del proyecto o sector sobre el que se trabaje.

Gonzalo García

Lead Software Developer & Product Management