80 votes

Pourquoi le logiciel est de qualité si problématique?

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?

64voto

Norman Ramsey Points 115730

Je vois des fois que le marché ne récompense pas la qualité des logiciels. Apple est un bon exemple; pendant de nombreuses années, ils avaient un produit de qualité supérieure, mais les gens ne peuvent pas payer. (Et pas seulement les coûts initiaux de la Pomme, mais aussi les coûts de changement à partir de ce qu'ils ont été à l'aide de cette même année.)

Je vois encore beaucoup de gens de prendre des décisions d'achat sur l'idée que "plus c'est mieux". Microsoft et la Fondation pour le Logiciel Libre ont conditionné les gens à deux idées pernicieuses: 1. Le produit avec des fonctionnalités en plus, c'est toujours mieux. 2. C'est OK pour le logiciel d'échouer de temps en temps. Parce que les gens de prendre des décisions d'achat ne comprennent pas que le plus simple est le mieux, il existe de formidables incitations économiques pour créer des logiciels qui est complexe, mais il semble avoir de belles caractéristiques.

Histoire de la guerre: au début des années 1990, un de mes amis a essayé d'écrire sa thèse de doctorat à l'aide de Microsoft Word. Tout s'est bien passé jusqu'à ce que son manuscrit a obtenu autour d'une centaine de pages. À ce point-Parole a refusé de lui laisser plus être modifié. L'éventuel correctif a été pour lui le double de la quantité de mémoire sur son PC. Dans le début des années 1990, c'était un coûteux à corriger.

Après que tout était fini je lui ai demandé pourquoi il avait choisi le Mot. Sa réponse:

J'ai aimé les caractéristiques présumées.

Les gens d'acheter des logiciels sur la perception, non pas sur la réalité. Il n'a pas d'importance si la réalité de ce logiciel est qu'il est difficile à utiliser ou ne fonctionne pas; si elle semble bonne, les gens vont l'acheter.

Des amis à moi qui étudie l'économie de me dire que ce comportement est le signe d'un marché immature et que lors du calcul de l'échéance et de la demande pour le calcul de la stabilise, les choses seront différentes. Je ne suis pas si sûr---je regarde le marché de l'automobile, qui ont+ de 100 ans de savoir-faire de l'ingénierie y mettre, et je vois un beaucoup plus grand marché pour les voitures que les gens se sentent bien que je le fais pour les voitures qui sont ennuyeux, mais seulement le travail. J'attends avec impatience le jour où les acheteurs refuser les programmes pour avoir un trop grand nombre de fonctionnalités et d'insister sur l'achat simple et ennuyeux des programmes qui fonctionnent, tout simplement.

56voto

MusiGenesis Points 49273

Une des principales raisons en est que, pour la plupart partie, les logiciels "ingénieurs" ne sont pas vraiment formés comme des ingénieurs. L'un des principes les plus importants dans l'ingénierie de garder la conception aussi simple que possible, afin de maximiser la fiabilité (moins de pièces = moins de choses, qui peut échouer).

La plupart des développeurs de logiciels qui j'ai travaillé au fil des ans ne sont pas simplement ignorer le principe de BAISER, mais aussi activement engagés à faire de leur logiciel aussi complexe que possible. Les programmeurs de par leur nature, plaisir à travailler avec de la complexité, de sorte que beaucoup de sorte qu'ils ont tendance à ajouter si elle n'y est pas déjà. Cela conduit à des logiciels buggés.

45voto

S.Lott Points 207588

"Prenons l'exemple d'une maison construite à partir de de zéro. Généralement, la maison se fonctionne comme il est censé le faire. Il stand pour de nombreuses années à venir, le toit va supporter de lourdes conditions météorologiques, les portes et les fenêtres ne leur travail, les fondations ne seront pas l'effondrement, même lorsque la maison est entièrement peuplée. Bien sûr, les petits problèmes ne se produire, comme un robinet qui fuit ou une mauvaise travail de peinture, mais ce ne sont pas des critique".

Ce n'est clairement pas vrai, c'est un très mauvais exemple. J'ai vu un grand nombre de maisons qui sont juste des cabanes. Les maisons qui peuvent, et le font souvent, il suffit de s'effondrer dans des conditions météorologiques difficiles. Ils n'utilisent pas les fenêtres et la porte est une feuille de contreplaqué.

