Arquitectura

La arquitectura engloba no solo las relaciones que existen entre las clases, los módulos, los componentes o los sistemas individuales sino que también abarca la elección de lenguajes, frameworks, servidores o bases de datos y la estructura global del propio desarrollo (configuración del entorno (desarrollo, test, integración y producción), control de código fuente, gestión de dependencias, integración continua y despliegues). Al trabajar junto a usted, podemos ayudarle a definir la arquitectura de un nuevo sistema o definir cómo debe cambiar la de un sistema ya existente.

Cuando se hacen modificaciones sobre un sistema existente o nuevo en fase de desarrollo estas tienen un riesgo asociado de tal forma que una de las áreas en las que nos centramos es en asegurar que tenemos una estrategia que identifique y mitigue los riesgos de cualquier cambio. Fundamentalmente, esto quiere decir que necesitamos tener un sistema de control de versiones, un gestor de incidencias / tareas / errores, pruebas unitarias, de integración, funcionales y de rendimiento automatizadas, al menos un servidor de integración continua y una planificación clara y bien definida de entregas.

Creemos firmemente en el uso de patrones para ayudar a describir y estructurar, a distintos niveles, los sistemas en los que trabajamos. Los patrones nos permiten aplicar soluciones comunes a problemas comunes a la vez que aportan un vocabulario estándar con el que podemos comunicarnos acerca del diseño de los sistemas que desarrollamos. Eso no significa que apliquemos los patrones ciegamente e intentemos encajar toda solución en ellos, por el contrario usamos patrones para que nos ayuden a llegar a nuevas soluciones o a refactorizar las existentes y entonces evaluar sus puntos fuertes y débiles. El proceso de pensar sobre un problema en base a patrones, que finalmente decides no usar, a menudo permite el desarrollo y refinamiento sucesivo de soluciones más efectivas.

Podemos ayudarle a decidir el conjunto de herramientas adecuado para cada tarea, en cualquier fase del proceso de desarrollo en la que estén sus proyectos, ya que sabemos por experiencia qué hay que tener en cuenta al elegir estas herramientas según una serie de requisitos. También estamos acostumbrados a facilitarle a usted o a sus equipos de desarrollo el proceso de adaptación a estas herramientas y también a adaptar estas a sus procesos ya existentes de forma que aproveche el máximo tanto de las herramientas como de los equipos. Generalmente, lo primero resulta más fácil pero como cada caso es distinto, cuando trabajemos juntos podrá beneficiarse de nuestro criterio y experiencia para encontrar un para encontrar un término medio que satisfazca a todos.