pexels-photo-457444

Porta con te un coltello

Il consiglio di un mio amico, trent’anni fa, mentre ci accingevamo a fare una passeggiata in Barbagia, era sensato: porta con te qualcosa che ti possa essere utile per ogni evenienza, metti che ti va un fico d’india o vuoi raccogliere asparagi.

In ogni mestiere ci sono dei “tool” che ci accompagnano, ci servono a migliorare il nostro lavoro, a farci sentire più sicuri.

Personalmente ho attraversato talmente tanti anni nel mio percorso da developer: non provo particolare affezione per un IDE.

Uso attualmente soprattutto VSCode e VIM (quando sono davanti ad una cli: non fate finta di niente, lo so che non sapete uscire da VIM e usate NANO) ma cambierei IDE senza nessun problema a seconda di come tira il vento, le comodità a cui ci si abitua in fretta su VSCode e simili, non ci sono sempre state, e per uno della mia esperienza non sembrano sempre necessarie.

Alcuni tool invece risultano estremamente necessari e totalmente irrinunciabili.

Inutile dire che un mondo senza GIT sarebbe un mondo molto triste, in cui i developer salverebbero i file in cartelle con nomi tipo “ultimo-ultimo prometto ultimo”.

GIT oltre che un tool è un processo di sviluppo, che deve essere chiaro a tutti nelle sue meccaniche, che vanno dall’apertura delle issues, dai commit ai rebase, alle PR e CR risultanti: in azienda occorre un manuale operativo scritto che spieghi a tutti quali sono i processi e come li gestiamo, non tutti i team sono uguali, c’è chi preferisce GitHUB, chi GitLAB, c’è chi preferisce usare i tag per le versioni, chi ha una pipeline di CI/CD scritta in un modo, chi in un altro.

L’importante del processo GIT è che esista, che abbia senso compiuto, che sia stato discusso nel team, che si tenda a migliorarlo, che sia comprensibile ed accettato da tutti.

Metterei tra i tool obbligatori anche un linter, non è accettabile che un developer usi il camel case, un altro lo snake case, che le parentesi siano formattate diversamente: avere un linter configurato nello stesso modo per tutto il team evita questo disordine.

Anche qui si tratta di un processo oltre che un tool: va decisa la convenzione di scrittura collegialmente e poi va rispettata da tutti.

Serve un tool che generi la documentazione (sì, il codice dovete commentarlo) automaticamente e magari la pubblichi subito con una github action o similari.

Idealmente nell’ottica di avere una documentazione completa e aggiornata consiglio anche di approcciarsi alle api con una modalità contract first e usare gli appositi tool per generare la documentazione dai contratti.

Qualsiasi sia il linguaggio, per evitare più guai possibili, tipizzate se il linguaggio lo permette, e scrivete sempre i test.

Oggi inoltre rientra nei requisiti di sicurezza e di logica depositare le proprie librerie comuni e quelle usate in una repository privata, stile npm e similari.

Questo processo è un po’ legnoso inizialmente ma vi darà maggior controllo su tutto quello di cui il vostro software abbisogna.

Credo di aver nominato i tool irrinunciabili ad un developer che lavora in team: segnalatemi pure cosa aggiungereste a questa lista.

Ho volutamente tralasciato i software di comunicazione, di product design e di planning.

Lascia un commento