Abbiamo un sito web di grandi dimensioni (1200+ ore) che ha molto di debito tecnico. Questo è principalmente causato dai seguenti (soliti) motivi.
- Più programmatori che vanno e vengono durante lo sviluppo.
- Modifica delle specifiche durante lo sviluppo.
- Numerose funzionalità aggiunte aggiunte (in breve tempo).
Il cliente vuole un sacco di nuove funzionalità e in pratica si tratta di lavorare su questo progetto settimanale per oltre 10 ore.
A causa del debito tecnico, spendiamo A LOT di ore che risolvono o analizzano problemi, che di solito trovano la loro origine in uno dei seguenti:
- Un bug svergognato e sciocco che fa piangere la gente.
- Una nuova funzione risulta in quanto sopra perché non avevamo previsto tutti i luoghi in cui la nuova funzione avrebbe avuto un'influenza.
- Alcuni altri problemi che abbiamo riscontrato (ad es. migrazione del server, aggiornamenti)
Abbiamo problemi ogni giorno e abbiamo cercato di seguire le cose per fermarlo:
- Creazione della documentazione tecnica relativa all'importazione, al pagamento e al funzionamento generale del sito Web.
- Avere una riunione all'inizio della settimana - discutere dei problemi attuali o dei miglioramenti e come dovrebbero essere affrontati.
- Avere un piano di test. Programmatore Un test B, B test C e C test A. Quindi il nostro Project Manager eseguirà alcuni test. Per quanto riguarda l'impatto della funzione, la gettiamo in un ambiente di staging e permettiamo al cliente di verificare da sé.
Il problema è che i problemi continuano a succedere ... e in qualche modo non possiamo farcela. Le nuove funzionalità continuano a causare bug e i vecchi bug continuano a dire ciao. In qualche modo, forse a causa delle dimensioni del progetto, non riusciamo a prendere confidenza con questo progetto.
Presumo che ci siano molti programmatori che lavorano su progetti più grandi di questo. Ecco perché vengo alla mia domanda:
Che cosa possiamo fare, o che cosa tu fai per evitare questi problemi su progetti di grandi dimensioni?
Modifica secondaria, informazioni extra:
- Usiamo il controllo della versione (SVN).
- Abbiamo il processo di sviluppo DTAP.