Desbloquea a tus ingenieros de software con Unblocked

Desbloquea a tus ingenieros de software con Unblocked ¡Libera su creatividad y productividad!

Los desarrolladores pasan semanas, e incluso meses, adaptándose a una nueva empresa. Tomar el ritmo en un nuevo código lleva tiempo. Durante este tiempo, el desarrollador tendrá muchas preguntas (¡y debería tenerlas)! Sin embargo, estas preguntas interrumpen a otros miembros del equipo que deben detener lo que están haciendo para proporcionar respuestas.

La mayoría de las organizaciones de ingeniería enfrentan el dilema de asegurar que el nuevo desarrollador reciba el apoyo que necesita sin ralentizar demasiado al resto del equipo.

Una cultura de documentación es un excelente paso en la dirección correcta. Sin embargo, esta documentación a menudo está fragmentada en mensajes de Slack, wikis de Notion y Confluence, pull requests de GitHub y tickets de Jira. ¿Cómo puedes navegar con éxito este mar infinito de información?

Una startup de IA llamada Desbloqueado está buscando resolver este problema. Han creado una interfaz similar a un chatbot donde puedes hacer preguntas y obtener respuestas para desbloquearte sin interrumpir a nadie más. Lo más importante es que Desbloqueado puede conectarse a todas las fuentes de datos que tu empresa utiliza, por lo que las respuestas se adaptan a ti en función de tus recursos reales de la empresa, en lugar de consejos genéricos.

Recientemente probé Desbloqueado para ver cuánto puede ayudar a alguien como yo. En este artículo, veremos algunos escenarios de ejemplo, las preguntas que hice y las respuestas que recibí.

Exploraremos tres categorías generales de búsqueda de información:

  1. Obtener una comprensión general de la arquitectura de un nuevo código base
  2. Tratar de entender cómo funciona una función
  3. Solucionar problemas y corregir un error

¿Listo para desbloquearte?

Repositorio de ejemplo

Para usar Desbloqueado con los datos de mi empleador actual, tendría que pasar por nuestro proceso de seguridad y obtener permiso. Desbloqueado cumple con SOC 2 y aísla los datos del cliente. Por ahora, decidí probar Desbloqueado con mis proyectos personales para tener una idea de sus capacidades.

Recurrí a uno de mis repositorios más grandes de mis años de universidad. Tengo un repositorio que contiene docenas de proyectos en los que trabajé durante mis cursos de ciencias de la computación. La mayoría de estos proyectos no los he revisado en más de ocho años. Si eres como yo, es probable que hayas olvidado los detalles del código en el que trabajaste hace incluso unos meses, por lo que volver a este repositorio se sintió similar a volver a integrarme.

Puedes encontrar todo el repositorio que utilizaremos en GitHub. (Por favor, no juzgues demasiado la calidad del código, ¡estaba aprendiendo por primera vez!)

Escenario uno: ¿Me puedes dar una visión general del código base?

Mientras me familiarizaba con algunos proyectos en este repositorio antiguo, le pregunté a Desbloqueado sobre mi repositorio.

Comencé con una pregunta muy genérica: “¿Qué hace esta aplicación?”

Desbloqueado respondió diciéndome que este repositorio contiene muchos proyectos diferentes. Incluso me describió algunos de los proyectos. Sabía que tenía aplicaciones sobre adopción de mascotas, fotografía, fitness y streaming de películas. También identificó correctamente que una de mis aplicaciones era un juego basado en la web.

Pregunta y respuesta para “¿Qué hace esta aplicación?”

Empezamos muy bien. Hice una segunda pregunta: “¿Qué lenguajes, librerías o frameworks utiliza este repositorio?”

Desbloqueado respondió con muchas herramientas que mencioné en mi archivo principal de cartera. Identificó correctamente que cada proyecto utilizaba diferentes tecnologías. Observarás en la parte inferior de la captura de pantalla que Desbloqueado cita sus fuentes, por lo que sabes de dónde proviene esta información.

Pregunta y respuesta para “¿Qué lenguajes, librerías o frameworks utiliza este repositorio?”

Escenario dos: ¿Cómo funciona esto?

Bien, eso fue suficiente introducción para mí. A continuación, hice una pregunta específica sobre uno de mis proyectos: un juego de Conecta Cuatro construido con jQuery.

