Hoe een "kids game" veranderde hoe ik softwareontwikkeling benaderde Ik herinner me toen Minecraft in 2009 werd gelanceerd.Ik was net afgestudeerd met een glanzende New Media-graad, achtervolgd door game-developerdromen.Mijn hele leven lag voor me en het was ongelooflijk spannend.Met deze nieuwe graad in de hand, had ik naar Seattle gegooid, een fatsoenlijke baan gevonden en geniette van een nieuw gevonden vrijheid zonder de druk van huiswerk 's nachts en in het weekend. Ik heb gekeken met Steam's Source engine en las elk artikel dat ik kon vinden over tools en frameworks zoals Endorphin en Euphoria, en abonneerde op elke grote gaming nieuwsbrief beschikbaar. Wanneer heb je al deze hulpmiddelen om een echte wereld te bouwen?” en verwierp het volledig. Virtuele legioen Opgesneden tot 16 jaar later: verschillende banenwisselingen, landelijke verhuizingen, huizen gekocht en verkocht, een mooie vrouw en twee geweldige kinderen; het leven was chaotisch, maar het was goed.Toen, op een dag, kwam mijn zoon thuis van school praten over ... je raakte het. Minecraft.Ik doe altijd een poging om interesse te tonen in de hobby's die mijn kinderen vallen in.Kinderen veranderen interesses sneller dan het weer verandert, maar wanneer ze opgewonden raken en beginnen te praten over hun nieuwe hobby, ik wil dat ze zien dat ik er ook interesse in heb. Dus, na weken te hebben gehoord over Minecraft en te herstellen van mijn schok dat dit nog steeds een "dingen" was, besloot ik het te proberen. ik heb het spel gratis geprobeerd met de paar weken die ik op Xbox Game Pass had gebleven, en uiteindelijk gekocht, zodat we konden blijven spelen. ik downloadde de Bedrock server hosting bestanden van hun website en stelde onze server op om samen te spelen. Op een avond ging ik naar mijn kantoor om te spelen nadat iedereen naar bed was gegaan en begon een lijst te maken van de verschillende dingen die ik wilde verbeteren over onze basis (ik hou ervan om het grootste deel van het gebouw 's nachts te doen, zodat wanneer de kinderen zich aanmelden, we samen avontuur kunnen maken). Kortom, het project waar ik actief aan werkte, flitste op mijn scherm en ik werd voor een moment afgeleid van mijn verlangen om te spelen, omdat het probleem voor me in mijn geheugen van vroeger die dag riep. net als de meeste ingenieurs, worstelde ik om onvoltooid werk aan het einde van de dag achter te laten.Maar toen ik naar de code en mijn lijst met taken keek die ik voor de volgende ochtend voor mezelf had opgesteld (een gewoonte die ik in de loop van de jaren heb ontwikkeld om me aan het einde van de dag te helpen loslaten), realiseerde ik me iets. Minecraft is gewoon engineering netjes verpakt in een geheimzinnig, blokkerig paradijs. Minecraft is gewoon engineering netjes verpakt in een geheimzinnig, blokkerig paradijs. First Impressions Can Lie Eerste indrukken kunnen liegen We hebben allemaal gehoord van het gezegde "je krijgt maar één eerste indruk", en ik heb vaak fouten gevonden met dat. ik weet dat het gezegde waar genoeg is om de eenvoudige reden dat de eerste indruk maar één keer kan gebeuren. Hoewel het in veel scenario's waar kan zijn, zou ik beweren dat een persoon die zo koppig is dat hij nooit een tweede indruk toestaat om zijn mening over iemand te verduidelijken en te kleuren, een persoon is die je niet in je leven wilt hebben. Aan het begin van mijn carrière kreeg ik een project dat op het eerste gezicht overweldigend leek.De taak omvatte het verwerken van financiële gegevens over meerdere valuta's, met lagen van berekeningen die angstaanjagend en te complex voelden. Maar toen ik begon te graven, ontdekte ik dat het grootste deel van de zware lifting plaatsvond in de fase van gegevensinname. De wiskunde zelf bleek eenvoudig te zijn zodra de juiste systemen op zijn plaats waren. Door hulpmiddelen te bouwen om de variabele gegevens te halen en te organiseren, was de uiteindelijke oplossing weinig meer dan een schone rekenmachine die alles samenvoegde. Het herinnert me, nu, aan al die jaren geleden toen ik dit spel als kinderspel verwierp, alleen om jaren later te ontdekken dat het een fantastisch kunststuk is en heel veel plezier. ik heb honderden uren besteed aan het bouwen van een wereld, nu, en het is een geweldige herinnering: je kunt je eerste indruk niet altijd vertrouwen. Projecten op het werk beginnen vaak op deze manier: overweldigend, lawaaierig, onzeker.Maar zodra je de fundamenten hebt gelegd, net als het leggen van vuurtorens en voorraden in een vuilshut, wordt het onmogelijke vereenvoudigd in iets beheersbaar, zelfs veilig.Wat begint als overleving wordt structuur. Building Incrementally Iedereen die Minecraft heeft gespeeld, weet dat de eerste paar momenten van het spel voor ons allemaal hetzelfde zijn. You have to punch a tree. Ik weet dat het belachelijk klinkt, daarom zet ik die regel opzettelijk alleen. Je moet een boom slaan. Je moet een boom slaan. In Minecraft is de redenering dat wanneer je het spel voor het eerst start, er zeer beperkte middelen zijn die je met je blote handen kunt verzamelen: zand, vuil en hout zijn enkele van de voor de hand liggende voorbeelden, en hout is essentieel voor zoveel dingen. Je moet een boom slaan. You have to punch a tree. Je slaat die boom zo lang als je kunt totdat het een paar stukken hout valt. Dan een paar meer. Dan een paar meer! Dan ga je over naar de ambachtelijke sectie met dit hout en maak je planken. Dan neem je die planken en maak je een ambachtelijke tafel. Je gaat deze loop verder met meer complexiteit totdat je de Ender Dragon hebt verslagen, je Elytra hebt verzameld en het spel hebt voltooid (tenminste het verhaal). Evenzo vereist het bouwen van een toevluchtsoord uit de nachtelijke horde van zombies, skeletten, spinnen en heksen dat je één blok tegelijk plaatst.Natuurlijk zijn sommige mods in het verleden (bijna) twee decennia verschenen, maar in vanille is het één blok tegelijk. Interessant genoeg is ditzelfde proces vaak de beste manier om software te bouwen. Op een ander project kreeg ik een deadline die onmogelijk was.Toen ik het omvatte, zou het werk realistisch twee maanden duren, maar het team had iets nodig om in slechts twee weken te werken.In plaats van mezelf te verbranden en een onrealistische tijdlijn te achtervolgen, heb ik de uitdaging herzien. Ik brak het project in kleinere, onafhankelijke "chunks" van functionaliteit die elk in een dag of twee kon worden geleverd. Ik liet het team vervolgens kiezen welke functies ze eerst wilden, duidelijk opmerken afhankelijkheden en tradeoffs. Dit gaf hen meteen werkende software in hun handen, en een transparante routekaart voor de rest. Door te schakelen van "alles of niets" levering naar incrementele vooruitgang, veranderde ik een onmogelijke deadline in een reeks haalbare overwinningen. In Minecraft begint niemand met diamant armor, betoverde gereedschappen of een uitgestrekt kasteel. Je begint met het slaan van een boom. Dan kun je plankjes maken. Dan staven. Dan de gereedschappen. Block voor blok, bouw je je schuilplaats, je basis, je wereld. Software is niet anders.Je kunt het perfecte, gepolijste product niet op de eerste dag verzenden.Maar als je gedisciplineerd bent om dingen af te breken: één functie, één functie, één "blok" tegelijk.Je kunt de monsters overleven, iets echt leveren en uiteindelijk iets opmerkelijks bouwen. Je hoeft alleen maar de eerste boom te vallen. You just have to punch that first tree. Collaboration Without Demolition Zoals ik hierboven heb vermeld, hou ik ervan om 's nachts te bouwen wanneer iedereen slaapt.De kinderen houden ervan om in te loggen in de weekenden en te zien wat ik de vorige nacht heb gebouwd, en vervolgens hun toevoegingen aan de wereld te voltooien.Mijn jongere kiddo plantte een dicht, gnarly, gehaunted bos aan de rand van onze stad.Mijn oudere kind creëerde een haven met een rushende rivier in de oceaan voor onze boten. Ik had natuurlijk plannen voor deze gebieden, dus ik moet aanpassen. ik kan 's nachts niet inloggen en vernietigen wat ze hebben gebouwd; dat zou , dus ik moet manieren vinden om met ze te werken. ik zou het bos een beetje kunnen verdunnen, dan wat tekens en lichten kunnen toevoegen om de ergste monsters weg te houden. ik zal docs en een roodsteen draaibrug rond de haven toevoegen, zodat het klaar lijkt voor meer dan alleen onze kleine dingies. monster De meeste van ons werken samen aan een enkel product, wat betekent dat we voortdurend interactie hebben met elkaars code. Het is aan ons om het werk van onze teamgenoten met respect te behandelen, zodat iedereen zich geïntegreerd voelt, hun speciale sporen kan achterlaten en samen kan groeien. We hebben vaak soortgelijke problemen opgelost, maar in plaats van code tussen projecten te kopiëren, wat leidde tot rommelige bewerkingen en fragiele oplossingen, hebben we een betere aanpak aangenomen. Wanneer iemand iets nuttigs bouwde, veranderden we het in een kleine service die anderen konden integreren. Op die manier hadden we allemaal een schone, onderhoudbare oplossing zonder op elkaars code te stappen.Tijdens de tijd bouwde deze mindset een cultuur van samenwerking zonder afbraak: het delen van oplossingen zonder te breken wat al werkte. In Minecraft kon ik de constructies van mijn kinderen bulldozen en mijn "meesterplan" op de wereld dwingen, maar het zou niet veel plezier voor hen zijn, en het zou niet langer onze wereld zijn. Software werkt op dezelfde manier.Je kunt afbreken wat anderen hebben geschreven, of je kunt ermee werken, het verbeteren en in iets sterker vallen.Dat is hoe teams groeien, codebasen gezond blijven en de bijdrage van iedereen een sporen achterlaat. Op het einde van de dag, of het nu een haven, een bewoond bos of een gedeelde codebase is, is het doel niet om te bouwen. wereld; het is om te bouwen De wereld. Mijn Onze Keep Building Het noemen van een videogame een gids voor engineering klinkt misschien als een stretch.Maar het is niet.In zowel Minecraft als engineering gaan we op dezelfde manier vooruit: door een stap in een tijd te nemen en chaos in iets zinvols te vormen.Dat ritme is niet alleen van toepassing op code of blokken; het is hoe we iets bouwen dat het waard is om samen te houden. Chaos wordt ons gepresenteerd op een zilveren Jira-tafel en we worden gevraagd om het te organiseren in iets dat de wereld kan veranderen, althans voor sommige gebruikers. Chaos wordt ons gepresenteerd op een zilveren Jira-tafel en we worden gevraagd om het te organiseren in iets dat de wereld kan veranderen, althans voor sommige gebruikers. Het lijkt misschien angstaanjagend, maar je doet dit al elke dag in je leven en hobby's; je hoeft alleen maar dezelfde mindset naar softwareontwikkeling te brengen. Zelfs AI werkt op deze manier.Mijn experimenten met AI hebben me veel gevoeld als het beginnen in Minecraft.De volgende keer zal ik delen hoe het is om bomen te slaan in de wereld van AI. (Oorspronkelijk geplaatst op Substack: ) https://halexmorph.substack.com/p/the-incremental-mindset