La maintenabilité est un enjeu majeur du développement logiciel professionnel. En effet, la maintenance est presque toujours la partie la plus longue du cycle de vie d'un logiciel, car elle dure de la sortie du projet jusqu'à la fin des temps.
De plus, les projets en cours de maintenance représentent une grande majorité du nombre total de projets. Selon http://www.vlegaci.com/298/interesting-statistics-%E2%80%93-numbers-of-programmers-in-maintenance-vs-development/ , la proportion de projets en cours de maintenance est d'environ 2 / 3.
Je suis récemment tombé sur cette question , où le gars a l'air assez surpris de découvrir que son travail concerne principalement la maintenance. J'ai alors décidé d'ouvrir une discussion (français) sur le site principal de la communauté française des professionnels du développement logiciel ( http://www.developpez.com/ ). La discussion est intitulée "Les étudiants sont-ils suffisamment bien formés à la réalité du développement logiciel professionnel?" et concerne principalement la maintenabilité . Il a été souligné que, du moins en France, les gens ne sont pas suffisamment bien préparés pour faire face à l'entretien dans les deux aspects:
- maintenir le code existant
- rendre le code maintenable
Ma question ici fait écho à cette discussion et vise à trouver un bon moyen d'enseigner la maintenabilité.
- Comment pouvons-nous enseigner la maintenabilité?
- Quel type d'exercice proposeriez-vous?
- Si vous avez été bien formé en matière de maintenabilité, quel type particulier de cours avez-vous suivi?
[modifier] Après quelques malentendus, je pense que je dois clarifier ma question. En tant que chef de projet et développeur de logiciels, je travaille souvent avec des stagiaires ou des étudiants fraîchement diplômés. J'ai été moi-même fraîchement diplômé. Le fait est que les étudiants ne connaissent généralement pas les principes tels que SOLID qui augmentent la maintenabilité d'un projet. On finit souvent par avoir des difficultés importantes à faire évoluer les projets (faible maintenabilité). Ce que je recherche ici est un exemple académique concret d'un enseignement réussi sur l'importance de la maintenabilité et comment faire un meilleur code concernant ce point particulier; ou des suggestions possibles pour améliorer la formation des étudiants.