Qu'est-ce qu'une crise logicielle?
Une crise de logiciel est une inadéquation entre ce que le logiciel peut fournir et les capacités des systèmes informatiques, ainsi que les attentes de leurs utilisateurs. Cela est devenu un problème croissant au 20ème siècle, alors que l'informatique progressait à pas de géant et que les logiciels étaient incapables de suivre le rythme. Au fur et à mesure que la complexité des systèmes augmente, les besoins des utilisateurs grandissent, tout comme les attentes de leurs logiciels. Les programmeurs peuvent avoir du mal à suivre le rythme, ce qui crée une crise logicielle.
Les logiciels grand public passent généralement par une série lente de phases de développement, mais ne représentent qu'une petite partie du volume d'affaires du secteur. La majeure partie du développement de logiciels repose sur des systèmes destinés à des applications spécifiques, allant des programmes de guidage de missile à bord de croiseurs de navires à la tenue de dossiers internes pour les sociétés d’assurance maladie. Ce logiciel nécessite généralement un investissement substantiel de la part du client, ainsi que des programmes étendus de la part du personnel chargé de son développement, de son test et de sa maintenance.
Ces projets peuvent être confrontés à une crise logicielle où ils commencent à dépasser leur budget et prennent beaucoup plus de temps que prévu à se développer. Les programmeurs travaillant sur le logiciel peuvent être amenés à faire face à des correctifs de bogues courants tout en apprenant de nouveaux aspects d’un système, en effectuant des ajustements pour le client et en résolvant d’autres problèmes qui pourraient survenir. Une qualité médiocre peut être un problème, car les programmeurs peuvent être confrontés à une pression croissante pour respecter les budgets à tout prix, même si cela signifie que le logiciel ne sera pas de bonne qualité. Moins de documentation a également tendance à être produite.
Ce n'est pas seulement un problème pour le développement de nouveaux produits logiciels. Une autre préoccupation peut être la nécessité de maintenir des logiciels plus anciens, ce qui peut poser des problèmes liés à un développement médiocre ou à l’impossibilité d’anticiper les besoins croissants. Les programmeurs pourraient passer beaucoup de temps à garder les logiciels hérités afin qu'une entreprise puisse continuer à fonctionner. Avec un investissement important dans les logiciels plus anciens, la société peut être réticente à commander un nouveau programme, même si cela répondrait mieux à leurs besoins, car cela pourrait impliquer davantage de dépenses et de problèmes lors du basculement.
La pression exercée pour produire un code complexe et avancé peut contribuer de manière significative à la crise des logiciels. Il peut être difficile de contrôler la pression tout en maîtrisant les coûts et en respectant un calendrier. Certaines mesures permettant de faire face à une crise logicielle peuvent inclure une planification avancée avancée, la sélection de personnel hautement qualifié et des mises à jour continues pour garantir que le projet reste sur la tâche et la concentration.