Was war die schlimmste Technologieentscheidung, die Sie jemals gesehen haben? [geschlossen]


10

Dies schließt Architekturentscheidungen, Plattformentscheidungen oder Situationen ein, in denen eine solche schlechte Wahl zu negativen Konsequenzen führte.

Antworten:


22

Vor Jahren war ich der Hauptentwickler einer datenbankzentrierten Anwendung, die anfing, Fehler auszulösen. Ich habe es auf die Tatsache zurückgeführt, dass es in einem Datenbankfeld doppelte Werte gab, die sie nicht hätten zulassen dürfen.

Ich habe mich geschlagen, weil ich vergessen hatte, eine eindeutige Einschränkung für die Datenbank festzulegen, als ich sie in die Produktion gebracht hatte, weil es so offensichtlich war, dass dieses Feld eine benötigte. Ich bedauerte einen meiner Entwicklerkollegen, der mich korrigierte ...

Anderer Entwickler : "Oh, Sie haben nicht vergessen, dass dieses Feld eine einzigartige Einschränkung aufweist. Ich habe es gerade entfernt."

Ich : "Warum hast du es entfernt?"

Anderer Entwickler : "Ich habe das vor ein paar Wochen getan. Ich habe Datendateien vom Kunden erhalten und sie wurden nicht importiert, weil die eindeutige Einschränkung die neuen Daten blockierte. Deshalb habe ich die Einschränkung entfernt, damit ich den Import beenden konnte."

Ich: "Haben Sie darüber nachgedacht, dass möglicherweise ein Problem aufgetreten ist, wenn wir neue Daten erhalten haben, die sich mit vorhandenen Daten überschneiden, und darüber nachgedacht haben, diese vor dem Import gegenüber jemandem zu erwähnen?"

Anderer Entwickler : (leerer Blick)

Ich : Gesichtspalme.


Das tut einfach weh.


7

Ich bin mir nicht sicher, ob dies als Technologieentscheidung gilt , aber ich war vier Jahre lang für eine CMS-ähnliche Website zur Dokumentenverwaltung verantwortlich, die in PHP geschrieben wurde. Während dieser Jahre habe ich mehrmals versucht, Leute (Manager, Benutzer, Feature-Anforderer) dazu zu bringen, vielleicht, vielleicht, vielleicht , die Möglichkeit in Betracht zu ziehen, zusammenzusitzen und über die Anforderungen und die zukünftige Richtung der Sache nachzudenken. Es ist nie passiert. Es war immer "diese Funktion hinzufügen", "diese Funktion hinzufügen", und jeder war sich der verschiedenen Arten, wie alle anderen die Website nutzten, glücklicherweise nicht bewusst . Als ich ging, wurde es zu einem riesigen Durcheinander miteinander verbundener, aber nicht miteinander verbundener Funktionen, und ich war der einzige im gesamten Unternehmen, der alle Funktionen kannte. Jetzt tut es niemand mehr. Mwahaha.


Zeit, einen Berater an Bord zu holen!
Kirk Broadhurst


4

Umschreiben eines Voicemail-Systems für Telekommunikationszwecke.

Das vorherige System lief unter Unix und um die späten 90er Jahre kam die COM-Technologie von Microsoft hinzu. Viele Entwickler arbeiteten an diesem neuen NT-basierten System. Nach viel Mühe war seine Leistung immer noch nicht annähernd so hoch wie die des Unix-Systems, und ein großer Kunde, der dieses neue System gekauft hatte, war sauer. Die Firma musste verkauft werden und einige Leute mussten die Firma verlassen.

Es war hässlich. All dies geschah ungefähr zwei Jahre bevor Joel seinen Artikel schrieb: Dinge, die Sie niemals tun sollten, Teil I.


3

Übernahme einer externen Bibliothek (in diesem Fall Spring RCP ) vor der ersten Release-Version basierend auf einem SVN-Snapshot. Es ist so gut wie garantiert, dass das Projekt mehr oder weniger tot endet und Sie an die Leiche gebunden sind. In unserem Fall hätte es schlimmer kommen können. Immer noch ein großes Risiko.


Argh, du hast mich gerade an einen anderen Teil meiner Vergangenheit erinnert, den ich lieber vergessen würde. Ich habe einen Teil eines Projekts geerbt (dasselbe Projekt, das ich in meiner Antwort erwähnt habe), das auf einer Momentaufnahme von Spring RCP basiert. Ich konnte nie verstehen warum. Es schien nichts anderes als Ärger hinzuzufügen.
Dan Dyer

3

