Il valore di una working directory
Abbiamo appena fatto il check-out del progetto su cui dobbiamo lavorare in una directory: la nostra working directory. Da questo momento in poi inizia il nostro ciclo “modifica, fondi, pubblica” e con esso cambia il valore del contenuto della working directory.
Siamo sul “modifica”, quindi stiamo aggiungendo o modificando del codice. Arriviamo alla fine della nostra modifica. Cosa succede se per sbaglio cancellassimo tutta la nostra directory? Perderemmo tutto il lavoro fatto, ovvero la mia working directory ha un valore, che economicamente è pari almeno alla controparte economica del lavoro fatto.
Purtroppo non sono ancora nelle condizioni di poter fare una commit. Infatti ho una certa confidenza che il mio lavoro sia corretto con lo stato della repository al momento dell'ultimo update; quello che devo fare è fare un update e verificare se le mie ultime modifiche sono ancora compatibili con le modifiche fatte dagli altri miei colleghi.
Ed è esattamente quello che devo fare. Faccio quindi il mio bel update, lancio i miei test, faccio dei piccoli aggiustamenti che a questo punto mi rendono confidente sul fatto che ora le mie modifiche sono compatibili con l'ultima revisione disponibili. Cosa è successo al valore della mia working directory? Questo è chiaramente aumentato, però ora posso finalmente pubblicare le mie modifiche con una commit.
Stimare il valore di una working directory con l'equivalente economico del lavoro speso per apportare le modifiche è una semplice stima per difetto. Questa stima è tanto più precisa tanto più è alta la frequenza del ciclo “modifica, fondi, pubblica”. Infatti quante più modifiche funzionanti sono presenti solo in una working directory e tanto più alto è il suo valore, che sempre più si scosta dalla semplice equivalenza economica del lavoro speso. Possiamo arrivare fino al paradosso che una working directory assume un valore pari al valore dell'intero progetto.
I consigli che si possono dare sono quindi due:
organizzare il lavoro in maniera da avere delle commit frequenti e, ovviamente, corrette;
dotarsi di un sistema di backup che provveda automaticamente alla salvaguardia delle working directory.
Per una consulenza sul versionamento dei progetti software contattami su poderico@gmail.com.


Commenti