De la Confusión a la Claridad: Aprovechando las RFC en Entornos de Alto Rendimiento

Rate this content
Bookmark

En entornos de alto rendimiento, el ritmo es implacable. Si bien es fácil tomar decisiones técnicas rápidas en equipos de desarrollo más pequeños, la dinámica cambia drásticamente al tratar con un equipo de 100 desarrolladores. Tomar decisiones técnicas significativas, especialmente aquellas relacionadas con la arquitectura, sin afectar a otros equipos se vuelve casi imposible.

En esta charla, compartiré mi experiencia en la estructuración de un proceso de RFCs en QuintoAndar. Profundizaremos en las RFCs, descubriendo por qué son una herramienta indispensable para las empresas que buscan mantener la excelencia técnica, incluso con una fuerza laboral considerable. Exploraremos cómo las RFCs facilitan la toma de decisiones técnicas a nivel superior, proporcionando una hoja de ruta clara para los cambios y empoderando a todos para navegar los riesgos con precisión.

This talk has been presented at TechLead Conference 2024, check out the latest edition of this Tech Conference.

Mateus Paulino
Mateus Paulino
10 min
15 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Mateus Palino de Quintana Roo presenta De la Confusión a la Claridad, Aprovechando las RFC en Entornos de Alto Rendimiento. Quintana Roo tiene como objetivo mejorar la calidad de entrega y reducir el tiempo de diseño a través de las RFC. Han creado un grupo llamado Asesores de RFC y se han centrado en capacitar a los puntos focales, capacitar a los gerentes y crear herramientas, guías y procesos. Mediante la implementación de iniciativas de capacitación personalizadas y la optimización de las reuniones de revisión de diseño, han aumentado el número y la calidad de las RFC, lo que ha resultado en mejores soluciones implementadas.

1. Introducción

Short description:

Mateus Palino de Quintana Roo presenta De Caos a Claridad, Aprovechando las RFC en Entornos de Alto Rendimiento. Quintana Roo, la plataforma de viviendas más grande de América Latina, tiene como objetivo mejorar la calidad de entrega y reducir el tiempo de diseño a través de las RFC. Se han centrado en empoderar a los puntos focales, capacitar a los gerentes y crear herramientas, guías y procesos. Una acción importante fue crear un grupo llamado Asesores de RFC, quienes asisten a otros e intercambian ideas.

Hola a todos. Aquí Mateus Palino. Soy de Brasil. También soy un ingeniero de software senior y líder técnico en Quintana Roo. Y estoy aquí para presentar esta charla, De Caos a Claridad, Aprovechando las RFC en Entornos de Alto Rendimiento. Así que primero que nada, me gustaría darles un poco de contexto sobre Quintana Roo y por qué las RFC son tan importantes allí. Quintana Roo es la plataforma de viviendas más grande de América Latina. Ya está presente en más de 50 ciudades brasileñas y ha comenzado a dar sus primeros pasos en el mercado internacional. Actualmente, cuenta con más de 5,000 empleados, incluyendo 1,000 personas en producto y tecnología. Por lo tanto, nuestro proceso de toma de decisiones de arquitectura necesita ser muy, muy eficiente.

Y es por eso que hemos creado una iniciativa llamada RFCs Asombrosas. Lo que esperamos lograr al final de la iniciativa. Nos encantaría ver una mejora visible en la calidad de nuestras entregas, reducir el tiempo invertido en diseño, las RFC como una forma de compartir conocimiento, colaboración y trabajo en equipo.