Recuerda, el objetivo de esta prueba era ver cómo podía usar Desbloqueado en mi trabajo diario. Entonces, me imaginé a mí mismo como un desarrollador que se integra a un nuevo código base y trabaja en este juego. Tenía una pregunta sobre cómo funcionaba el juego. En lugar de molestar a uno de mis compañeros de trabajo, decidí preguntarle a Desbloqueado.

Me aseguré de que no hubiera oportunidades para que los jugadores hicieran trampas en mi juego. Pregunté: “En la aplicación ConnectFour, ¿es posible que un jugador juegue dos piezas seguidas sin esperar a que la otra persona tome su turno?”

La respuesta de Unblocked fue impresionante. Fue capaz de hacer referencia a un fragmento de código específico que mostraba cómo funcionaba el comportamiento de tomar turnos en el juego.

Pregunta y respuesta para “En la aplicación ConnectFour, ¿es posible que un jugador juegue dos piezas seguidas sin esperar a que la otra persona tome su turno?”

Sin embargo, no estaba convencido de que un jugador no pudiera encontrar alguna forma de hacer trampas. Hice una pregunta de seguimiento: “¿Qué pasaría si alguien hiciera clic en el botón dos veces muy rápido antes de que terminara la animación? ¿Podrían hacer trampa y jugar dos piezas a la vez?”

Nuevamente, quedé impresionado con la respuesta de Unblocked. Destacó otro fragmento de código que mostraba cómo había desactivado el controlador de clic para evitar que alguien hiciera clic dos veces para jugar dos piezas al mismo tiempo.

Incluso encontró un problema cerrado en GitHub que hacía referencia a un problema similar pero me aseguró que desde entonces se ha resuelto.

Pregunta y respuesta para “¿Qué pasaría si alguien hiciera clic en el botón dos veces muy rápido antes de que terminara la animación? ¿Podrían hacer trampa y jugar dos piezas a la vez?”

Escenario Tres: ¿Me puedes ayudar a solucionar este error?

Cambiemos de tema y consideremos otro escenario. Imaginemos que estoy trabajando en un nuevo código y necesito ayuda para solucionar un error. Podría recurrir a un compañero de trabajo para pedir ayuda, pero esto también parece algo en lo que Unblocked podría ayudar.

Para las siguientes preguntas, hice referencia a un juego multijugador llamado Pixel Mania, que construí como uno de mis proyectos finales hace muchos años. Este juego está construido con JavaScript y utiliza web sockets para comunicar información de par a par. En el juego, cada jugador es un punto. Se mueven por la pantalla, comen comida para crecer de tamaño. Los jugadores también pueden comerse entre sí. Y tienen que hacer esto evitando obstáculos que reducirán su tamaño a la mitad.

Este juego funciona muy bien cuando hay entre dos y cuatro jugadores conectados. Sin embargo, el juego comienza a retrasarse cuando aumenta el número de jugadores.

En este escenario, imaginemos que soy un desarrollador que trabaja en este proyecto y estoy observando estos problemas de rendimiento. Necesito ayuda. ¿A quién debo preguntar? ¡A Unblocked, por supuesto!

Mi primera pregunta fue: “En PixelMania, estoy experimentando problemas de rendimiento cuando hay un gran número de jugadores jugando. ¿Por qué sucede esto?”

Unblocked respondió con algunas ideas iniciales. El juego gestiona la información de posición de todos los jugadores, la comida y las bolas. Unblocked teorizó que las operaciones tardarían más a medida que aumentara el número de elementos.

Y tiene razón, por cierto. Muchas de las operaciones en el juego implican recorrer todos los elementos, buscando colisiones para saber si has comido una pieza de comida, comido a otro jugador o sido golpeado por una bola. Si pensamos en la Notación Big O, estas operaciones son al menos de tiempo O(n).

Luego, Unblocked sugirió que algunas posibles optimizaciones podrían lograrse mediante el uso de “técnicas como la limitación de actualizaciones, la compresión delta para las actualizaciones o la implementación de un sistema de manejo de área de interés donde los clientes solo reciben actualizaciones para objetos cerca de su jugador”.

Pregunta y respuesta para “En PixelMania, estoy experimentando problemas de rendimiento cuando hay un gran número de jugadores jugando. ¿Por qué sucede esto?”

