El diseño frente a la posibilidad de cambios

Columna de opinión de 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.
Tags: , ,

Epifanio Blanco
24 julio, 2014

Réplicas digitales allanan el camino de salida a mercado a clientes de Tetra Pak

Tetra Pak colabora con Hexagon en la implementación de una Plataforma de Ingeniería Industrial Inteligente por la cual se …

Seguir leyendo //

Trimarchi sigue convocando a la rebeldía, a lo bello y al mensaje inspirador

Desde hace un lustro Portinos Agencia Creativa Digital acude a Trimarchi -el encuentro interdisciplinario de diseño- Y esta vez …

Seguir leyendo //

Encuentro anual de Image Campus con la educación creativa

Este 1 y 2 de noviembre se realiza en Buenos Aires el Encuentro Núcleo Edición 2019 Se trata de …

Seguir leyendo //

Leonardo Da Vinci fuente de inspiración para los jóvenes, 500 años después

En todo el mundo se realizan diversas actividades que conmemoran los 500 años de la muerte de Leonardo Da …

Seguir leyendo //