Para lograr eso, necesitábamos aumentar la densidad de personas técnicamente capaces de tomar excelentes decisiones de arquitectura. Y una forma de hacerlo es a través de las RFC. Pero escribir RFCs involucraba muchas, muchas áreas. Y es por eso que decidimos dividirlo en tres áreas principales. La primera área en la que íbamos a trabajar era empoderar a los puntos focales en cada tribu. Esto significa tener liderazgo técnico local que sean expertos en la materia y puedan brindar asistencia. Esos líderes también reclutarían directamente a individuos de estas tribus. La segunda área serían los gerentes capaces de capacitar y guiar. También serán responsables de monitorear las decisiones técnicas, establecer responsabilidad por buenas decisiones técnicas dentro del área misma. Y por último, pero no menos importante, herramientas, guías y procesos. Crear guías para ayudar con diferentes aspectos de la arquitectura, crear herramientas para rastrear y mejorar la calidad. Así que tomamos muchas acciones para lograr esos objetivos, pero me gustaría mostrar tres acciones que realmente marcaron la diferencia para nosotros. La primera fue crear un grupo llamado Asesores de RFC. Personas que son responsables de ayudar a otros con las RFC y crear una comunidad para que intercambien ideas, así como traer asesores específicos que sean expertos en áreas del sistema. ¿Cómo funcionó eso? Tenemos a los asesores en la parte superior. Y el proceso de escribir una RFC se dividiría en tres pasos. Paso uno, escritura inicial, presentación

2. Acciones para RFCs efectivas

Short description:

El asesor también estaría presente junto con la persona que está escribiendo en esos tres pasos. La segunda acción fue cambiar el horario y los invitados para las reuniones de revisión de diseño para optimizar el tiempo. Solo las personas clave interesadas en el tema son asistentes obligatorios. Las iniciativas de capacitación personalizadas mejoran las habilidades técnicas para la toma de decisiones arquitectónicas. Los resultados: aumento de la densidad de personas capaces de tomar grandes decisiones arquitectónicas.

