Hackathon – O experiență de neratat (8 sfaturi practice)

Salut!

Eu sunt Alex și mi-am propus să te încurajez să participi la un hackathon cât de curând ai ocazia! 

De ce atât de multă grabă? 

Pentru a afla răspunsul trebuie să îți împărtășesc o pasiune pe care în mod cert o intuiești deja: îmi place să particip la concursuri de tip hackathon!

Surpriza constă în faptul că, deși am acumulat câteva prezențe în cadrul evenimentelor locale și am câștigat, uneori, și premii mai mult sau mai puțin importante, lucrurile nu au stat întotdeauna așa. 

Am participat pentru prima dată la un hackathon în ultimul an al ciclului de licență, destul de târziu ținând cont de numărul mare de evenimente de acest gen care se derulează anual atât în România, cât și internațional, online. Înainte de a-mi face curaj și de a mă înscrie eram ferm convins că doar cei mai buni programatori pot face față unui hackathon și că, indiferent de efortul pe care îl depui, dacă nu reușești să obții un premiu instant, e un semn clar că nu ești făcut pentru astfel de concursuri.

Sună aproape amuzant, nu?

Nu a fost nevoie decât să particip la un hackathon pentru a-mi schimba întreaga perspectivă și, mai important, pentru a-mi dori să particip la încă unul, apoi încă unul – și tot așa. 

Totuși, primul pas poate părea extrem de greu, mai ales dacă nu cunoști nici un alt amator de nopți dedicate scrisului de cod care să te încurajeze și alături de care să participi pentru prima dată.

Un regret cu care am rămas în urma anilor de facultate este faptul că nu am avut curajul de a participa mai devreme, lucru care mi-ar fi adus, fără doar și poate, o grămadă de experiențe și cunoștințe noi.

Din acest motiv, mi-am propus să alcătuiesc o listă de “secrete” care să te ajute să te pregătești pentru un hackathon, fie că este primul, fie că nu, și să eviți cele mai comune greșeli pe care participanții aflați la început de drum le fac.Probabil că niciunul dintre aceste sfaturi nu îți va aduce trofeul “peste noapte”, dar te vor ajuta să reduci considerabil numărul evenimentelor neplăcute care ar putea să apară pe parcurs.

Dacă ai participat deja la un hackathon, câteva dintre acestea îți vor aduce, cu siguranță, aminte de niște situații mai puțin plăcute, însă, cu puțină inspirație, vei reuși, poate, să sari peste cele nebifate încă.. 

Eu am reușit să le bifez pe toate. 🙂 

1. O echipă diversă

În mod cert, atunci când te gândești pentru prima dată să participi la un hackathon, ideea de a-ți suna prietenii care se pricep cel mai bine la programare nu poate părea altfel decât perfectă. 

Însă, dacă te numeri printre cei care au, deja, câteva participări la activ, probabil că zâmbești stânjenit știind că, din păcate, nu a funcționat de fiecare dată atât de bine pe cât te așteptai. 

Uneori chiar deloc.

Este adevărat că un hackathon presupune, de cele mai multe ori, implementarea unui produs tehnic care să pună în practică ideea cu ajutorul căreia tu și echipa ta doriți să rezolvați o problemă.

Totuși, la fel de adevărat este că pentru majoritatea concursurilor de acest tip o idee neșlefuită ar putea să transforme cea mai bună implementare într-un candidat lăsat în afara podiumului.

De ce?

Dat fiind timpul relativ scurt în care un hackathon se desfășoară, niciun jurat experimentat nu se așteaptă ca o implementare să fie perfectă: ar fi aproape imposibil, ținând cont de cantitatea redusă de resurse.

O idee bine formulată și exprimată într-un mod cât mai sugestiv ar putea ca, în urma unui pitching la fel de bine construit, să convingă jurații că, deși nu ați reușit să implementați întregul concept, abordarea este potrivită și, în mod deloc surprinzător, să surclasați echipe cu implementări solide, dar cu idei mai slab conturate.

Deci, asigură-te că prietenii alături de care îți dorești să formezi o echipă sunt.. diverși.

De exemplu, o echipă are întotdeauna nevoie de o persoană cu idei creative, care știe să analizeze o problemă și să formuleze o soluție optimă. Alături de aceasta, un prieten talentat la grafică poate crea o imagine de produs care să atragă atenția tuturor celor din jur. Să nu uităm de tot de implementare: un back-end și un front-end developer sunt întotdeauna necesari pentru a asigura că MVP-ul care materializează ideea la care ați lucrat atât de atent este pregătit pentru demo. Pe lângă aceștia, cineva va trebui să vorbească liber, concis și expresiv și să convingă juriul că echipa voastră are formula câștigătoare. Nu ezita să iei cu tine un prieten care se descurcă la vorbitul în public –  nu o să regreți rezultatul.

