Je vais faire écho au sentiment de GrandmasterB en disant que si vos développeurs ne restent que 4 à 9 mois, le problème n'est pas le fait que ces développeurs sont mis en maintenance. Vous avez un problème plus grave, et les gens qui quittent votre entreprise et vous disent que c'est à cause de la maintenance essaient simplement de calmer le vrai problème. Bien que je ne puisse pas parler pour les autres, une des raisons pour lesquelles je pourrais faire quelque chose comme ça serait parce que j'ai l'impression que si je soulevais le vrai problème, je ne serais pas écouté. Quelque chose, peut-être, comme un manager toxique qui est dans l'entreprise depuis des années et que la direction l'aime, mais tous ses subordonnés directs se plaignent de lui, mais les RH ne font jamais rien parce qu'ils pensent qu'il est génial et qu'il produit des résultats. Connaissez-vous quelqu'un qui pourrait correspondre à cette description au sein de votre organisation? (indice: sinon, ce pourrait être vous). Vous pouvez rechercher votre entreprise sur Glassdoor et voir ce que les gens disent de votre entreprise; les gens ont tendance à être plus honnêtes lorsqu'ils sont anonymes, et vous pourriez y trouver la vraie raison. Il est important que lorsque vous parcourez les avis de Glassdoor pour comprendre que la plupart des gens n'essaient pas de vous calomnier, ils donnent leurs vrais conseils en fonction de leurs expériences réelles, et de nombreuses entreprises se mettent sur la défensive lorsqu'elles ont un problème, alors que vous devriez être introspectif et essayez de résoudre le problème.
Voici une autre question qui pourrait vous éclairer sur la manière dont votre entreprise peut être gérée au niveau macro: disons que je rejoins votre entreprise. Vous m'avez mis sur un projet pendant les 6 premiers mois, puis je termine le projet et vous m'avez mis en maintenance pour le reste de mon mandat dans l'entreprise. Ensuite, vous voulez démarrer un nouveau projet, donc vous embauchez quelqu'un d'autre. Ensuite, ils passent à la maintenance. Ensuite, vous démarrez un nouveau projet et embauchez quelqu'un d'autre, et ainsi de suite. Pendant ce temps, moi et l'autre gars sommes toujours dans l'entreprise, nous sommes des développeurs capables qui pourraient faire le projet, et vous ne nous utilisez pas pour répondre aux besoins de votre projet. Outre le fait que cela nous fait nous sentir inutiles parce que nous n'obtenons pas le travail de projet «intéressant», cela signifie également que votre base de code est un gâchis, car chaque fois que vous faites un nouveau projet, vous embauchez de nouvelles personnes qui entrent dans l'entreprise avec leurs propres normes, expériences et styles. Cela augmente le coût de maintenance de votre service dans son ensemble, car en plus des tâches de maintenance régulières telles que la qualité des données et le triage des bogues, nous (les responsables de la maintenance) devons également comprendre potentiellement des dizaines ou des centaines de styles de codage différents de toutes les personnes différentes, certains d'entre eux. qui ont peut-être quitté l'entreprise après avoir soumis leur code.
En réalité, vous ne devriez pas avoir une "équipe de projet" et une "équipe de maintenance". Vous devez diviser votre équipe par responsabilités ou domaines, puis chaque développeur de chaque équipe est responsable à la fois du nouveau développement et de la maintenance de tout ce qui relève de son domaine. Ensuite, vous avez des chefs d'équipe ou des responsables de l'ingénierie qui répartissent ces tâches entre les membres de leur équipe afin que chacun ait une part décente des nouvelles tâches de développement et de maintenance.
Un autre signal d'alarme à propos de votre entreprise est que vous ressentez le besoin d'avoir une "équipe de maintenance", c'est-à-dire un ensemble de développeurs qui sont en service de maintenance à plein temps. Cela en dit long sur la qualité de votre code d'application. Des bogues se produisent, c'est sûr, mais si vous avez tellement de bogues que vous avez une équipe dont la responsabilité principale est de passer d'un bogue à l'autre pour éteindre les incendies, cela pourrait valoir la peine d'envisager une réécriture de votre application, car ce n'est pas censé se passer. Cela vient de l'embauche de mauvais développeurs, et les mauvais développeurs sont aussi des personnes qui pourraient partir d'ici 4 à 9 mois, comme "voici mon code de merde, maintenant c'est votre problème, à bientôt" (pas que les bons développeurs n'aient pas de raisons de partir rapidement , mais les mauvais développeurs ont plus de raisons de partir rapidement). Vous devriez probablement également jeter un coup d'œil à la rémunération de vos employés et la comparer aux taux du marché pour voir si vous n'attirez peut-être pas les talents. Le talent attire plus de talent; J'adorerais travailler avec des gens qui sont plus intelligents que moi, mais si tout le monde est moins qualifié que moi, je n'ai aucune raison de rester car je n'apprends pas ou ne fais rien d'intéressant, et je dois constamment réparer les autres le mauvais code des gens parce que personne n'écrit de code aussi bon que le mien.
En bref:
1) Vous avez probablement un problème au sein de votre organisation sous la forme d'une personne toxique dans la gestion. Découvrez de qui il s'agit et débarrassez-vous d'eux.
2) Vous devriez probablement diviser vos équipes en domaines de projet plutôt que maintenance par rapport à projet, et avoir des chefs d'équipe qui répartissent les tâches de projet et de maintenance pour garder votre les développeurs sont satisfaits.
3) Vous devriez probablement augmenter vos taux de rémunération pour attirer les talents qui peuvent créer un meilleur code afin que vous ayez à faire moins de maintenance. Vous pouvez également supprimer votre application actuelle et la reconstruire complètement une fois que vous avez de bons talents à bord pour réduire les coûts de maintenance.