Quelle est la pire décision technologique que vous ayez jamais vue? [fermé]


10

Cela inclut les décisions d'architecture, les choix de plate-forme ou toute situation où un tel mauvais choix a entraîné des conséquences négatives.

Réponses:


22

Il y a des années, j'étais le développeur principal d'une application centrée sur la base de données qui a commencé à générer des erreurs. Je l'ai retrouvé jusqu'au fait qu'il y avait des valeurs en double dans un champ de base de données qui n'auraient pas dû les autoriser.

J'étais en train de me battre en oubliant de fixer une contrainte unique sur la base de données quand je l'avais poussée à la production car c'était tellement évident que ce champ en avait besoin. J'ai commis de la compassion envers l'un de mes collègues développeurs qui m'a corrigé ...

Autre développeur : "Oh, vous n'avez pas oublié, il y avait une contrainte unique sur ce champ. Je viens de le supprimer."

Moi : "Pourquoi l'avez-vous retiré?"

Autre développeur : "Je l'ai fait il y a quelques semaines. J'obtenais des fichiers de données du client et ils n'importaient pas parce que la contrainte unique bloquait les nouvelles données. J'ai donc supprimé la contrainte afin de pouvoir terminer l'importation."

Moi: "Avez-vous cessé de considérer qu'il y avait peut-être un problème si nous obtenions de nouvelles données qui chevauchaient des données existantes et pensiez à les mentionner à quelqu'un avant de les importer?"

Autre développeur : (regard vide)

Moi : Facepalm.


Ça fait juste mal.


7

Je ne sais pas si cela compte comme une décision technologique , mais j'étais responsable d'un site Web de gestion de documents de type CMS écrit en PHP pendant quatre ans. Tout au long de ces années, j'ai tenté à plusieurs reprises d'amener les gens (gestionnaires, utilisateurs, demandeurs de fonctionnalités) à peut-être, peut-être, comme, peut - être , envisager la possibilité de s'asseoir ensemble et de réfléchir aux exigences et à l'orientation future de la chose. Ce n'est jamais arrivé. C'était toujours «ajouter cette fonctionnalité», «ajouter cette fonctionnalité», et tout le monde ignorait béatement toutes les différentes façons dont tout le monde utilisait le site Web. Au moment de mon départ, c'est devenu un énorme gâchis de fonctionnalités interconnectées mais non liées, et j'étais le seul dans toute l'entreprise à connaître toutes les fonctionnalités. Maintenant, personne ne le fait. Mwahaha.


Il est temps d'engager un consultant à bord!
Kirk Broadhurst


4

Réécriture d'un système de messagerie vocale de qualité Telco.

Le système précédent fonctionnait sous Unix et vers la fin des années 90, la technologie COM de Microsoft est arrivée. De nombreux développeurs travaillaient sur ce nouveau système basé sur NT. Après beaucoup d'efforts, ses performances étaient encore loin de celles du système Unix et un gros client qui a acheté ce nouveau système était énervé. L'entreprise a dû être vendue et certaines personnes ont dû quitter l'entreprise.

C'était moche. Tout cela s'est produit environ deux ans avant que Joel n'écrive son article: Things You should Never Do, Part I


3

Adopter une bibliothèque externe (dans ce cas, Spring RCP ) avant sa première version, basée sur un instantané SVN. Il est à peu près garanti que le projet finira plus ou moins mort et vous vous retrouverez lié au cadavre. Eh bien, dans notre cas, cela aurait pu être pire. Encore un gros risque.


Argh, tu viens de me rappeler une autre partie de mon passé que je préfère oublier. J'ai hérité d'une partie d'un projet (le même projet que j'ai mentionné dans ma réponse) qui a été construit sur un instantané de Spring RCP. Je ne pourrais jamais comprendre pourquoi. Cela n'a pas semblé ajouter autre chose que des tracas.
Dan Dyer

3

Un exemple dont je me souviens impliquait de s'engager tôt sur un serveur d'applications Java particulier malgré le fait qu'il n'avait pas encore les fonctionnalités requises pour le projet, juste une feuille de route pour le moment où elles seraient implémentées. Naturellement, le fournisseur n'a pas livré aussi rapidement qu'indiqué à l'origine, ce qui aurait dû être un gros problème, mais en réalité n'était qu'un des nombreux cock-ups sur la lente route de l'échec.

La plupart des exemples de ce type de problème que j'ai rencontré impliquaient de s'engager dans une technologie non éprouvée / immature, souvent parce qu'une personne influente sur le plan technique est un partisan du développement basé sur le curriculum vitae.


1

Il y a trois ans, notre service BusDev a déclaré qu'ils devaient construire leur système de gestion de contenu sur Documentum parce que les sociétés pharmaceutiques qu'ils essayaient d'atteindre connaissent le nom et étaient à l'aise avec la technologie. Nous avons donc dépensé beaucoup d'argent pour le construire, puis l'avons mis de côté 12 mois plus tard.

En février de cette année, ils ont annoncé que le nouveau système serait basé sur Sharepoint 2010. Vous voulez deviner pourquoi? Parce que, soudain, CECI était le nom connu des Pharmas et avec lequel ils étaient à l'aise!
Nous verrons ce que 2012 apportera!

\\ uSlackr


0

Écriture de systèmes d'exploitation modernes en C / C ++. Nous savons depuis le Morris Worm (fin des années 80) que c'est un langage tout à fait inapproprié pour construire des logiciels en réseau, mais cela n'a empêché personne de le faire, ce qui équivaut essentiellement à une négligence criminelle OMI.


5
-1 Est-ce moi, ou s'agit-il de la 5e ou 6e fois que vous publiez que C est une erreur? Le FUD est fatigant. Ce n'est pas parce que vous ne pouvez pas coder C sans faire une erreur de sécurité que les autres ne le peuvent pas. Vous ne pouvez pas détester un langage basé sur les mauvaises pratiques possibles.
alternative

2
Il est FUD à l'autre que le fait que « C est une mauvaise langue » est l' objectif commun des connaissances.
alternative

2
@mathepic: Ai-je dit quelque chose d'aussi nébuleux que c'est "une mauvaise langue"? J'ai dit que ce n'était pas du tout adapté à la création de programmes, tels que les systèmes d'exploitation, qui ont des exigences de sécurité. Et c'est à la fois un fait objectif et une connaissance commune.
Mason Wheeler

6
@mathepic: Je suis avec Mason à ce sujet. Il est largement connu et accepté que la gestion des chaînes en C provoque des débordements de tampon et ce n'est pas le cas dans un langage de programmation approprié . Peu importe à quel point vous pensez être «à coder C de manière fiable et cohérente en toute sécurité» (pff), un langage qui augmente inutilement l'incidence des bogues est un mauvais langage.
Timwi

3
@Timwi: La réponse originale disait "C / C ++". En C ++, la gestion des chaînes ne provoque pas de débordements de tampon. Je ne suis pas un grand fan de cela std::string, mais cela fonctionne, et avec les modèles de classe de conteneur, ils peuvent éliminer une grande classe d'erreurs potentielles.
David Thornley

0

Ce que j'ai vu....

Dans les années 1980, une société appelée Prime a produit des ordinateurs exécutant une version de la base de données Pick et BASIC. Le service utilisateur de l'endroit où je travaillais au moment où j'en ai acheté un était absolument convaincu que cela leur ferait économiser des tonnes d'argent, qu'ils obtiendraient le traitement et les résultats qu'ils voulaient avec un analyste commercial à un quart d'heure. Il ne fallut pas longtemps avant qu'il y ait quatre analystes programmeurs à temps plein et un arriéré de travail.

Grande erreur dans l'estimation de ce que la technologie ferait pour eux.


1
Bon vieux choix. J'ai toujours remis en question le fait d'avoir un système d'exploitation / base de données / langage de programmation portant leur nom. (par exemple Dick Pick)
Bill
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.