Même lors de l'affichage de l'objet dans la manière la plus objective possible, il est clair que le logiciel, comme un produit, souffre généralement de faible qualité.
Prenez par exemple une maison construite à partir de zéro. Généralement, la maison fonctionne comme il est censé le faire. Elle restera pour de nombreuses années à venir, le toit se supporter de lourdes conditions météorologiques, les portes et les fenêtres de faire leur travail, les fondations ne va pas s'effondrer, même lorsque la maison est entièrement rempli. Bien sûr, mineur problemsdo se produire, comme un robinet qui fuit ou un mauvais travail de peinture, mais ce ne sont pas des critiques.
Logiciel, sur l'autre main est beaucoup plus susceptibles de souffrir de mauvaise qualité: les accidents imprévus, les erreurs de comportement, divers bugs, etc. Bien sûr, il existe de nombreux logiciels des projets et des produits qui montrent haute qualité et sont très fiables. Mais beaucoup de logiciels produits n'entrent pas dans cette catégorie. Prendre en considération les paradigmes comme TDD qui sa popularité est à la hausse depuis quelques années.
Pourquoi est-ce? Pourquoi les gens ont peur que leur logiciel ne fonctionnera pas ou crash? (Ne vous entrez dans une maison, craignant de ses fondations, va s'effondrer?) Pourquoi le logiciel est - subjectivement - si plein de bugs?
Raisons possibles:
- L'ingénierie logicielle moderne existe depuis quelques dizaines d'années seulement, une petite période de temps par rapport à d'autres formes d'ingénierie et de production.
- Le logiciel est très compliqué avec des couches sur des couches de complexité, de leur intégration, tout n'est pas trivial.
- Le développement logiciel est relativement facile de commencer avec, n'importe qui peut écrire un programme simple sur son PC, ce qui conduit à l'amateur logiciel de fuites dans le marché.
- Les budgets les plus serrés et les délais ne permettent pas de remplir et de développement de haute qualité et des tests approfondis.
Comment expliquez-vous cette question, et voyez-vous la qualité des logiciels de progresser dans un avenir proche?