Conceptos básicos de la reutilización de componentes para acelerar los desarrollos
10 Feb 2022
El éxito de una factoría de software radica en la capacidad de esta para estandarizar sus servicios, productos o procedimientos. Para ello deben de identificarse “patrones” de uso común que puedan reutilizarse, creando la uniformidad con la que mejorar la eficiencia en su ejecución, que a su vez contribuirá en la reducción de costes como una consecuencia directa. Del mismo modo, estas premisas pueden ser aplicables a los procesos de desarrollo de software de cualquier corporación, donde una de las implementaciones que contribuirán a tal fin, es la creación de un catálogo de componentes reutilizables.
para lograr todo esto será necesario alcanzar un buen diseño para la reutilización de componentes.
El Sistema de Diseño corporativo como base de la reutilización de componentes de UI
El desarrollo de software tiende a la aplicación reiterada de patrones de diseño de software con el objetivo de estandarizar el modo en que se resuelven las necesidades cubiertas por los productos por medio de diferentes características. El apartado técnico se complementa con la experiencia de usuario que se define a través de un Sistema de Diseño. Metafóricamente podemos decir que este sistema confecciona “el mecanismo” de comunicación con el que los usuarios aprenden a interaccionar con nuestras aplicaciones para aprovechar todo su valor.
La unión de los patrones de arquitectura de software y la estandarización de la experiencia de usuario y diseño, permite a las organizaciones aplantillar el desarrollo de software en aras de acelerar la construcción de productos y generar sinergias entre los desarrollos actuales y los requerimientos futuros a la vez que se reducen los costes de mantenimiento y se disminuye la probabilidad de aparición de errores. Esta estrategia tiene numerosas formas de implementación y una de ellas es la creación de un “catálogo de componentes” corporativo que suplemente la capacidad out-of-the-box del framework de desarrollo original.

Conceptos básicos: definamos un lenguaje común sobre el contexto del catálogo de componentes
A continuación, simplificando mucho la realidad sobre la que aplican, y con el objetivo de establecer una base común de entendimiento, vamos a definir brevemente los conceptos básicos sobre los que profundizaremos en secciones posteriores.
Dicho esto, podemos decir que entendemos un Catálogo de Componentes de Interfaz de Usuario como un activo corporativo, producto o herramienta que concentra todas las vistas (así como sus respectivas variantes, implementaciones software, documentación, estados, etc.) con las que se ensamblan los frontales de los aplicativos que utilizan los usuarios. Dicho esto, podemos anticipar que este producto debe ser el resultado de la colaboración estricta y sincronizada entre las áreas de Diseño, Ingeniería y Negocio. Por tanto, para su implantación será necesario definir el marco de trabajo común entre éstos y establecer las nuevas reglas, timings, flujos de aprobación y posibles limitaciones con las que operarán como un ente único. Este modelo operativo estandarizado, muy común en grandes corporaciones, es generalmente conocido como Libro de procesos, y en él quedan perfectamente definidas las prácticas, herramientas, normativas, controles y otros procesos afectados, para que las necesidades de cualquiera de estos equipos peticionarios se encaucen adecuadamente sin generar impactos negativos en los equipos destinatarios.
El Catálogo de Componentes como resultado de colaboración estricta entre las áreas de Diseño, Ingeniería y Negocio de una compañía
Bajo la responsabilidad del equipo de Diseño o UX/UI (y Marketing), se definirá el Sistema de Diseño. Este activo está formado por herramientas colaborativas para la generación de las plantillas de definición visual de los componentes reutilizables, guiadas por estándares, que ayudarán a la compañía a desarrollar mejores experiencias de usuario y a fortalecer la marca del producto. El uso de estas herramientas nos ayuda a mejorar la consistencia de los productos y a crear experiencias digitales que escalen de forma controlada y consistente.
Bajo la responsabilidad del equipo de Ingeniería (también conocido como Arquitectura, Gobierno u Oficina de componentes, dependiendo de la estructura de la compañía) se construirá el Catálogo de Componentes software asociados a la representación visual definida en el Sistema de Diseño. En este marco de trabajo existirá una asociación 1 a 1 entre cada componente visual y el respectivo componente software asociado, estando en todo momento las propuestas alineadas entre los catálogos de componentes de diseño y software. Para ello se utilizarán las buenas prácticas de desarrollo, documentando cada uno de sus componentes, garantizando la calidad, sincronizando los cambios con la propuesta visual y analizando el grado de reutilización de los desarrollos locales. Del mismo modo, este equipo establecerá los cauces para la aprobación de modificaciones sobre el catálogo, dirigirá su evolución y obsolescencia e identificará las distintas tipologías de componentes, así como sus interdependencias. Este equipo también guiará y dará soporte a las necesidades locales de los Squads de trabajo asociadas a las iniciativas de negocio.
Bajo la responsabilidad de las distintas Unidades de Negocio se identificarán las iniciativas de valor sobre las que construir o ampliar las capacidades de los productos de la compañía. Para ello, Negocio con la ayuda de Diseño, proyectará los prototipos visuales limitándose al uso de los componentes visuales existentes en el Sistema de Diseño y garantizará su validez y completitud funcional antes del inicio de los trabajos de desarrollo.
Pensar, diseñar y construir con componentes básicos
Según la dimensión o el nivel de dependencia que desarrollan entre sí los componentes software de un Catálogo de Componentes, vamos a diferenciar los Componentes Básicos, como las unidades mínimas de construcción de interfaces visuales, lo que les proporcionará un mayor grado de reutización. La característica principal de estos componentes es que son el primer nivel de capacitación sobre el framework de desarrollo y conformarán la base para la composición de componentes más complejos que operarán como una unidad de nivel superior. En un orden de magnitud superior podremos encontrar Widgets, Journeys y Aplicaciones, según el nivel de atomicidad o globalidad que se les confiera a estos componentes.
Podéis consultar el artículo previo Reutilización: más allá del catálogo de componentes. Inicio
En breve publicaremos el siguiente artículo relacionado profundizando en esta temática.