baufest Por Ariel Martín Bensussán, Software Development Practice Manager de Baufest Para toda persona que trabaja en diseño, sin importar de qué objeto o creación se trate, los cambios son una parte inevitable del proceso. Algunas disciplinas permiten una flexibilidad que hacen que los cambios ayuden a mejorar el producto final. Sin embargo, en otras, como la ingeniería o la arquitectura, estas posibilidades son más limitadas y deben estar mejor calculadas, ya que una modificación en un etapa puede desestructurar el objeto final. El desarrollo de software forma parte de este grupo. Un cambio es un pedido que realiza el cliente a través del cual solicita una modificación de un requerimiento previamente definido o para añadir uno nuevo. Para evitar que un proyecto se hunda en el caos absoluto ante cualquier pedido será necesario prepararse para gestionarlos de la mejor forma posible para diseñar una aplicación robusta y permeable a las modificaciones, con el objetivo de minimizar los impactos negativos que estos pudieran ocasionar en otras áreas o módulos que la integran. Teniendo en cuenta esta realidad, habrá que trabajar desde el inicio en el armado de la arquitectura, en el diseño de un módulo y en la programación de una funcionalidad, para que al llegar un pedido de cambio se neutralice un posible impacto negativo de su implementación. Tomar acciones tempranas ayuda a diseñar y a construir una aplicación preparada para recibir cambios, es decir, que sea a la vez permeable a las modificaciones y robusta en su desempeño a medida que crece. Luego de varios años y teniendo en cuenta las diferentes etapas de diseño y construcción de una aplicación, en Baufest elaboramos una lista de criterios para que al momento de tener que implementar uno o más cambios, se minimice el riesgo y mitigue el impacto negativo de estas tareas. Como primera medida, hay que pensar y diseñar la arquitectura de la solución y tener en cuenta que a medida que se avance existen grandes probabilidades de sufrir modificaciones. Es fundamental entender que la arquitectura es dinámica, y que debe ser lo primero adaptable al cambio en un sistema. Para asegurarse de tener un mejor diseño desde el inicio, y antes de comenzar con las tareas de construcción de la aplicación, será fundamental consensuar la arquitectura con el equipo de trabajo y, en caso que lo haya, con el equipo técnico de nuestro cliente y tener en cuenta las siguientes recomendaciones:

  • Plantear la solución de forma modular, identificando de manera temprana las funcionalidades que conforman la aplicación para lograr un bajo acoplamiento entre ellas. Si hubiera que integrar dos o más funcionalidades, una buena estrategia a seguir es utilizar interfaces que nos abstraigan de los detalles de la implementación particular de cada una de ellas.
  • A fin de mantener homogénea la solución, fomentar que todo el equipo hable el mismo idioma para mitigar riesgos; es esencial definir y comunicar los estándares de construcción y codificación que se van a utilizar, y también estandarizar y promover el uso de Patrones de Arquitectura y Diseño.
  • A la hora de diseñar la solución, es muy importante hacer una clara separación entre las diferentes capas que van a conformar la misma. Es muy importante establecer una correcta separación entre la interfaz de usuario y la lógica de negocio. Es más sencillo y menos riesgoso hacer las modificaciones si los componentes de la solución se encuentran correctamente separados.

Como todo diseño, el proceso de creación es una tarea compartida; pensar los detalles desde el inicio es clave para llegar de manera exitosa a la meta.

Ariel Martín Bensussán, Software Development Practice Manager en Baufest.

Es Ingeniero en Sistemas de Información, graduado en la UTN Buenos Aires en 2008. Trabaja en IT desde hace más de 10 años, especializándose en Arquitectura y Diseño de Aplicaciones sobre Tecnologías Microsoft .Net. Además está reconocido como Microsoft Certified Professional (MCP) y desde 2007 trabaja en Baufest desempeñándose actualmente como Practice Manager y Technical Leader, gestionando y coordinando diversos Proyectos .Net.

Acerca de Baufest

Empresa internacional de origen argentino proveedora de servicios y soluciones de IT, Baufest cuenta con seis oficinas distribuidas en Argentina, México, Estados Unidos y España. Con más de 20 años de trayectoria y una estructura de más de 300 empleados, acumula más de 1.000 proyectos innovadores de soluciones de negocio para más de 200 empresas líderes en 50 países. Baufest es una de las cinco empresas de desarrollo de software con mayor facturación en Argentina de acuerdo al informe de mercado que elabora IDC, es considerada por sexto año consecutivo una de las mejores empresas para trabajar en el país por el Great Place to Work Institute, es reconocida como uno de los proveedores de servicios de IT con mejor imagen, según el ranking de la revista Information Technology, y fue distinguida por la Cámara de Empresas de Software y Servicios Informáticos de Argentina (CESSI) y la Fundación Sadosky con el premio Sadosky a la Trayectoria Empresaria 2011. Además, en julio de 2013 recibió la calificación Investment Grade otorgada por la agencia de riesgos Standard & Poor’s, un reconocimiento que coronó dos décadas de dedicación y trabajo intenso.

Website de Baufest

Fundador, sysadmin y diseñador de TecnoGaming como así también su propia empresa de hosting. Auto-didacta y con mucha pasión por los videojuegos ama tanto la tecnología como la naturaleza. Vive en su casa de campo en Merlo, San Luis.