La manutenibilità è una parte importante dello sviluppo di software professionale. In effetti, la manutenzione è quasi sempre la parte più lunga di un ciclo di vita del software, poiché dura dal rilascio del progetto fino alla fine dei tempi.
Inoltre, i progetti in manutenzione rappresentano una grande maggioranza del numero complessivo di progetti. Secondo http://www.vlegaci.com/298/interesting-statistics-%E2%80%93-numbers-of-programmers-in-maintenance-vs-development/ , la percentuale di progetti in manutenzione è di circa 2 / 3.
Di recente mi sono imbattuto in questa domanda , in cui il ragazzo sembra piuttosto sorpreso scoprendo che il suo lavoro riguarda principalmente la manutenzione. Ho quindi deciso di aprire una discussione (in francese) sul sito principale della comunità francese di professionisti dello sviluppo software ( http://www.developpez.com/ ). La discussione si intitola "Gli studenti sono abbastanza preparati alla realtà dello sviluppo di software professionale?" e riguarda principalmente la manutenibilità . È stato sottolineato che, almeno in Francia, le persone non sono abbastanza preparate per affrontare la manutenzione in entrambi gli aspetti:
- mantenere il codice esistente
- rendere il codice gestibile
La mia domanda qui fa eco a questa discussione e mira a trovare un buon modo per insegnare la manutenibilità.
- Come possiamo insegnare la manutenibilità?
- Che tipo di esercizio suggeriresti?
- Se sei stato ben addestrato per quanto riguarda la manutenibilità, quale particolare tipo di corsi hai seguito?
[modifica] Dopo alcuni fraintendimenti, penso di dover chiarire la mia domanda. Come capo progetto e sviluppatore di software, lavoro spesso con tirocinanti o studenti appena laureati. Una volta mi ero appena laureato. Il fatto è che gli studenti di solito non hanno familiarità con principi come SOLID che aumentano la manutenibilità di un progetto. Spesso finiamo per avere importanti difficoltà a far evolvere i progetti (bassa manutenibilità). Quello che sto cercando qui è un esempio accademico concreto di insegnamento di successo sull'importanza della manutenibilità e su come rendere il codice migliore riguardo a questo particolare punto; o possibili suggerimenti per migliorare il modo in cui gli studenti vengono formati.