Ein Beispiel, an das ich mich erinnere, war die frühzeitige Festschreibung auf einen bestimmten Java-Anwendungsserver, obwohl dieser noch nicht über die für das Projekt erforderlichen Funktionen verfügte, sondern lediglich eine Roadmap für die Implementierung. Natürlich lieferte der Verkäufer nicht so schnell wie ursprünglich angegeben, was ein großes Problem gewesen sein sollte, aber in Wirklichkeit nur einer von vielen Cock-ups auf dem langsamen Weg zum Scheitern war.

Die meisten Fälle dieser Art von Problem, auf die ich gestoßen bin, betrafen die Verpflichtung zu einer unbewiesenen / unreifen Technologie, oft weil jemand, der auf technischer Seite Einfluss hat, ein Befürworter einer von Lebensläufen getriebenen Entwicklung ist.


1

Vor drei Jahren sagte unsere BusDev-Abteilung, sie müssten ihr Content-Management-System auf Documentum aufbauen, weil die Pharmaunternehmen, die sie erreichen wollten, den Namen kennen und mit der Technologie vertraut sind. Also haben wir viel Geld ausgegeben, um es zu bauen, und es dann 12 Monate später zurückgestellt.

Im Februar dieses Jahres kündigten sie an, dass das neue System auf Sharepoint 2010 basieren würde. Möchten Sie wissen, warum? Denn plötzlich war DIES der Name, den Pharmas kannte und mit dem sie sich wohl fühlten!
Wir werden sehen, was 2012 bringt!

\\ uSlackr


0

Schreiben moderner Betriebssysteme in C / C ++. Wir wissen seit dem Morris Worm (Ende der 80er Jahre), dass es eine völlig ungeeignete Sprache für den Aufbau von vernetzter Software ist, aber das hat niemanden davon abgehalten, was im Grunde genommen krimineller Fahrlässigkeit IMO gleichkommt.


5
-1 Bin ich es, oder handelt es sich um das 5. oder 6. Mal, dass Sie geschrieben haben, dass C ein Fehler ist? Die FUD ist anstrengend. Nur weil Sie C nicht codieren können, ohne einen Sicherheitsfehler zu machen, heißt das nicht, dass andere dies nicht können. Sie können eine Sprache nicht hassen, die darauf basiert, welche schlechten Praktiken möglich sind.
Alternative

2
Es ist FUD zu behaupten, dass die Tatsache, dass "C eine schlechte Sprache ist", objektives Allgemeinwissen ist.
Alternative

2
@mathepic: Habe ich etwas so Nebulöses gesagt, dass es "eine schlechte Sprache" ist? Ich sagte, es ist überhaupt nicht zum Erstellen von Programmen wie Betriebssystemen geeignet, für die Sicherheitsanforderungen gelten. Und das ist sowohl eine objektive Tatsache als auch allgemein bekannt.
Mason Wheeler

6
@mathepic: Ich bin mit Mason dabei. Es ist allgemein bekannt und anerkannt, dass die Behandlung von Zeichenfolgen in C Pufferüberläufe verursacht und in einer geeigneten Programmiersprache nicht . Unabhängig davon, wie gut Sie denken, dass Sie „zuverlässig und konsistent C sicher codieren“ (pff), ist eine Sprache, die die Häufigkeit von Fehlern unnötig erhöht, eine schlechte Sprache.
Timwi

3
@ Timwi: Die ursprüngliche Antwort lautete "C / C ++". In C ++ verursacht die Zeichenfolgenbehandlung keine Pufferüberläufe. Nicht, dass ich ein großer Fan von bin std::string, aber es funktioniert und zusammen mit Containerklassenvorlagen kann eine große Klasse potenzieller Fehler beseitigt werden.
David Thornley

0

Was ich sah....

In den 1980er Jahren gab es eine Firma namens Prime, die Computer herstellte, auf denen eine Version der Pick-Datenbank und von BASIC ausgeführt wurde. Die Benutzerabteilung des Ortes, an dem ich zu der Zeit arbeitete, als ich einen kaufte, war absolut davon überzeugt, dass dies ihnen Unmengen an Geld sparen würde, dass sie die Verarbeitung und die Ergebnisse, die sie wollten, mit einem Geschäftsanalysten zu einem Viertelzeitpunkt erhalten würden. Es dauerte nicht lange, bis es vier Vollzeit-Programmierer-Analysten und einen Arbeitsstau gab.

Großer Fehler bei der Einschätzung, was die Technologie für sie tun würde.


1
Gute alte Wahl. Ich habe immer gefragt, ob ein Betriebssystem / eine Datenbank / eine Programmiersprache nach sich selbst benannt ist. (zB Dick Pick)
Bill
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.