Cum un „joc pentru copii” a schimbat modul în care abord dezvoltarea software-ului Îmi amintesc când Minecraft a fost lansat în 2009. tocmai am absolvit cu o diplomă de New Media strălucitoare, urmărind visele dezvoltatorului de jocuri. întreaga mea viață a fost înaintea mea și a fost incredibil de interesant. Am folosit motorul Steam Source și am citit fiecare articol pe care l-am putut găsi despre instrumente și cadre, cum ar fi Endorphin și Euphoria, și m-am abonat la fiecare buletin informativ major de jocuri disponibile. Când aveți toate aceste instrumente pentru a construi o lume reală?” și a respins-o complet. Legile virtuale Reduceți la 16 ani mai târziu: mai multe schimbări de locuri de muncă, mutări transfrontaliere, case cumpărate și vândute, o soție frumoasă și doi copii uimitori; viața a fost haotică, dar a fost bună. Așa că, după săptămâni de a auzi despre Minecraft și recuperarea de la șocul meu că acest lucru a fost încă un "lucru", am decis să-l încerc. am încercat jocul gratuit cu câteva săptămâni am rămas pe Xbox Game Pass, apoi am ajuns să-l cumpăr pentru a putea continua să jucăm. am descărcat fișierele de găzduire a serverului Bedrock de pe site-ul lor și am setat serverul nostru pentru a juca împreună. Într-o seară, m-am îndreptat spre biroul meu pentru a juca după ce toată lumea a mers la culcare și a început să facă o listă a diferitelor lucruri pe care am vrut să le îmbunătățesc despre baza noastră (mi place să fac cea mai mare parte a clădirii noaptea, astfel încât atunci când copiii se conectează, putem aventura împreună). PC-ul meu de jocuri este în biroul meu, unde lucrez de la distanță, așa că pe măsură ce mi-am mutat tastatura de lucru și trackpad-ul din drum, computerul meu sa aprins, mi-a folosit ceasul pentru a debloca și a preluat monitorul. Pe scurt, proiectul pe care lucram în mod activ a strălucit pe ecranul meu și am fost momentan distras de dorința mea de a juca, deoarece problema din fața mea a fost mișcată în memoria mea de mai devreme în acea zi. Ca majoritatea inginerilor, mă lupt să părăsesc lucrările neterminate la sfârșitul zilei. dar când m-am uitat la codul și la lista de sarcini pe care mi le-am stabilit pentru mine în dimineața următoare (un obicei pe care l-am dezvoltat de-a lungul anilor pentru a mă ajuta să renunț la sfârșitul zilei), mi-am dat seama ceva. Minecraft este doar inginerie bine ambalat într-un paradis capricios, blocat. Minecraft este doar inginerie bine ambalat într-un paradis capricios, blocat. First Impressions Can Lie Prima impresie poate minți Cu toții am auzit proverbul „doar primești o primă impresie” și am găsit adesea defecte cu asta. știu că proverbul este suficient de adevărat pentru simplul motiv că prima impresie se poate întâmpla o singură dată. Deși acest lucru poate fi adevărat în multe scenarii, aș argumenta că o persoană care este atât de încăpățânată încât nu permite niciodată o a doua impresie pentru a ajuta la clarificarea și colorarea opiniei sale despre cineva este o persoană pe care nu vrei să o ai în viața ta. La începutul carierei mele, mi s-a încredințat un proiect care, la prima vedere, părea copleșitor. sarcina a implicat prelucrarea datelor financiare în mai multe valute, cu straturi de calcule care s-au simțit înfricoșătoare și prea complexe. Dar odată ce am săpat, am descoperit că cea mai mare parte a ridicării grele a avut loc în stadiul de ingestie a datelor. Matematica însăși sa dovedit a fi simplă odată ce sistemele potrivite au fost puse în aplicare. Prin construirea de instrumente pentru a recupera și a organiza datele variabile, soluția finală a fost puțin mai mult decât un calculator curat care leagă totul împreună. Îmi amintește, acum, de toți acei ani în urmă când am respins acest joc ca o piesă de joacă pentru copii, doar pentru a descoperi ani mai târziu că este o piesă de artă fantastică și o mulțime de mare distracție. Am petrecut sute de ore construind o lume, acum, și este un mare memento: nu poți avea întotdeauna încredere în prima impresie. Proiectele la locul de muncă încep adesea în acest fel: copleșitoare, zgomotoase, nesigure.Dar odată ce ați pus bazele, la fel ca așezarea farurilor și a proviziilor într-un adăpost de murdărie, imposibilul se simplifică în ceva gestionabil, chiar sigur. Building Incrementally Oricine dintre voi care a jucat Minecraft știe că primele câteva momente din joc sunt aceleași pentru noi toți. You have to punch a tree. Știu că sună ridicol, de aceea pun în mod intenționat această linie singură. Trebuie să lovești un copac. Trebuie să lovești un copac. În Minecraft, raționamentul este că atunci când începeți pentru prima dată jocul, există resurse foarte limitate pe care le puteți colecta cu mâinile goale: nisip, murdărie și lemn sunt unele dintre exemplele evidente, iar lemnul este vital pentru atât de multe lucruri. Trebuie să lovești un copac. You have to punch a tree. Punzi copacul atâta timp cât poți până când cade câteva bucăți de lemn. Apoi câteva mai multe. Apoi câteva mai multe! Apoi te duci la secțiunea de artizanat cu acest lemn și faci plăci. Apoi iei acele plăci și faci o masă de artizanat. Continuați acest ciclu cu mai multă complexitate până când ați învins Dragonul Ender, ați colectat Elytra și ați terminat jocul (cel puțin povestea). În mod similar, construirea unui adăpost din hoarda nocturnă de zombi, schelete, păianjeni și vrăjitoare necesită să plasați un bloc la un moment dat. Desigur, unele moduri au apărut în trecut (aproape) două decenii, dar în vanilie, este un bloc la un moment dat. Interesant, acest proces este adesea cel mai bun mod de a construi software. Pe un alt proiect, mi s-a dat un termen-limită care era imposibil.Când l-am acoperit, lucrarea ar dura în mod realist două luni, dar echipa avea nevoie de ceva de lucru în doar două săptămâni. Am împărțit proiectul în „chunks” mai mici, independente de funcționalitate, care fiecare ar putea fi livrat într-o zi sau două. Apoi am lăsat echipa să aleagă ce caracteristici doreau mai întâi, remarcând în mod clar dependențele și compromisurile. Acest lucru le-a dat software-ul de lucru în mâinile lor imediat, și o foaie de parcurs transparentă pentru restul. În Minecraft, nimeni nu începe cu o armură de diamant, unelte fermecătoare sau un castel extins. Începi prin lovirea unui copac. Apoi faci plăci. Apoi stickuri. Apoi instrumentele. Bloc după bloc, îți construiești adăpostul, baza, lumea ta. Software-ul nu este diferit. Nu puteți expedia produsul perfect, lustruit în prima zi.Dar dacă sunteți disciplinat despre ruperea lucrurilor: o caracteristică, o funcție, un „bloc” la un moment dat.Puteți supraviețui monștrilor, livrați ceva real și, în cele din urmă, construiți ceva remarcabil. Tot ce trebuie sa faci este sa tai primul copac. You just have to punch that first tree. Collaboration Without Demolition Așa cum am menționat mai sus, îmi place să construiesc noaptea când toată lumea doarme. Copiii iubesc să se conecteze în week-end și să vadă ce am construit noaptea anterioară și apoi să-și completeze adăugările la lume. copilul meu mai mic a plantat o pădure densă, gnarly, haunted la marginea orașului nostru. copilul meu mai mare a creat un port cu un râu care se grăbește în ocean pentru bărcile noastre. Eu, desigur, aveam planuri pentru aceste zone, așa că trebuie să mă adaptez. nu mă pot conecta noaptea și să distrug ceea ce au construit. , așa că trebuie să găsesc modalități de a lucra cu ei. aș putea subțire ușor pădurea, apoi adaug câteva semne și lumini pentru a ține departe cei mai răi monștri. voi adăuga docuri și un pod de piatră roșie în jurul portului, astfel încât să pară gata pentru mai mult decât doar micile noastre dingies. Monstrul Aceeași premisă este urmată în fiecare zi de noi inginerii. Cei mai mulți dintre noi lucrează împreună la un singur produs, ceea ce înseamnă că interacționăm în mod constant cu codul celuilalt. Am lucrat odată într-un mediu în care fiecare dezvoltator susținea o unitate de afaceri diferită. Adesea rezolvăm probleme similare, dar în loc să copiem codul între proiecte, ceea ce a dus la editări tulburi și soluții fragile, am adoptat o abordare mai bună. Ori de câte ori cineva a construit ceva util, l-am transformat într-un serviciu mic pe care alții l-ar putea integra. De-a lungul timpului, această mentalitate a construit o cultură a colaborării fără demolări: împărtășirea soluțiilor fără a rupe ceea ce funcționa deja. În Minecraft, aș putea să buldozez construcțiile copiilor mei și să-mi forțez „planul principal” în lume, dar nu ar fi foarte distractiv pentru ei și nu ar mai fi lumea noastră. Software-ul funcționează în același mod.Puteți rupe la o parte ceea ce alții au scris, sau puteți lucra cu el, îmbunătăți-l și să-l pliați în ceva mai puternic.Așa se dezvoltă echipele, bazele de cod rămân sănătoase, iar contribuția fiecăruia lasă o urmă. La urma urmei, fie că este vorba de un port, de o pădure asomată sau de o bază de coduri partajată, scopul nu este de a construi. Lumea este pentru a construi Lumea . a mea a noastră Keep Building A numi un joc video un ghid pentru inginerie ar putea suna ca o întindere.Dar nu este.În Minecraft și inginerie, mergem înainte în același mod: luând un pas la un moment dat și transformând haosul în ceva semnificativ. Haos ne este prezentat pe o farfurie Jira de argint și ni se cere să o organizăm în ceva care poate schimba lumea, cel puțin pentru unii utilizatori. Haos ne este prezentat pe o farfurie Jira de argint și ni se cere să o organizăm în ceva care poate schimba lumea, cel puțin pentru unii utilizatori. Poate părea înfricoșător, dar deja faci acest lucru în fiecare zi în viața și hobby-urile tale; trebuie doar să aduci aceeași mentalitate la dezvoltarea software-ului. Chiar și AI funcționează în acest fel. Experimentele mele cu AI s-au simțit mult ca începând cu Minecraft. Data viitoare, voi împărtăși cum este să lovești copaci în lumea AI. (Publicat inițial pe Substack: ) https://halexmorph.substack.com/p/the-incremental-mindset