Réponses:
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.
Utilisation de Visual Sourcesafe
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.
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
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.
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.
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!\\ uSlackr
É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.
std::string
, mais cela fonctionne, et avec les modèles de classe de conteneur, ils peuvent éliminer une grande classe d'erreurs potentielles.
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.