De reținut: rețeta perfectă nu există. Poate că ești un fullstack developer fantastic sau te pricepi atât la vorbitul în public, cât și la grafică. Nu trebuie să formezi o echipă de specialiști, dar este bine să aveți expertiză în cât mai multe domenii adiacente proiectării și construirii unui produs.

Cel mai important factor este să vă simțiți bine împreună și să știți că, indiferent de timpul rămas până la încheierea hackathon-ului, vă veți putea păstra entuziasmul și energia intacte.

2. Experimentează cu tehnologii pe care nu le-ai mai folosit

Un hackathon reprezintă ocazia perfectă să experimentezi cu tehnologii cu care nu ești familiarizat. Chiar dacă acest lucru te va îngreuna puțin, vei transforma întreaga durata a concursului într-o experiență de învățare de care îți vei aduce mereu aminte.

Mai mult de atât, vei fi înconjurat de o grămadă de persoane pasionate de tehnologie! Dacă ai o problemă tehnică dificilă nu ezita să ceri ajutorul unui mentor sau unui alt participant – șansele ca aceștia să te refuze și să nu te îndrume spre o soluție sunt foarte mici, foarte mici.

Pentru a ameliora scăderea de productivitate pe care utilizarea unei noi tehnologii o presupune  poți să optezi pentru framework-uri și tool-uri care să automatizeze cât mai multe activități. De exemplu, dacă ești fan Node.js, ai putea să încerci Strapi, în loc de clasicul Express, sau Django, în loc de Flask, în cazul în care „vorbești” Python.   Aceste framework-uri te vor ajuta ca, într-un timp scurt, să implementezi mai multe funcționalități decât ai fi reușit în mod normal. 

Ai grijă, însă! 

Cu cât un framework este mai avansat, cu atât va exista o modalitate preferată de dezvoltare, principiu denumit convention over configuration, fapt ce îți va reduce, pe termen lung, opțiunile. 

Pentru un hackathon, însă, s-ar putea să nu ai suficient timp încât să observi acest lucru 🙂 

Totuși, deși o să pară în contradictoriu cu ceea ce am afirmat până acum, ar fi o idee bună să parcurgi un tutorial puțin mai cuprinzător înainte de a auzi “fluierul” de start, indiferent de cât de încrezător ești în abilitatea ta de a te adapta la lucruri noi. 

3. Evită tehnologiile cu comunități restrânse

În mod cert, majoritatea tehnologiilor din această categorie se vor regăsi printre cele menționate la punctul anterior, de aceea am vrut să menționez explicit acest mic detaliu: evită tehnologiile cu comunități restrânse, indiferent de gradul de noutate al acestora.  Chiar dacă sunt moderne și eficiente, s-ar putea ca scenariul pe care vrei să îl implementezi să nu fie suficient de bine documentat.

În funcție de complexitatea soluției la care tu și echipa ta ați ajuns, s-ar putea să întâmpini, deja, dificultăți în implementare. Un lucru care te poate îngreuna chiar mai mult ar fi să nu găsești suficient de multe exemple pentru configurarea framework-ului sau a bibliotecilor pe care ai ales să le folosești. Mai mult de atât, o tehnologie nouă înseamnă un număr relativ mic de utilizatori, deci nici persoanele mai experimentate din jurul tău s-ar putea să nu îți poată da o mână de ajutor. 

Acest lucru este valabil și pentru tehnologiile mai vechi, ce nu mai sunt actualizate constant și nu reușesc să genereze suficient interes pentru a strânge un număr semnificativ de utilizatori. 

Cel mai sigur ar fi să optezi pentru tehnologii care au câteva versiuni deja lansate și au în spate o comunitate numeroasă, însă tu ești cel care decide! 

Dacă ești hotărât să folosești acel framework nou pentru JavaScript, asigură-te că există câteva surse oficiale de unde te poți informa cu privire la toate opțiunile pe care le ai la dispoziție.

4. Pregătește un template

Dacă vrei să câștigi un plus de timp și să te asiguri că etapa de configurare a unui template, numit și boilerplate, nu va reprezenta un obstacol suplimentar, îți poți pregăti unul înainte de concurs, inspirat de proiecte mai vechi în a căror structură ai investit foarte multă atenție sau de către proiecte open-source ale altor persoane!

Mai mult decât atât, poți pregăti o serie de template-uri open-source pe care să le împarți cu prietenii tăi și nu numai – scurta istorie a programării a demonstrat că atunci când mai multe persoane contribuie la același cod sursă calitatea acestuia va crește..

