Cómo un “juego para niños” cambió la forma en que me acercaba al desarrollo de software Recuerdo cuando Minecraft se lanzó en 2009. acabo de graduarme con un brillante grado de New Media, persiguiendo sueños de desarrollador de juegos. Mi vida entera estaba por delante de mí, y era increíblemente emocionante.Con este nuevo grado en la mano, me había ido a Seattle, encontré un trabajo decente, y estaba disfrutando de una libertad recién encontrada sin la presión de las tareas domésticas en las noches y los fines de semana. Me metí con el motor de fuente de Steam y leí cada artículo que podía encontrar sobre herramientas y marcos como Endorphin y Euphoria, y me suscribí a cada boletín de noticias de juegos disponibles. ¿Cuándo tienes todas estas herramientas para construir un mundo real?” y lo rechazó por completo. Los legados virtuales Cortado a 16 años más tarde: varios cambios de trabajo, traslados transfronterizos, casas compradas y vendidas, una mujer hermosa y dos niños increíbles; la vida era caótica, pero era buena.Entonces, un día, mi hijo vino a casa de la escuela hablando de... lo adivino. Minecraft. Siempre hago un esfuerzo para mostrar un interés en los pasatiempos en los que caen mis hijos.Los niños cambian de intereses más rápido que el cambio del tiempo, pero cuando se emocionan y comienzan a hablar de su nuevo hobby, quiero que vean que también tengo un interés en ello. Así que, después de semanas de escuchar sobre Minecraft y recuperarse de mi shock de que esto todavía era una "cousa", decidí probarlo. hice el juego gratis con las pocas semanas que había dejado en Xbox Game Pass, luego terminé comprándolo para que podamos seguir jugando. descargé los archivos de alojamiento del servidor Bedrock de su sitio web y configuré nuestro servidor para jugar juntos. Una noche, me dirigí a mi oficina para jugar después de que todo el mundo se había ido a la cama y comenzó a hacer una lista de las diferentes cosas que quería mejorar sobre nuestra base (me gusta hacer la mayor parte del edificio por la noche para que cuando los niños se conecten, podamos aventurar juntos). mi PC de juegos está en mi oficina, donde trabajo remotamente, así que mientras yo estaba moviendo mi teclado de trabajo y trackpad fuera de la manera, mi ordenador se encendía, usaba mi reloj para desbloquear, y tomó el monitor. En pocas palabras, el proyecto en el que estaba trabajando activamente flashó en mi pantalla, y me distraí momentáneamente de mi deseo de jugar como el problema que me antecedió se agitó en mi memoria de antes de ese día. Como la mayoría de los ingenieros, tengo dificultades para dejar el trabajo inacabado al final del día. pero cuando miré el código y mi lista de tareas que me había preparado para la mañana siguiente (un hábito que he desarrollado a lo largo de los años para ayudarme a dejarlo ir al final del día), me di cuenta de algo. Minecraft es simplemente ingeniería ordenadamente empacada en un paraíso caprichoso y bloqueado. Minecraft es simplemente ingeniería ordenadamente empacada en un paraíso caprichoso y bloqueado. First Impressions Can Lie Las primeras impresiones pueden mentir Todos hemos escuchado el dicho “sólo se obtiene una primera impresión”, y a menudo he encontrado defectos con eso.Sé que el dicho es lo suficientemente verdadero por la simple razón de que la primera impresión sólo puede ocurrir una vez. Si bien puede ser cierto en muchos escenarios, argumentaría que una persona que es tan obstinada que nunca permite una segunda impresión para ayudar a aclarar y colorear su opinión sobre alguien es una persona que no quieres tener en tu vida. A principios de mi carrera, me fue entregado un proyecto que, a primera vista, parecía abrumador.La tarea involucró el procesamiento de datos financieros en varias monedas, con capas de cálculos que se sentían asustadoras y excesivamente complejas. Pero una vez que cavé, descubrí que la mayor parte del levantamiento pesado ocurrió en la etapa de ingestión de datos. La matemática en sí resultó ser simple una vez que los sistemas correctos estaban en su lugar. Al construir herramientas para recuperar y organizar los datos variables, la solución final era poco más que una calculadora limpia que unía todo. Lo que parecía imposible al principio terminó siendo una de las soluciones de ingeniería más sencillas y elegantes en las que había trabajado. Me recuerda, ahora, de todos aquellos años atrás cuando rechazé este juego como un juego infantil, sólo para descubrir años más tarde que es una obra de arte fantástica y un montón de gran diversión.He pasado cientos de horas construyendo un mundo, ahora, y es un gran recordatorio: no siempre puedes confiar en tu primera impresión.Cuando un proyecto parece demasiado aterrador o remoto, tómate algún tiempo para cargar los detalles, y probablemente descubrirás que no es tan imposible como parecía. Los proyectos en el trabajo a menudo comienzan de esta manera: abrumador, ruidoso, incierto.Pero una vez que se establecen las bases, al igual que colocar farolas y suministros en un refugio de suciedad, lo imposible se simplifica en algo manejable, incluso seguro.Lo que comienza como supervivencia se convierte en estructura. Building Incrementally Cualquiera de vosotros que has jugado a Minecraft sabe que los primeros momentos del juego son los mismos para todos nosotros. You have to punch a tree. Sé que suena ridículo, por lo que intencionalmente pongo esa línea sola. Tienes que golpear un árbol. Tienes que golpear un árbol. En Minecraft, el razonamiento es que cuando empiezas el juego, hay recursos muy limitados que puedes recoger con tus manos desnudas: arena, suciedad y madera son algunos de los ejemplos obvios, y la madera es vital para tantas cosas. Tienes que golpear un árbol. You have to punch a tree. Pulsa ese árbol por tanto tiempo como puedas hasta que caiga un par de piezas de madera. Después unos cuantos más. Después unos cuantos más! Luego te diriges a la sección de artesanía con este madera y haces planchas. Luego tomas esas planchas y haces una mesa de artesanía. Continúas este ciclo con más complejidad hasta que hayas derrotado al dragón Ender, recogido tu Elytra y terminado el juego (al menos la historia). Del mismo modo, construir un refugio de la horda nocturna de zombies, esqueletos, arañas y brujas requiere que coloques un bloque a la vez.Por supuesto, algunos mods han surgido en el pasado (casi) dos décadas, pero en la vainilla, es un bloque a la vez. Curiosamente, este mismo proceso a menudo es la mejor manera de construir software. En otro proyecto, me dieron un plazo que era casi imposible.Cuando lo abarcé, el trabajo tomaría realistas dos meses, pero el equipo necesitaba algo para trabajar en sólo dos semanas. He dividido el proyecto en "chunks" más pequeños e independientes de funcionalidad que cada uno podría ser entregado en un día o dos. Luego permitió al equipo elegir qué características querían primero, señalando claramente dependencias y compromisos. Esto les dio software de trabajo en sus manos de inmediato, y un mapa de ruta transparente para el resto. Al cambiar de la entrega de "todo o nada" al progreso incremental, convirtió un plazo imposible en una serie de victorias logradas. En Minecraft, nadie comienza con armadura de diamante, herramientas encantadas, o un castillo extendido. Comienzas golpeando un árbol. Luego fabricas tablas. Luego palos. Luego las herramientas. Bloque por bloque, construyes tu refugio, tu base, tu mundo. El software no es diferente. No puedes enviar el producto perfecto, pulido en el primer día. Pero si estás disciplinado en romper las cosas: una función, una función, un “bloque” a la vez. Puedes sobrevivir a los monstruos, entregar algo real, y finalmente construir algo notable. Sólo tienes que golpear el primer árbol. You just have to punch that first tree. Collaboration Without Demolition Como mencioné anteriormente, me encanta construir por la noche cuando todo el mundo duerme.Los niños adoran iniciar sesión en los fines de semana y ver lo que construí la noche anterior, y luego completar sus adiciones al mundo.Mi niño más joven plantó un bosque denso, gnarly, asombrado en las afueras de nuestra ciudad.Mi hijo mayor creó un puerto con un río precipitado en el océano para nuestros barcos. Yo, por supuesto, tenía planes para estas áreas, así que tengo que ajustar. no puedo iniciar sesión por la noche y destruir lo que construyeron; eso sería , así que tengo que encontrar maneras de trabajar con ellos. podría adelgazar ligeramente el bosque, luego añadir algunas señales y luces para mantener a los peores monstruos lejos. añadiré puentes y un puente de piedra roja alrededor del puerto para que parezca listo para más de nuestros pequeños dingies. pero dejo sus ideas intactas para que sepan que han tenido una impresión duradera en el mundo tanto como yo. monstruos Esta misma premisa es seguida todos los días por nosotros ingenieros.La mayoría de nosotros estamos trabajando juntos en un solo producto, lo que significa que estamos constantemente interactuando con el código del otro.Es nuestra responsabilidad tratar el trabajo de nuestros compañeros de equipo con respeto para que todos se sientan incluidos, puedan dejar su marca especial y crecer juntos. Una vez trabajé en un entorno donde cada desarrollador apoyaba una unidad de negocio diferente. A menudo solucionamos problemas similares, pero en lugar de copiar el código entre los proyectos, lo que llevó a ediciones desordenadas y soluciones frágiles, adoptamos un enfoque mejor. Cada vez que alguien construyó algo útil, lo transformamos en un pequeño servicio que otros podrían integrar. De esta manera, cada uno de nosotros tenía una solución limpia y sostenible sin seguir el código del otro.A lo largo del tiempo, esta mentalidad construyó una cultura de colaboración sin demolición: compartir soluciones sin romper lo que ya funcionaba. En Minecraft, podría bulldozar las construcciones de mis hijos y forzar mi “plan maestro” al mundo, pero no sería muy divertido para ellos, y ya no sería nuestro mundo. El software funciona de la misma manera.Puedes rasgar lo que otros han escrito, o puedes trabajar con él, mejorarlo y doblarlo en algo más fuerte.Así crecen los equipos, las bases de código permanecen sanas y la contribución de todos deja una marca. Al final del día, ya sea un puerto, un bosque asombrado o una base de código compartida, el objetivo no es construir mundo; es construir El mundo. mi Nuestro Keep Building En Minecraft y en ingeniería, avanzamos de la misma manera: tomando un paso a la vez y moldeando el caos en algo significativo. Chaos se nos presenta en un plato de Jira de plata, y se nos pide que lo organizemos en algo que pueda cambiar el mundo, al menos para algunos usuarios. Chaos se nos presenta en un plato de Jira de plata, y se nos pide que lo organizemos en algo que pueda cambiar el mundo, al menos para algunos usuarios. Puede parecer aterrador, pero ya lo haces todos los días en tu vida y tus pasatiempos; sólo tienes que traer la misma mentalidad al desarrollo de software. Incluso la IA funciona de esta manera. Mis experimentos con la IA se han sentido mucho como comenzar en Minecraft.La próxima vez, compartiré cómo es golpear árboles en el mundo de la IA. (Publicado originalmente en Substack: ) https://halexmorph.substack.com/p/the-incremental-mindset