Mi sono laureato in Scienze informatiche un anno fa, e ora lavoro in una piccola società di sviluppo web (io e un altro sviluppatore, oltre a manager, servizio clienti e tester). Fino a poco prima che iniziassi, non esisteva alcun sistema di controllo del codice sorgente. Stiamo lentamente iniziando a implementare SVN, ma l'altro (senior) sviluppatore (d'ora in poi indicato come Joe) insiste sul fatto che l'unico codice che dovrebbe essere impegnato nel nostro repository SVN è quello che è stato testato e approvato come pronto per la produzione. Ciò significa che, in progetti di grandi dimensioni, potrebbero non esserci commit per settimane alla volta o più.
Questa è una pratica normale? Mi sembra che perdiamo molti dei benefici del controllo del codice sorgente, tra cui:
- Tracciamento preciso dell'avanzamento del progetto
- Tracciamento dei problemi man mano che vengono visualizzati e risolti
- Errori facilmente ripristini
- Backup semplice del codice, quindi non perdiamo molto se una workstation si interrompe
- È più facile identificare esattamente quale codice è in esecuzione in quali siti di produzione, supponendo di applicare le revisioni agli eseguibili come descritto qui
- Collaborazione semplice (anche se non facciamo alcun lavoro di gruppo, sono tutti progetti solisti)
- Etc .
EDIT: Vorrei sottolineare che, storicamente, non c'è stato alcun vero lavoro di squadra in questa azienda; solo due sviluppatori che lavorano su progetti separati. Inoltre, molti dei progetti sono piccoli, quindi possono essere completati in un paio di settimane. E la compagnia è in attività da oltre un decennio e si è comportata bene senza il controllo del codice sorgente. I progetti vengono solitamente completati entro i tempi previsti.