Ils appellent cela le monde réel pour une raison.
99% de ce que vous rencontrerez dans le monde réel des entreprises sera considéré comme de la merde, et pour une bonne raison que je vais expliquer. Le 1% qui n'est pas considéré comme de la merde finira par devenir de la merde.
N ° 1 Ecrire Code, N ° 2 ????, N ° 3 Profit!
Tout d’abord, les entreprises existent pour générer des bénéfices, elles n’existent pas pour générer des montagnes de codes académiques parfaitement conçus et théoriquement propres, logés dans des référentiels en or de perfection. Pas même proche, pas même ceux qui vendent le code source qu'ils produisent.
Dans le monde des affaires, le code est un moyen d'atteindre un but . Si un code résout un problème métier et génère plus d’argent qu’il en coûte pour le créer et le maintenir, il est souhaitable pour l’entreprise. Vous employer pour écrire du code n’est qu’un moyen pour l’entreprise d’obtenir du code.
Théorie 0 - Pratique ∞
L'idéal serait que l'entretien soit une préoccupation, mais ce n'est généralement pas le cas, car à court terme, il ne gagne pas financièrement. À long terme, les logiciels ont généralement un cycle de vie relativement court, en particulier les applications Web, ils deviennent rapidement obsolètes et réécrits plus souvent.
Les applications métiers sont celles qui sont considérées comme des projets de zombies sans fin pour de nombreuses raisons. Ces projets sont en réalité des succès qu'ils continuent car ils continuent à faire de l'entreprise un profit.
En théorie, il n'y a pas de différence entre théorie et pratique. En pratique, il y en a. - Yogi Berra
En théorie, des bases de code parfaitement propres et parfaitement architecturées avec une couverture à 100% du code devraient permettre aux entreprises de réaliser des économies. En pratique, cela ne permet même pas d'obtenir un retour sur investissement valable.
Physique du cycle de vie du logiciel
Il existe également une force d'entropie super puissante à l'œuvre dans le monde des logiciels. C'est un trou noir d'inévitabilité qui condamne tous les logiciels à dégénérer en Big Ball of Mud .
Plus vous démarrez d'un BBM , mieux c'est, mais chaque système logiciel finira par y arriver avec suffisamment de temps. La rapidité avec laquelle vous approchez de 100% d'entropie dépend de votre point de départ, de la rapidité avec laquelle vous accumulez de la dette technique et du niveau élevé de vos intérêts.
Les systèmes logiciels dégénèrent et pourrissent à cause de la maintenance et non à cause de l'absence de maintenance. Un système en place depuis des années sans modification du code répond par définition à toutes les exigences et objectifs et constitue un succès.
Ce sont les systèmes qui nécessitent des changements constants car ils ont commencé au plus proche de l’entropie maximale. Ce sont ceux qui sont constamment piqués et poussés et c’est la maintenance qui accélère le changement négatif.
Assez bon est assez bon
Les systèmes à cycle de vie court, tels que les sites Web qui changent constamment, ne bénéficient pas d'une couverture initiale coûteuse et de 100% de code lors des tests unitaires, car la durée d'amortissement est trop courte pour permettre de réduire les coûts.
Les systèmes à long cycle de vie, tels que la gamme d’applications professionnelles internes susmentionnée, ne bénéficient pas non plus d’investissements massifs en tests unitaires de couverture de code à 100%, car le taux de changement sur la durée de vie du projet se rapproche d’une constante proche de zéro dans mode non linéaire.
C’est la raison pour laquelle les plans de fin de vie sont plus importants et que les systèmes de remplacement doivent être planifiés au moment de la sortie, et non après quelques années et qu’ils ne sont plus viables. Un nouveau système doit donc être mis en place rapidement.
Autant que je sache, ils n'enseignent rien à propos de BBM. Je n'ai jamais rencontré de jeune diplômé en informatique qui sache ce que c'était et encore moins pourquoi cela se produit.
C’est la raison pour laquelle Assez bon est bon, assez , rien de plus ou moins ne l’est.
Logiciels Slumlords
Il y a des seigneurs de taudis de l'immobilier pour une raison, ils font un profit sur les bidonvilles qu'ils possèdent. Ils font plus de bénéfices qu'ils n'en dépensent pour la maintenance incrémentale de la propriété délabrée. Sinon, ils démoliraient le bâtiment et le remplaceraient. Mais ce n’est pas le cas, car les coûts différentiels sont bien moindres que la rénovation ou le remplacement de l’ensemble du bâtiment. Il y a aussi des clients (locataires) qui sont prêts à payer pour une propriété délabrée.
Aucun propriétaire de bâtiment, maitre de taudis ou pas, ne va dépenser de l'argent sur une propriété simplement à cause d'une notion académique de perfection qui ne se traduit pas par un profit substantiel par rapport au coût associé.
Aucun client ne paiera pour les mises à niveau d'un logiciel qui fonctionne de manière acceptable pour lui. Aucune entreprise ne va dépenser de l'argent uniquement pour écrire et réécrire du code sans générer de bénéfice substantiel tangible.
Microsoft est le plus dominant et le slumlord logiciel qui réussit le mieux. Windows n'a pas commencé à recevoir de nouvelles réécritures fondamentales jusqu'à très récemment. Et ils n'ont toujours pas supprimé tout le code hérité du noyau. Cela n’a aucun sens commercial, les gens sont plus que disposés à accepter les attentes déçues qu’ils ont définies au cours de la dernière décennie.
Pronostic
Cela a été une tendance depuis plus de 20 ans dans le développement de logiciels. Cela ne va pas changer de sitôt. Ce n'est pas la façon dont les gens veulent que ce soit sorti d'un système de croyance, c'est une réalité des forces externes sur une entreprise. Les entreprises sont le moteur de la prise de décision, les profits ne sont pas mauvais, ils paient votre salaire, la vision à court terme ou à long terme n’est pas pertinente, c’est une industrie à court terme en constante évolution par définition. Toute personne qui conteste assez bien pour faire un profit ne comprend pas les affaires.
J'ai passé 15 ans à consulter et j'ai très vite compris que c'était suffisant , que tout me coûtait de l'argent. Oui, je voulais que les choses soient parfaites, mais à moins que vous ne vendiez une base de code, où 99,99999% du temps vous vendez une solution , tout ce code élégant, organisé par un préfet propre est perdu et vous perdez simplement votre temps, vous ne serez jamais remboursé .
Progrès et Espoir
Les méthodologies agiles sont un bon pas dans la bonne direction, du moins philosophiquement. Ils abordent le chaos et le changement constant en tant que citoyen de première classe et l'acceptent. Ils rejettent les pratiques dogmatiques, reconnaissant que les méthodologies et les pratiques doivent changer, ainsi que les exigences et les technologies.
Ils acceptent l'entropie introduite par le manque de temps ou l'évolution des besoins, le changement de personnel et la vivacité d'un logiciel utilisant le concept de dette technique.
Mais Agile n'est pas une panacée, il ne va pas changer les lois fondamentales de la physique et les bases de code vont pourrir indépendamment. Il appartient à la direction de planifier la gestion de la pourriture avant qu'elle ne devienne incontrôlable et incontrôlable.
Agile quand c'est fait correctement, aide à gérer l'entropie, à la ralentir, à la suivre, à la mesurer et à la gérer de manière planifiée. Ça n'arrêtera pas ça!
Décision de carrière
S'il s'agit d'un véritable problème philosophique pour vous, vous devriez probablement envisager d'autres choix de carrière, car la façon dont les choses fonctionnent a un mérite commercial valable. Les projets Open Source n’ont pas de meilleurs résultats, et dans de nombreux cas, le code est encore pire que le code de la plupart des entreprises que j’ai vu.