La main-d'œuvre est une participation majeure du développement logiciel professionnel. En effet, la maintenance est presque toujours la partie la plus longue d'un cycle de vie logiciel, car elle dure de la libération du projet jusqu'à la fin de la fin des temps.
De plus, des projets étant en maintenance représentent une grande majorité du nombre total de projets. Selon http://www.vlegaci.com/298/interresting-statistics-%E2%80%93-numbers-of-programers-in-Maintenance-vs-development/ , la proportion de Les projets étant en maintenance sont environ 2/3.
J'ai récemment rencontré cela question , où le gars a l'air assez surpris de découvrir que son travail consiste principalement à la maintenance. J'ai ensuite décidé d'ouvrir une Discussion (français sur le site principal de la communauté française de professionnels du développement de logiciels ( http://www.developpaz.com/ ). La discussion est intitulée "Les étudiants sont-ils assez bien formés à la réalité du développement de logiciels professionnels?" et est principalement environ maintenabilité . Il a été souligné que, du moins en France, les gens ne sont pas assez bien préparés pour faire face à la maintenance des deux aspects:
Ma question ici fait écho à cette discussion et vise à trouver un bon moyen d'enseigner la maintenabilité.
[EDIT] 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. Une fois, j'ai été fraîchement diplômée moi-même. La chose est que les étudiants ne soient généralement pas familiers avec des principes tels que SOLID = === qui augmentent la maintenabilité d'un projet. Nous finissons souvent à avoir des difficultés importantes faisant des projets évoluent (faible maintenabilité). Ce que je cherche Voici un exemple académique concret d'enseignement réussi sur l'importance de la maintenabilité et sur la manière de créer un meilleur code concernant ce point particulier; ou des suggestions possibles pour améliorer la manière dont les étudiants sont formés.
Disclaimer: Je viens de recevoir mon diplôme CS. Je ne suis pas un enseignant.
Cela peut sembler évident, mais je pense que le meilleur moyen d'enseigner la maintenance du code est de faire effectuer des étudiants de maintenance du code. Voici ce que je ferais:
L'idée est de savoir non seulement que les élèves travaillent avec le code de quelqu'un d'autre, mais également de leur faire évoluer une appréciation du code maintenu qui, espérons-le, améliorera leurs compétences de conception.
Je n'aime pas le terme maintenable par rapport au développement de logiciels. La réalité est que tous les logiciels sont maintenus en ce sens qu'il peut être soumis à des travaux de maintenance. Le problème réel est donc de savoir si des logiciels sont coûteux ou peu coûteux de maintenir, relativement parlant. Je sais que cela ressemble à une énoncé très pédant à faire au début d'une réponse, mais mon point deviendra plus clair dans un instant.
Le problème avec ses diplômes que le développement de logiciels majeur est qu'ils n'apprendent vraiment que les élèves le plus grand minimum que les étudiants doivent savoir sur l'écriture de logiciels. Les compétences professionnelles et les connaissances sont gagnées grâce à l'apprentissage qui se fait dans les premières années après qualificatif pour le diplôme. C'est quand un diplômé commence à travailler sur des projets qui comptent réellement pour un client, dans un environnement où il y a une grande pression à effectuer, et l'attente est de créer un produit à une norme professionnelle. Malheureusement, de nombreuses entreprises n'encouragent pas une culture dans laquelle les normes professionnelles des logiciels sont maintenues et se retrouvent avec des projets qui se révèlent coûteux pour développer et maintenir en conséquence. Malheureusement pour nos diplômés, ils apprennent beaucoup de mauvaises habitudes dans de tels environnements dans les premières années de leur carrière, et cela peut être longtemps avant d'apprendre à surmonter ces habitudes ... du tout.
Vous feriez mieux d'enseigner aux élèves comment écrire du code propre et comment identifier les problèmes liés aux logiciels qui finissent généralement par supporter dette technique . Regardez dans des livres sur - Clean Code , refactoring et Développement du logiciel Lean comme point de départ comme un lieu de départ et apprendre aux étudiants à écrire une unité Tests avant le code de mise en œuvre afin de s'assurer qu'il existe un degré de couverture de test élevé. Enseignez aux élèves de reconnaître des modèles dupliqués et répétitifs au sein de leur code et comment refactoriser le code pour supprimer une telle duplication. Aidez les élèves à comprendre et à appliquer des principes tels que SOLIDE et SEC . Plus important encore, éliminez cette idée que la capacité de maintenir le code est quelque chose qui se fait uniquement sur la conception et la mise en œuvre du code, et instillez plutôt un sentiment d'artisanat et de qualité dans la production de logiciels dès le départ, cherchant à Affinez le code tel qu'il est mis en œuvre afin de minimiser l'impact de la dette technique et de maintenir ainsi le coût de maintenance de logiciels au minimum au fil du temps.