Totuși, chiar dacă pregătirea și utilizarea unui template nu diferă cu nimic de utilizarea unor framework-uri sau biblioteci open-source, trebuie să te asiguri în prealabil că este permis să faci asta, întrucât unele hackathoane ar putea considera acest lucru la limita dintre pregătire minuțioasă și trișat.

5. Asigură-te că totul funcționează cu o seară înainte

Nu are rost să căutăm un răspuns la întrebarea „de ce unele programe funcționează uneori, iar alteori nu?”- oricum nu am găsi unul care să acopere fiecare scenariu nici dacă am încerca. 

E cert, însă, că uneori programe ce sunt utilizate zilnic se comportă diferit din când în când, iar soluționarea acestui mister durează – mai ales dacă instalarea și dezinstalarea nu reprezintă o opțiune.

Un obicei care îți poate salva câteva ore din timpul hackathon-ului este să te asiguri, cu o seară înainte, că tool-urile pe care intenționezi să le folosești funcționează așa cum te-ai aștepta. Compilatoare, medii de dezvoltare, biblioteci, servere, baze de date, mașini virtuale – asigură-te că nu vei dedica primele ore ale concursului căutând erori criptice pe StackOverflow.

Vei avea suficient timp să faci asta mai târziu. 🙂

Dacă știi că vei avea nevoie de programe care, din anumite motive misterioase, ți-ar putea face probleme a doua zi, încearcă, pur și simplu, să îți ții laptopul „în viață” până la startul hackaton-ului, fie aprins, fie în modul sleep sau hibernate.

6. Sincronizează-te constant cu ceilalți colegi

Chiar dacă nu consideri că acest lucru ar putea reprezenta o problemă, după „fluierul” de start atenția fiecărui membru al echipei se va îndrepta asupra unei sarcini individuale pe care va încerca să o ducă la bun sfârșit.

Din această cauză, momentele de sincronizare cu restul echipei vor începe să devină din ce în ce mai rare pe măsură ce hackathon-ul se apropie de final.

O greșeală pe care echipele aflate la început de drum o fac este asumarea, din oficiu, a faptului că fiecare membru are aceeași perspectivă asupra produsului final, lucru care, de cele mai multe ori, este departe de a fi adevărat.

Pe măsură ce fiecare persoană internalizează ideea aleasă, fiecare va adăuga acesteia detalii personale în mod involuntar, fapt care, pe măsură ce complexitatea proiectului crește, ar putea conduce la multe surprize neplăcute.

API-ul returnează alte date decât cele așteptate în pagina de profil a utilizatorului? Nu ai implementat un sistem de utilizatori? Verdele țipător al site-ului nu se potrivește cu albastrul calm al prezentării pentru pitching?

S-ar putea să nu mai fie suficient timp pentru remedierea tuturor acestor decalaje.

Prin urmare, asigură-te că reușești să aloci, periodic, câteva minute pentru sincronizare între toți membrii echipei. O sesiune de lucru trebuie să fie suficient de lungă pentru a putea face progrese, dar nu atât de lungă încât să permită apariția prea multor diferențe între componente care vor trebui integrate.

Tehnica Pomodoro poate reprezenta un punct de plecare, iar durata sesiunilor de lucru poate fi ajustată pe parcurs, în funcție de progresul obținut, de munca rămasă și de intuiția colectivă.

În plus, dacă simți că o organizare puțin mai riguroasă ar putea fi în beneficiul echipei tale, nu ezita să le sugerezi colegilor o platformă pe care să vă planificați task-urile și să vă urmăriți progresul. 

De exemplu, poți opta pentru platformele integrate în GitHub și GitLab, astfel încât, la fiecare nou push să poți arunca o privire asupra progresului colegilor tăi fără să îi întrerupi. 

Dacă acestea ți se par sărace în opțiuni, Trello este o alternativă în care, fără doar și poate, vei găsi mai multe funcționalități decât vei avea nevoie. 

Totuși, dat fiind faptul că timpul este limitat, nu încerca să transformi fiecare tichet într-un user story demn de invidiat – scopul organizării este ca echipa să câștige timp, nu să adauge pași intermediari care să vă scadă productivitatea. 

7. Acordă atenție imaginii

Pe tot parcursul concursului atenția celor mai mulți membri va fi concentrată, în mod natural, asupra funcționalităților și mai puțin asupra imaginii de ansamblu, fapt ce s-ar putea transforma într-un dezavantaj la finalul concursului, atunci când aplicația, deși complexă, s-ar putea să nu atragă atenția celor din juriu. 

