[en] Most development teams operate without having an architecture that allows them to know how they have to do development tasks at all times. This goal of this work is aimed at defining an architecture with the goal of facilitating the way programmers in a team work. The scope of this architecture is the development of web applications with Python using the framework Django and mobile applications in Flutter. When defining this architecture, special attention will be given to the role of programmer, defining the working conditions and tools that he uses to guarantee the best productivity, as well as improving what is known as developer experience (DX Developer Experience). Another objective is to define the procedures so that the development is safe since with the increase of cybercrime it is necessary to think that the development has to fulfill rules regarding security. Another objective is to define the procedures so that the start-up of the software is fast and reliable since each time the teams are asked to deploy functionality more quickly. Another objective is to establish procedures that guarantee the quality and clarity of the software. We must think that it is increasingly necessary to incorporate new programmers and that these are productive as soon as possible and the quality and clarity of the software can help this. Another objective is to minimize the number of errors in the software developed. Within the architecture we must define the procedures to test the software. In production we must use tools that allow us to detect errors as soon as possible and thus be able to solve them. Another goal is to have tools to define various production environments effectively. As for mobile applications, the objective is to define automated deployment procedures for the Android and IOS store. As a context of this work we define the realization of the architecture for a development team of 10 people with a development manager. They must develop web applications with the Django framework and mobile applications with the flutter framework. The database they have chosen is Postgres. The production environments will be in the Google Cloud supported by the Kubernetes container orchestrator.

[es] La mayoría de los equipos de desarrollo funcionan sin tener una arquitectura que les permita saber cómo tienen que hacer las tareas de desarrollo en cada momento. Este trabajo, está orientado a definir una arquitectura con el objetivo de facilitar la manera de trabajar de los programadores de un equipo. El ámbito de esta arquitectura es el de desarrollo de aplicaciones web con Python y aplicaciones móviles en Flutter. Al definir esta arquitectura se prestará especial atención al role de programador, definiendo las condiciones de trabajo y herramientas que use para garantizar la mejor productividad, así como mejorar lo que se conoce como experiencia de desarrollador (DX Developer eXperience). Otro objetivo es de definir los procedimientos para que el desarrollo sea seguro ya que con el aumento de cibercrimen hay que pensar que el desarrollo tiene que cumplir reglas en cuanto a seguridad. Otro objetivo es el de definir los procedimientos para que la puesta en producción del software sea rápida y fiable ya que cada vez se pide a los equipos desplegar funcionalidad más rápidamente. Otro objetivo es el establecer procedimientos que garanticen la calidad y claridad del software. Hay que pensar que cada vez más es necesario incorporar nuevos programadores y que estos sean productivos cuanto antes y la calidad y claridad del software puede ayudar a esto. Otro objetivo es el de minimizar el número de errores en el software desarrollado. Dentro de la arquitectura debemos de definir los procedimientos para probar el software. En producción debemos de usar herramientas que permitan detectar errores lo antes posible y así poder solucionarlos. Otro objetivo es el de tener herramientas para definir varios entornos de producción de manera efectiva. En cuanto a las aplicaciones móviles el objetivo es definir procedimientos de despliegue automatizados para los "store" de Android e IOS. Como contexto de este trabajo definimos el realizar la arquitectura para un equipo de desarrollo de 10 personas con un responsable de desarrollo. Estos deben de desarrollar aplicaciones web con el framework Django y aplicaciones móviles con el framework flutter. La base de datos que han elegido es postgres. Los entornos de producción estarán en el Cloud de google soportados por el orquestador de contenedores kubernetes.