Dies schließt Architekturentscheidungen, Plattformentscheidungen oder Situationen ein, in denen eine solche schlechte Wahl zu negativen Konsequenzen führte.
quelle
Dies schließt Architekturentscheidungen, Plattformentscheidungen oder Situationen ein, in denen eine solche schlechte Wahl zu negativen Konsequenzen führte.
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.
Verwenden von Visual Sourcesafe
quelle
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.
quelle
SAP implementieren
quelle
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.
quelle
Ü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.
quelle
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.
quelle
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
quelle
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.
quelle
std::string
, aber es funktioniert und zusammen mit Containerklassenvorlagen kann eine große Klasse potenzieller Fehler beseitigt werden.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.
quelle