Pour obtenir loin avec la construction d'une cabane au lieu d'une maison, vous devez construire votre cabane où il n'y a pas de logement des codes ou des normes. Ou, vous avez pour échapper à l'inspection en prétendant que vous n'avez pas de "live". Ou vous devez être lourdement armé, de sorte que les inspecteurs ne vous dérange pas.

[bignose] en Effet. Aussi pertinent que beaucoup d'entre nous (y compris, je pense, la personne qui a écrit la question d'origine) vivent dans des pays où le logement est strictement réglementée, et la mauvaise qualité est considéré comme inacceptable, même si à la fois le constructeur et l'acheteur voulez couper les coins ronds. En l' absence de l'application du règlement, du logement dirige l'ensemble de la gamme, y compris horrible deathtraps; c'est ce que nous voyons dans le domaine du logiciel.

La qualité des logiciels est comme toutes les autres formes de qualité. Le problème est présent.

La plupart des produits de consommation ont garantie (expresse ou implicite). Certains ont même des normes applicables en matière de sécurité.

De consommation emballés sous film plastique d'un logiciel spécifiquement évite offrant une garantie d'aucune sorte. C'est triste, shabby entreprise. Pour éviter les réclamations de garantie, ils ne laissez pas votre achat de logiciel; il vous suffit simplement de licence, ou à l'achat d'un droit d'utilisation. Lire le CLUF. Il n'y a pas de garantie. La qualité n'a pas d'importance.

Maison logiciel, développé par les grandes organisations informatiques, n'a aucune garantie de quelque nature que ce soit. Il est entièrement basé sur la politique d'entreprise, interne, de la réputation et de l'influence.

La plupart du temps, la plupart des logiciels maison développeurs ont bonne réputation et ont gagné ceux bonne réputation en fournissant des niveaux exceptionnels de service.

Mais certains développeurs de logiciels sont des gifles cabanes avec cast-off de contreplaqué, palettes, bleu poly bâches, et les restes d'une ancienne remorque voyage qu'ils ont trouvé.

44voto

Cruachan Points 11749

Je vois beaucoup de browbeating ici, mais je pense que nous devrions reconnaître un point:

Le Développement de logiciels est DUR

Il a utilisé pour être considéré comme un truisme de dire que lorsque a écrit IBM OS/360, il a été, à ce point, le plus logiquement système complexe qui ait jamais été développé par l'être humain.

Depuis lors, nous avons développé des techniques de manipulation et de systèmes plus complexes. Nos langues, les Api et les outils ont ajouté des couches de conceptualisation et d'abstraction de ne pas rêvé quand OS/360 a été main-coudé ensemble. Le problème, c'est la complexité de ce que l'on cherche à atteindre a augmenté dans l'étape - ou peut-être même un peu plus.

Maintenant, ce n'est pas à souligner qu'il y a des problèmes avec des délais serrés, pauvres programmeurs et de toutes les questions examinées ici. Mais le monde moderne fonctionne pratiquement sur le logiciel mis au point au cours de la dernière 20 - 30 ans, et tandis qu'il ya beaucoup de place pour l'amélioration, nous ne faisons pas trop mal dans l'ensemble.

26voto

CoderChick Points 39

Si je suis d'accord avec les raisons indiquées jusqu'à présent, il y a une explication très simple manque ici qui sévit tout au long de l'industrie du logiciel: la mauvaise gestion.

J'ai travaillé comme consultant pour de nombreuses années, et je ne peux pas vous dire combien d'endroits où j'ai travaillé à l'endroit où les développeurs ont prévu à la fin, hier, un projet auquel ils ont donné demain. C'était à livrer le projet à temps ou perdez votre emploi, de sorte que nous n'avions pas le choix, mais écrire du code qui a été jeté ensemble et pas suffisamment testé. Cela était particulièrement répandue, où les dirigeants n'étaient pas dans le champ d'eux-mêmes et n'avaient aucune idée de ce qu'il faut pour l'écrire et de soutien des logiciels de qualité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X