Înainte de a începe dezvoltarea propriu-zisă, asigură-te că echipa ta are un plan complet, care să prevadă atât funcționalități utile, cât și o interfața grafică simplă de folosit. Mai mult decât atât, nu uita să stabilești împreună cu colegi tăi un scenariu de integrare a celor două componente. 

Nu ezitați să folosiți instrumente precum Wireframe.cc sau Diagrams pentru prototiparea interfețelor și pentru construirea unor diagrame care să descrie clar structura API-ului pe care vă pregătiți să îl implementați. 

Acest lucru vă va ajuta să evitați modificările de ultim moment ce ar putea să afecteze aspectul de ansamblu al aplicației.

În plus, dat fiind faptul că un hackathon este un concurs dedicat construirii unui produs cât mai complet, nu doar a componentei sale informatice, e foarte important să rezervați câteva zeci de minute pentru pregătirea pitch-ului!

Acest lucru poată părea o formalitate, însă e foarte important să nu uitați că întreaga voastră muncă va fi apreciată de juriu prin prisma pitch-ului susținut. Este esențial ca fiecare membru să aibă un aport asupra prezentării finale și să acorde feedback constant pe măsură ce aceasta este construită. 

Detaliile de implementare sunt importante, însă, într-un hackathon, imaginea creată în jurul unui produs este cea care va aduce întotdeauna un loc pe podium.

8. Nu uita să te relaxezi

Atunci când cele 24 de ore de la începutul concursului se vor transforma în 10, s-ar putea să uiți cel mai important lucru: desemnarea unei echipe câștigătoare NU este motivul pentru care întreg hackathon-ul se întâmplă.

Într-adevăr, premiul poate reprezenta o motivație foarte puternică, însă, mai ales dacă ești la început, încearcă să te gândești la victorie ca la un bonus. De cele mai multe ori, rezultatele obținute la o astfel de „întrecere” nu sunt direct proporționale cu abilitățile tehnice ale unui participant, ci cu experiența acestuia.

Vei observa că, adesea, membrii echipelor care ajung să câștige sunt relaxați, interacționează cu cei din jurul lor, fac multe pauze în care își discută progresul și sunt interesați de ideile celorlalți participanți – cu alte cuvinte profită de tot ceea un hackathon poate să le ofere, iar acest lucru este extrem de important nu atât pentru câștigarea concursului prezent, cât pentru dezvoltarea unei dorințe de a participa, de fiecare dată, la încă unul. Această dorință va conduce, pe termen lung, la formarea unei noi pasiuni, la dobândirea experienței și, în cele din urmă, la câștigarea mai multor hackathoane.

Te afli la prima participare?

Amintește-ți constant să nu fii atât de dur cu tine! 

Nu ești un programator slab dacă nu vei reuși să implementezi ceea ce ți-ai propus, ci doar un programator care nu e obișnuit să lucreze într-un astfel de context. Un hackathon înseamnă mult mai mult decât concursul în sine: ia o pauză și discută cu organizatorii sau cu membrii celorlalte echipe, iar, când distanțarea fizică nu va mai reprezenta o necesitate și evenimentele se vor desfășura, din nou, în format fizic, nu uita să faci o vizită bufetului – s-ar putea să îți recapeți entuziasmul mai repede decât crezi!

Pe lângă toate acestea, nu ezita să profiți de prezența mentorilor și să discuți cu aceștia cât de mult poți. Pune-le întrebări diverse, chiar dacă nu sunt lucruri direct legate de proiectul tău – e o șansă unică să poți învăța ceva nou de la o persoană mai experimentată. Răspunsurile lor s-ar putea să-ți ofere perspective la care nici nu te-ai fi gândit!

Ai ceva mai multă experiență în ceea ce privește un hackathon?

Nu uita că în jurul tău s-ar putea să fie persoane care nu au! Încearcă să ai o atitudine relaxată și să discuți cu cei din jurul tău – nu știi niciodată când vei învăța un lucru nou sau când vei cunoaște un viitor coleg de echipă.

Nu uita: indiferent de rezultatul obținut, la finalul unui hackathon vei fi întotdeauna mai bine pregătit decât la începutul acestuia!

Te simți puțin mai încrezător în urma acestor sfaturi? 

Crezi că ai putea să dai “skip” câtorva greșeli și să aplici cele învățate în cadrul unui hackathon?

Ai ocazia perfectă să o demonstrezi! 

În perioada 27-28 februarie 4MAYO organizează Spacehack, un hackathon de 24 de ore ce își propune să aducă educația financiară mai aproape de fiecare persoană. 

Înscrie-te alături de prietenii tăi și pune bazele unui viitor mai educat!

Distribuie articolul pe: