Plus précisément, voici quelques exemples où les idées des masses étaient tout simplement erronées. Pourquoi les gens se sont-ils accrochés aux idées en premier lieu? Et pourquoi les idées ont-elles été rejetées? Ou peut-être que les idées sont toujours bien vivantes et si oui pourquoi?
Par exemple, je pourrais décrire CORBA (et d'autres technologies similaires) comme quelque chose qui a tenté de résoudre le problème de la communication entre les composants du logiciel. Beaucoup ont jugé nécessaire de définir des contrats entre les différentes composantes. En fin de compte, HTTP + JSON a résolu le problème pour les masses et d'autres mécanismes RPC tels que Thrift et Proto-bufs sont apparus.
Réponses:
Fondamentalement, tout comme dans le monde en dehors des ordinateurs, les idées et les technologies se disputent l'attention, les effets de levier, etc. Certains gagnent, certains perdent; et certains peuvent sembler être The Winner pendant un certain temps, puis disparaître dans l'obscurité avec l'avènement de The Next Big Thing. Cela peut ou non avoir quelque chose à voir avec ce qui était en fait le mieux. Témoin VHS vs Betamax, ou la guerre plus récente entre les différents formats de DVD.
CORBA était énorme, maladroit et difficile à utiliser, mais c'était le meilleur que certaines personnes pouvaient inventer à l'époque (notez qu'il a été conçu avant que le World Wide Web - et HTTP, Java, XML, ... - deviennent largement connus). Et c'était aussi un exemple classique de conception par comité , où ils fourrent chaque idée pour satisfaire tout le monde, ce qui la rend inutilement gonflée (du moins vue par les yeux d'aujourd'hui). Sans parler de son prix qui, avec l'avènement des logiciels libres, est rapidement devenu prohibitif.
Au moins pour quelqu'un qui n'a pas vu quelques "solutions finales" similaires monter et finalement tomber ... Il est bon de garder à l'esprit qu'il y avait un sentiment similaire à propos de CORBA en son temps ;-)
Je pense qu'il est approprié de citer The Rise and Fall of CORBA :
Maintenant, sous un angle différent: en lisant votre terme «idées des masses», j'ai pensé à des choses très différentes de CORBA ou d'autres normes; ce sont généralement l'idée d'une personne ou d'un petit groupe. J'ai pensé à des pratiques / points de vue notoires tels que "codage de cow-boy", "coder et prier", "cela fonctionne sur ma machine", etc. le développeur commence instinctivement à écrire du code. Et ils ont tort, car ils ne s'adaptent ni dans l'espace ni dans le temps - on ne peut pas créer de grands programmes maintenables et extensibles de cette façon. Pourtant, je pense que malheureusement, c'est toujours la norme plutôt que l'exception pour les gens qui essaient de travailler de cette façon dans les magasins professionnels du monde entier.
L'autre extrême de ceci est les idées de nombreux gestionnaires et théoriciens de la "bonne approche" pour le développement SW, se manifestant dans les grandes méthodologies M comme CMM, RUP, Waterfall etc. L'idée derrière tout cela est que tout ce dont vous avez besoin est le bon processus, et il commencera à produire automatiquement des logiciels de qualité de manière déterministe, quels que soient les développeurs. Notez que le même jeu peut également être joué en utilisant des méthodes Agiles - c'est juste un changement d'étiquettes. Tout gestionnaire qui estime que la sélection (et le maintien) des bons membres pour son équipe de développement est moins important que le processus de développement, est voué à l'échec, quel que soit ce processus. Cependant, cette croyance en Process semble toujours prévaloir - peut-être est-elle encore enseignée dans les écoles de gestion?
la source
Le modèle en cascade est un exemple fréquent de personnes qui ont mal tourné. Il s'agit d'un schéma du modèle de cascade stéréotypé, qui apparaît également dans l'article de Winston Royce «Gestion du développement de grands systèmes logiciels» .
Cette image est suivie de ce texte:
Plus loin dans l'article, Royce présente des modèles de processus alternatifs qui impliquent une itération entre la phase actuelle et la phase précédente et un cycle entre les exigences-analyse-conception et un autre cycle entre conception-code-test. Il identifie également un certain nombre de documents et pendant quelles phases ils doivent être achevés, et préconise l'implication des clients et de multiples cascades au sein de chaque phase pour inclure l'analyse, les tests et l'utilisation de tous les artefacts impliqués. En réalité, ce que Royce discute pourrait être considéré comme une première approche des méthodes agiles - toujours très axé sur les plans, mais une base pour le mouvement agile.
Pourquoi les gens se sont accrochés à la toute première cascade, je ne sais pas. Je suppose qu'ils aiment prendre des risques et inviter à l'échec.
la source
Génération automatique de code à partir d'un niveau d'abstraction supérieur ou programmation automatique .
L'article Wikipédia manque quelque peu d'informations historiques, mais c'est un rêve pour les gestionnaires depuis que les programmeurs sont devenus plus chers que les ordinateurs.
Après le développement de langages de niveau supérieur comme Fortran et Cobol, est venu le développement de langages pour des domaines spéciaux comme la rédaction de rapports. Easytrieve et SAS en sont quelques exemples.
Au cours des années 1980, les outils CASE faisaient fureur. CASE signifie génie logiciel assisté par ordinateur. On pensait que l'application rigoureuse des principes d'ingénierie accélérerait le développement de logiciels. La principale raison pour laquelle ces outils n'ont pas réussi, outre les dépenses, était le niveau élevé de standardisation des données requis pour que les outils fonctionnent efficacement.
Internet a pris de l'importance dans les années 1990. Les types de programmation qu'Internet a facilité ont explosé. Les programmeurs devaient manipuler des illustrations, des cartes, des photographies et d'autres images, ainsi qu'une animation simple, à un rythme jamais vu auparavant, avec peu de méthodes bien connues. Le nombre de technologies pour produire ces objets s'est multiplié. Les rêves de programmation automatique se sont estompés.
L'externalisation de la programmation vers des emplacements moins chers est l'une des rares méthodes qui restent pour réduire les coûts de programmation. Les problèmes d'externalisation comprennent les problèmes de communication et les problèmes de spécification.
la source
Méthodes formelles
Il était une fois, il a été proposé que le logiciel puisse être prouvé correct. (L'idée étant que les tests ne peuvent pas montrer qu'il n'y a pas d'erreurs, mais les preuves pourraient le faire.) Malheureusement, la conception d'une preuve pour un programme présente des inconvénients majeurs:
Ce concept était très populaire dans les années 70.
Lien: http://en.wikipedia.org/wiki/Formal_methods http://c2.com/cgi/wiki?ProofOfCorrectness http://c2.com/cgi/wiki?PractitionersRejectFormalMethods
la source