Un développeur estime que nous vivons dans l’âge des logiciels ratés
et l'explique par les antipatterns et mauvaises pratiques d’aujourd’hui
Il arrive souvent de trouver au sein des entreprises des logiciels développés par des ingénieurs censés être compétents, et pourtant qui laissent beaucoup à désirer. D’après un développeur, ce n’est pas parce qu’il manque de développeurs techniquement compétents, mais c’est simplement dû au fait que nous vivons dans l’âge des logiciels ratés, où les entreprises et le management sont ceux qui décident de la qualité des logiciels. En se basant sur du vécu, le développeur a dressé une liste d’anti patterns et mauvaises pratiques dans l’environnement actuel de développement de logiciels, qui conduisent à des logiciels de mauvaise qualité. Il situe le problème au-delà des compétences techniques, et le considère comme résultant de la vision de l’entreprise, du management ou encore la mentalité des développeurs eux-mêmes.
Le premier problème est que les entreprises et le management ont une vision à court terme. Comme l’explique le développeur, le monde des affaires actuel est plein d’incertitudes, ce qui conduit les entreprises à limiter la portée de certaines décisions au court terme. Malheureusement, les entreprises essaient d’appliquer cela également dans le développement de logiciels. « Plus votre logiciel peut être pensé sur le long terme, plus le développement sera robuste, économique et sans douleur », explique-t-il. Mais le management sacrifie l’intégrité de votre système logiciel avec ses prises de décisions « myopes », qui ne voient que le futur proche.
Vous devez être alignés sur le même point de vue que la direction, c’est le plus important. Ensuite, vous devez aider la direction à atteindre ses objectifs pour le prochain trimestre. « Cela signifie que la plupart de votre temps sera consacré à la lutte contre les incendies provoqués lors des trimestres précédents, la chasse aux bugs qui auraient pu être facilement évités ou refactoriser plusieurs morceaux de code indépendants, juste pour mettre en œuvre la prochaine fonctionnalité à problème ».
Si vous êtes architecte de logiciels, construire un système cohérent, compréhensible et bien conçu ne devrait pas être votre priorité. Votre mission sera de satisfaire la vision à court terme du management. Ce qui conduit à négliger une conception viable à long terme pour produire un système qui satisfait les besoins immédiats, tout en compromettant ceux à venir.
Un point mis en avant par le développeur est que vous n’êtes pas payés pour résoudre les problèmes, mais pour les endurer. L’essentiel, c’est qu’avec les codes existants qui sont remplis de bugs, vous puissiez arriver à un semblant de progrès.
Si les entreprises et le management sont myopes, vos collègues sont les seuls pour qui cela n’est pas un problème. « Alors que votre manager ne peut penser au-delà de la prochaine période de reporting, vos collègues ne peuvent probablement pas penser au-delà de la prochaine période de paie », explique-t-il. Tant que l’objectif premier de ces derniers - le salaire - est garanti, ils sont prêts à accepter n’importe quelle décision, et pour eux, le système tourne à merveille, pourquoi devrait-il donc changer ?
Si vos collègues pensent à la prochaine période de paie, il y en a probablement un dans le groupe qui a déjà ajusté ses habitudes de consommation à sa prochaine promotion. Selon le développeur, il s’agit en général de celui qui va remplacer l’architecte ou le lead. Se considérant comme le meilleur du groupe, il ne perd pas son temps dans les discussions inutiles. Il a la meilleure idée, s’il la propose et que vous ne la saisissez pas, tant pis ! « C’est le gars assis en face de vous qui ne se plaint jamais du code, qui ne perd jamais son temps pour nettoyer les choses, et qui est toujours le premier à arrêter la discussion ‘toxique’».
Le développeur regrette également l’introduction de la propriété collective du code. Il s’agit d’un principe de l’eXtreme Programming qui stipule que « chaque développeur doit pouvoir modifier toutes les parties du code si le besoin s'en fait sentir ». Pour lui, il peut être très avantageux que la modification du code soit un droit exclusif à certains développeurs. Il plaint donc la disparition d’un système où seuls les ingénieurs seniors avaient le droit de modification du code. Cela permettait en général de protéger le code contre les visions de court terme et contre « une équipe de management qui n’est pas en mesure de comprendre ou d’en apprendre davantage sur les compromis au jeu de l’ingénierie ». Ce système permettait de garantir également que le logiciel soit développé à un rythme durable avec le minimum de souffrances humaines. Malheureusement, il ne peut plus subsister avec la propriété collective du code.
Une conséquence logique est que le développeur estime que les méthodologies à l’instar de l’Agile sont plutôt des outils de management. Elles ne viennent pas pour aider à créer de meilleurs logiciels, dans la mesure où elles sont facilement détournées par le management.
Source : Medium
Et vous ?
Qu’en pensez-vous ? L’environnement moderne de développement de logiciels est-il moins favorable à la conception de bons logiciels ?
Voir aussi
Forum ALM
Forum Général Développement
Partager