al equipo, y luego la revisión externa. El asesor también estaría presente junto con la persona que está escribiendo en esos tres pasos. El segundo paso estaba abierto a comentarios. Al menos una semana de anticipación para que las personas puedan prepararse y tener una semana para leer la RFC. Luego, la persona que estaba escribiendo en conjunto con el asesor la presentaría al equipo y luego harían los ajustes si fuera necesario. Y por último, pero no menos importante, requeriría la aprobación de al menos dos revisores y luego estaría listo para implementarse. La segunda acción que tomamos y que marcó una gran diferencia fue en relación al proceso de revisión de diseño. Nos dimos cuenta de que nuestro tiempo sincrónico es muy valioso y tiende a producir excelentes resultados en una primera fase a través de nuestras discusiones. Pero para lograr un uso óptimo del tiempo para cada persona, cambiamos el horario y el formato. Cambiamos los invitados para que sean seleccionados por su dominio de conocimiento e intereses. Supongamos que estamos discutiendo una nueva arquitectura para los componentes de diseño que se utilizarán ampliamente en la página de inicio de sesión. Si bien podemos tener varios candidatos muy buenos para la discusión, como un ingeniero de front-end que contribuyó en el pasado al inicio de sesión o un ingeniero full stack que modificó la página de inicio de sesión e integró con las API o el gerente de ingeniería que pronto impulsará a su equipo a proponer una nueva arquitectura para el inicio de sesión SSO. También podemos tener personas que no tienen mucho que aportar y podrían utilizar mejor su tiempo. Como un ingeniero de backend que actualmente está resolviendo un desafío en el campo o otro equipo que no tiene nada que ver con el inicio de sesión. O un ingeniero full stack que actualmente se está enfocando en integrar varios servicios de alta complejidad en los últimos meses y no está al tanto del proceso de inicio de sesión. Por eso hemos decidido que solo las personas interesadas o las personas clave en el tema de las RFC estarán presentes. Otras personas también están invitadas, pero no es obligatorio que asistan. Lo segundo relacionado con el proceso de revisión de diseño fue programar revisiones de diseño precisas en lugar de una reunión fija semanal. Cambiamos nuestras reuniones de revisión de diseño de semanales a un horario no programado, lo que significa que la persona que está escribiendo la RFC programará la reunión de revisión de diseño. Junto con el asesor, serán responsables de elegir y alinear a las personas que serán invitadas para la discusión. Junto con el asesor, preseleccionarán las aprobaciones clave que requerirán una revisión obligatoria para que su RFC se cierre, y la revisión de diseño se programará en un momento que sea conveniente para el escritor, el asesor y los participantes. De esta manera, podemos asegurarnos de que solo las personas interesadas estén presentes, y tendrán el tiempo y estarán allí para revisar la RFC de manera sincrónica. Y otra acción que tomamos y que me gustaría presentar aquí fueron las iniciativas de capacitación personalizadas. Hemos desarrollado capacitaciones que se centraron en mejorar las habilidades técnicas y el conocimiento necesario para la toma de decisiones arquitectónicas. Cubrió una amplia gama de temas, desde principios arquitectónicos fundamentales hasta técnicas avanzadas. Por ejemplo, Introducción al Análisis de Problemas, donde aprendimos a identificar correctamente un problema inicial, recopilar requisitos, aclarar objetivos y definir el alcance, identificar posibles roles de usuario y partes interesadas, identificar posibles soluciones, esbozar estrategias y asignar resultados, y también probar y medir los resultados. Otra capacitación que tuvimos fue una Visión General de la Arquitectura de Soluciones, donde aprendimos los conceptos detrás de la arquitectura, una descripción general de los microservicios, microcontenedores, MVC y otros socios, comunicación sincrónica frente a comunicación asincrónica, consulta o tema, publicación-suscripción, UTL y puertas de enlace de API. Esas capacitaciones nos brindaron una caja de herramientas para escribir RFC y encontrar soluciones que podrían ser potencialmente buenas. Y eso nos ayudó a acelerar la revisión también, porque la calidad de nuestras RFC aumentó significativamente. Entonces, ¿cuáles fueron los resultados de esas acciones? Primero, hemos aumentado la densidad de personas técnicamente

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Impacto: Creciendo como Ingeniero
React Summit 2022React Summit 2022
27 min
Impacto: Creciendo como Ingeniero
Top Content
This Talk explores the concepts of impact and growth in software engineering. It emphasizes the importance of finding ways to make the impossible possible and the role of mastery in expanding one's sphere of impact. The Talk also highlights the significance of understanding business problems and fostering a culture of collaboration and innovation. Effective communication, accountability, and decision-making are essential skills for engineers, and setting goals and finding sponsors can help drive career growth. Feedback, goal setting, and stepping outside of comfort zones are crucial for personal development and growth. Taking responsibility for one's own growth and finding opportunities for impact are key themes discussed in the Talk.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Sobre convertirse en un Tech Lead
TechLead Conference 2023TechLead Conference 2023
25 min
Sobre convertirse en un Tech Lead
Top Content
The role of a Tech Lead involves shaping the roadmap, helping the team be more effective, and working on important projects. Lessons learned include encouraging idea sharing, avoiding taking on all the work, and focusing on delegation. Tech Leads focus on the outcome, involve the team in decision-making, and make plans based on how different pieces will interact. The role of a Tech Lead is to focus on engineering and guide the team in figuring out how the whole system should fit together. Architecting can become problematic when it loses touch with the coding part, resulting in implementation issues.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
React 18's concurrent rendering, specifically the useTransition hook, optimizes app performance by allowing non-urgent updates to be processed without freezing the UI. However, there are drawbacks such as longer processing time for non-urgent updates and increased CPU usage. The useTransition hook works similarly to throttling or bouncing, making it useful for addressing performance issues caused by multiple small components. Libraries like React Query may require the use of alternative APIs to handle urgent and non-urgent updates effectively.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Depuración del Rendimiento de React
React Advanced 2023React Advanced 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos cómo analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
Maximizar el rendimiento de la aplicación optimizando las fuentes web
Vue.js London 2023Vue.js London 2023
49 min
Maximizar el rendimiento de la aplicación optimizando las fuentes web
WorkshopFree
Lazar Nikolov
Lazar Nikolov
Acabas de llegar a una página web y tratas de hacer clic en un elemento en particular, pero justo antes de hacerlo, se carga un anuncio encima y terminas haciendo clic en eso en su lugar.
Eso... eso es un cambio de diseño. Todos, tanto los desarrolladores como los usuarios, saben que los cambios de diseño son malos. Y cuanto más tarde ocurran, más interrupciones causarán a los usuarios. En este masterclass vamos a analizar cómo las fuentes web causan cambios de diseño y explorar algunas estrategias para cargar fuentes web sin causar grandes cambios de diseño.
Tabla de contenidos:¿Qué es CLS y cómo se calcula?¿Cómo las fuentes pueden causar CLS?Estrategias de carga de fuentes para minimizar CLSRecapitulación y conclusión