Ho lavorato a un progetto software prevalentemente da solo per oltre 5 anni. Era un casino per cominciare (io sono il terzo o il quarto sviluppatore a lavorarci su), e anche se è meno disordinato ora è ancora incredibilmente disorganizzato. Il tasso di progresso nel prenderlo sotto controllo è glaciale e sto iniziando a sentirmi scoraggiato rispetto allo stato in cui si trova. Come posso davvero iniziare a risolverlo?
Specifiche del progetto: è un programma di vendita scritto quasi interamente in Visual Basic Classic (VB6) con un back-end MySQL e un motore di reporting scritto in C #. Il modulo di segnalazione C # è una gioia su cui lavorare, è stato solo scritto negli ultimi due anni e prima che tutti i report fossero fatti in Crystal Reports 9 (sì, abbiamo ancora alcuni report che si basano su di esso).
Il vero programma in sé, tuttavia, è un disastro completo. Non ci sono 90k LOC totali e circa 10k righe di commenti (principalmente non documentazione, ma codice vecchio che è stato commentato). 158 file di moduli e 80 file di moduli. Non ho idea di quanti di questi siano effettivamente usati, perché alcune funzionalità del programma sono semplicemente deprecate e (uh, a volte) sono annotate come tali senza che il codice associato venga rimosso dal programma. Direi che solo il 50% del codice è in uso produttivo effettivo.
Ho paura di toccare molto del codice solo perché non sono sicuro se sto rompendo qualcosa su cui un cliente oscuro si basa, è successo in più occasioni di quanto possa contare. È come se ci fossero mine antiuomo sparse per tutto il codice.
Non c'è davvero alcuna struttura nel progetto. Non è orientato agli oggetti tranne nei pochi luoghi in cui ho avuto la pazienza di riformare finora. Se hai bisogno di ottenere dati su un modulo, istanzia un oggetto di database, dichiara la tua query proprio lì nella funzione, eseguilo e fai ciò che vuoi con il set di dati.
Quando ho iniziato a lavorare sul progetto non c'era nessun controllo sorgente in uso. Ho cercato di incoraggiare le altre persone a cui stavo lavorando per usarlo, ma ero il nuovo ragazzo ei miei tentativi di convincere la gente a usare la sovversione, ma non ci sono riusciti. Lo sviluppatore principale della compagnia ha finalmente colto un insopportabile bug negli ultimi due anni e ha fatto in modo che tutti gli sviluppatori usassero il controllo del codice sorgente su tutti i progetti ora, quindi almeno alcuni progressi.
Penso che se fossi in grado di lavorare sulla riforma del progetto a tempo pieno sarei in grado di fare progressi decenti e forse anche di avere una stima per quanto tempo mi ci vorrà per rifare completamente il progetto, ma è in uso attivo e mi viene costantemente chiesto di spegnere incendi, correggere bug, aggiungere funzionalità, ecc. ecc.
Quindi come posso iniziare a risolvere veramente questo progetto? Prova a utilizzare lo strumento VB6 con un'altra lingua? Prova a riscrivere il programma nel mio tempo libero? O è completamente senza speranza?
Aggiorna
Dopo questo post sono tornato al progetto con rinnovato zelo, ma sono rientrato nella disperazione in pochi mesi dopo aver visto un ritmo così lento. Ho quindi ripetuto questo ciclo altre 2 o 3 volte nel corso del prossimo anno.
Da allora mi sono trasferito in un altro lavoro. Anche se dopo tanti anni di vb6, e solo l'esperienza periferica con altre tecnologie, la ricerca è stata difficile e ho affrontato molti rifiuti lungo il percorso (circa una dozzina di interviste nel corso di un anno). Il mio consiglio agli altri in questa situazione è di prendere in considerazione la possibilità di lasciare questo fattore da solo. Considera il danno che puoi fare alla tua carriera rimanendo in una posizione senza uscita come questa.