Un progetto software su cui sto lavorando coinvolge me e un altro programmatore. Il progetto prevedeva un back-end del motore con un front-end MVC. Inizialmente ho fatto molto del lavoro sul progetto e quindi ho impostato alcune semplici metodologie di progettazione che riguardano principalmente l'astrazione e la strategia dei modelli.
Per un po 'sono stato fuori dal motore e ho lavorato sul sito web. Tuttavia, ho mantenuto un interesse per il motore, poiché mi è stato comunicato che potrei esserci di nuovo a un certo punto.
Il progetto è in una scadenza molto ravvicinata, quindi stiamo tutti correndo come se fossi finito per finire sia sul front end che sul back end.
Non mi considero un grande programmatore e quindi non cerco mai di applicare un particolare design o una serie di metodologie alle persone, dato che non sono sempre sicuro di avere ragione e di avere altre persone che offrono le loro opinioni per cercare di trovare soluzioni migliori. Tuttavia ho notato delle modifiche apportate a questo codice del motore che sta davvero iniziando a infastidirmi. Quando ho affrontato lo sviluppatore per suggerire che ha fatto il lavoro in un altro modo, ha detto di non vedere il punto in cui sembrava esserci poco beneficio considerando le scadenze ravvicinate.
Dovevo cercare di spiegare che il problema che aveva messo in campo poteva significare ulteriore sviluppo dopo il rilascio e non pensavo fosse giusto fare in modo che gli altri prendessero il gioco quando ora potevamo sistemarlo. Ho passato circa 30 minuti a esaminare ciò che avevo fatto e alla fine mi ha chiesto di scrivere il codice in modo tale da poterlo copiare.
La base di ciò che avevo impostato inizialmente era:
- Una classe astratta x
- Una classe factory astratta per creare istanze concrete di x
Ciò che era accaduto era che aveva messo un paio di istruzioni if che potevano essere facilmente messe come metodi virtuali / astratti nella classe astratta e poi implementate di conseguenza, dato che la nuova modifica seguiva già lo stesso principio di altri metodi sulla classe astratta .
Questo mi sembra banale, tuttavia non è nemmeno riuscito a capirlo anche quando gli ho mostrato le classi coinvolte.
Ora la mia domanda è:
- È ingiusto presumere che avrebbe dovuto cogliere questo concetto. Mi rendo conto che siamo in scadenza, ma ho pensato che fosse banale. Il programmatore dovrebbe essere almeno di livello intermedio.
- Questo è successo in un certo numero di posti e ho sempre cercato di farlo cambiare, ma non sembra. Dovrei semplicemente ignorarlo?
- Dovrei sollevare questo problema da qualche altra parte, o semplicemente succhiarlo e quando tornerò sul progetto andremo in giro a cambiare tutte queste cose.
La sua parte del progetto non sarà terminata ed è per questo che dovrò tornare ad aiutarlo. Anche io non lo voglio, dato che ha preso un progetto non eccezionale, ma con un'architettura ok e in realtà ha messo un sacco di codice disordinato che più spesso non ha seguito ciò che si stava cercando di ottenere.
Se la domanda è troppo vaga o scarsa, faccelo sapere e proverò a modificarla di conseguenza.
MODIFICATO: il progetto dovrebbe continuare dopo la scadenza iniziale poiché sono già in programma i lavori di follow-up e il lavoro che non abbiamo seguito e che è stato concordato per l'implementazione successiva.