Lo bueno de Unblocked es que puedes tener una conversación con él, similar a ChatGPT. Tenía preguntas de seguimiento y quería tratar esto como una sesión de tormenta de ideas de programación en pareja.

Pregunté: “¿Podrías explicarme más sobre las técnicas de optimización que sugeriste?”

Unblocked entró en detalle sobre sus cinco sugerencias:

  • Limitación de actualizaciones
  • Compresión delta
  • Gestión de áreas de interés
  • Particionamiento espacial
  • Optimización de estructuras de datos

Pregunta y respuesta para “¿Podrías explicarme más sobre las técnicas de optimización que sugeriste?”

Quería profundizar aún más. Pregunté: “El particionamiento espacial me parece un buen enfoque. ¿Puedes darme algunos consejos sobre cómo podría implementarlo en PixelMania?”

¡Me dio consejos aún más detallados! Ten en cuenta que no es solo información genérica sobre cómo funciona el particionamiento espacial, sino que también aplicó los consejos a archivos específicos de mi aplicación, como game.js y Player.js.

Pregunta y respuesta para “El particionado espacial suena como un buen enfoque para mí. ¿Puedes darme algunos consejos sobre cómo implementarlo en PixelMania?”

Después de eso, hice una sola pregunta más sobre las estructuras de datos que utilicé: “También mencionaste la optimización de las estructuras de datos. ¿Hay alguna estructura de datos utilizada de manera ineficiente o incorrecta en PixelMania que se pueda optimizar?”

Unblocked respondió con algunas instancias específicas de las decisiones de diseño que había tomado y resaltó algunas posibles desventajas. Muchas de mis operaciones se realizaban en tiempo O(n), y es posible que pueda utilizar diferentes estructuras de datos y hacer un mejor uso de los objetos para lograr un tiempo O(1). Esto podría mejorar algunas de las cuestiones de rendimiento.

Pregunta y respuesta para “También mencionaste la optimización de las estructuras de datos. ¿Hay alguna estructura de datos utilizada de manera ineficiente o incorrecta en PixelMania que se pueda optimizar?”

Para ese momento, ya tenía una idea bastante clara de qué hacer a continuación. Si estuviera trabajando en esto en mi trabajo, estaría bien preparado/a para comenzar a hacer cambios en el código.

Conclusión

Encontrar el equilibrio adecuado entre hacer preguntas y ser autosuficiente puede ser difícil. Las interrupciones llevan a cambiar el contexto y eso puede ser una pérdida de tiempo. Todos queremos ser útiles para nuestros compañeros de trabajo, pero también necesitamos proteger nuestro tiempo.

La inteligencia artificial está desempeñando un papel cada vez más importante en nuestro campo como desarrolladores, y tiene la capacidad de aumentar significativamente nuestra productividad de maneras que nunca antes habíamos visto.

Unblocked es una de estas herramientas. Al facilitar que los desarrolladores encuentren las respuestas a sus preguntas por sí mismos, Unblocked nos permite obtener la ayuda adecuada cuando la necesitamos.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Enfoque de IA produce un perro robótico 'inteligente atléticamente

Un equipo internacional de investigadores ha desarrollado un algoritmo basado en visión que permite a los robots cuad...

Inteligencia Artificial

DeepSeek abre el código fuente del modelo DeepSeek-67B El último rival del ChatGPT proveniente de China

La startup china de IA DeepSeek AI ha iniciado una nueva era en los grandes modelos de lenguaje (LLM, por sus siglas ...

Inteligencia Artificial

Construyendo sistemas complejos utilizando ChatGPT

Introducción La inteligencia artificial ha evolucionado más allá de las expectativas con LLMs como ChatGPT. GPT-4, un...

Inteligencia Artificial

Automatizando la Cadena del Pensamiento Cómo la IA puede impulsarse a sí misma a razonar

El método de generación automática de Auto-CoT permite que los modelos de lenguaje generen automáticamente sus propia...

Inteligencia Artificial

Aprendizaje profundo para objetos profundos ZoeDepth es un modelo de IA para la estimación de profundidad en múltiples dominios

¿Alguna vez te has encontrado con ilusiones en las que un niño en la imagen parece más alto y más grande que un adult...