Caso de éxito: LincolnSoft

Caso de éxito: LincolnSoft

Durante el año 2017 Lincoln S.A. nos contactó para que los ayudemos a diseñar la evolución tecnológica del sistema de gestión que venían utilizando hasta ese momento. Con mucha emoción ante el desafío, lo aceptamos y aquí queremos contar cómo fue esa aventura.

EPSILON: Una lujo de los años 90

El Sr. Jorge Nasta, sin duda un adelantado para su época, fue un pionero en los años 90 diseñando los procesos y programando codo a codo el sistema que se convertiría en el centro del funcionamiento de una de las empresas de retail más importantes del Paraguay, Lincoln S.A.

El sistema fue bautizado como Epsilon y fue creciendo módulo a módulo de acuerdo a la realidad del negocio. Emulando un proceso que hoy enmarcaríamos dentro de las metodologías ágiles de desarrollo el sistema fue creciendo durante 30 años.

El sistema llegó a abarcar todo el funcionamiento de la organización: compras, ventas minoristas y mayoristas, tesoreria, manejo stock y logística de pedidos para su preparación y distribución.

El sistema funcionaba sobre DOS, estaba escrito en el lenguaje Clarion y almacenaba la información utilizando sistemas de archivos.

Fotografía de la interfaz del sistema Epsilon en una terminal de trabajo

La tecnología y el negocio

En el 2017 Lincoln contacto a Sodep con la inquietud de que la tecnología que estaban utilizando ya no era la adecuada para los siguientes 30 años y que las operaciones del negocio podrían verse afectadas.

Como primer acercamiento, realizamos una Revisión de Arquitectura además del relevamiento en profundidad del sistema actual, para comprender cómo los usuarios dentro de la empresa realizaban los diferentes procesos del día a día.

Como resultado de este análisis, se diseñó un plan de acción para avanzar sobre los 2 frentes más relevantes:

  • El desarrollo de un nuevo sistema de gestión.
  • La creación de un departamento de informática que le permita a Lincoln sostener este proceso a largo plazo de manera interna.

LincolnSoft: La evolución

Arrancando el proceso de desarrollo en el 2018 lo inicial fue definir el stack de tecnologías con el que avanzariamos. Sabiendo que teníamos plena libertad para elegir la tecnologías, realizamos un investigación para identificar aquellas que le permitirían a Lincoln sostener este proceso a largo plazo con recursos locales e internacionales.

El resultado final consistió en un OpenStack con: Java + Spring Boot, Javascript + React y PostgreSQL para la base de datos. Es importante mencionar que estas son las tecnologías principales, a estas hay que agregar luego algunas librerías y herramientas para automatizar procesos, procesos de compilación, empaquetado, etc.

El sistema anterior fue desarrollado de manera monolítica con una arquitectura cliente-servidor, con varias versiones del sistema instaladas en diferentes computadoras y sistemas de archivos que debían actualizarse en varios lugares. Todo esto era usual de los años 90s.

LincolnSoft nace bajo los conceptos de una arquitectura basada en servicios. El sistema se separa en 2 componentes principales:

  • Un componente Backend que contiene la lógica del negocio y expone una serie de servicios que permiten modificar los datos.  
  • Un componente Frontend Web bajo una arquitectura SPA que permite a los usuarios interactuar con el sistema por medio de pantallas en cualquier navegador Web.

De la Consola (pantalla negra) a la WEB.

Debido al cambio tan grande de paradigma, de la consola (popularmente llamada pantalla negra) a un ambiente Web con varios componentes, la inclusión del uso del mouse, etc.; uno de los desafíos primordiales fue el de diseñar las pantallas y sus flujos de uso de manera tal manera a reducir la fricción al cambio y mejorar los tiempos de uso.

Entrevistas con diversos usuarios nos hicieron comprender sus necesidades y las limitaciones que existían con el sistema anterior. Fuimos diseñando prototipos de las pantallas y flujos, realizando pruebas no funcionales de las mismas y de esta manera logramos aproximarnos a las versiones de pantallas y componentes ideales.

Sosteniendo el proceso

Para sostener el proceso de desarrollo a largo plazo y no generar una dependencia obligada de los proveedores para la evolución de LincolnSoft, ayudamos a Lincoln a montar su propio departamento de Tecnología.

Iniciamos con la posición principal, el de Gerente de Proyecto, esa persona se capacitó en todas las herramientas y procesos que utilizamos en Sodep para gerenciar los proyectos de desarrollos. A continuación se inició la búsqueda de nuevos desarrolladores, que fueron evaluados y capacitados por Sodep, hasta lograr que pudieran incorporarse al equipo de desarrollo de LincolnSoft.

Sodep siguió aportando desarrolladores para un trabajo en conjunto y realizando un traspaso de conocimiento a medida que avanzamos con los desarrollos.

Esta metodología nos permitió avanzar de acuerdo a las expectativas y al mismo tiempo dejar instaladas las capacidades internamente lo cual asegura la no dependencia de Sodep.

Pasando a producción

La estrategia elegida para la puesta en producción es la de marcar un día D en el cual se apaga el viejo y se utiliza el nuevo.

Para llevar esto adelante es primordial preparar y practicar el paso. Se definen ambientes de preproducción y se simulan escenarios de traspaso. Se definen puntos de control y sobre todo se capacita a un equipo técnico y de soporte para lidiar con los imprevistos que puedan surgir.

El paso evolutivo

Experiencias como la de Lincoln son únicas, enriquecedoras y desafiantes desde todos los aspectos que involucra a la puesta en producción de un sistemas.

Los aspectos van desde lo humano, con los usuarios, sus necesidades, desafíos, comodidades para lograr su trabajo, hasta los aspectos más técnicos como el lenguaje, arquitectura, carga, seguridad, devops, etc.

El desafío no es solamente para Sodep, sobre todo es un desafío para el cliente que se anima a pasar por un proceso de evolución tecnológica, en ocaciones puede ser largo pero significan las bases para alcanzar los objetivos del negocio de manera sostenida desde el presente en adelante.