Siehe Titel, aber ich frage aus technischer Sicht nicht
Nehmen Sie meine 40-jährige jungfräuliche Nichte zu einem Date mit, oder Sie werden gefeuert.
Siehe Titel, aber ich frage aus technischer Sicht nicht
Nehmen Sie meine 40-jährige jungfräuliche Nichte zu einem Date mit, oder Sie werden gefeuert.
Antworten:
Um Neal Stephensons Science-Fiction-Thriller Snow Crash zu vermarkten, wurde ich gebeten, einen "harmlosen" Computervirus zu schreiben. Es würde "gütig" vortäuschen, den Computer des Benutzers zu übernehmen und den Bildschirm durch Schnee zu ersetzen, auch bekannt als "Schneeabsturz". Nach ungefähr einer Minute Schnee verblasste der Schnee und wurde durch eine Werbung für das Buch ersetzt. Das wäre "gutartig", verstehen Sie? Der Virus würde sich auf normale Weise verbreiten, aber niemand würde etwas dagegen haben, denn nach der Übernahme seines Computers "bekäme man einfach eine lustige Anzeige und wäre erleichtert, dass auf Ihrem Computer nichts Schlimmes passiert ist."
Mir wurde sogar befohlen, dies bei einem großen, weltweiten Unternehmen zu tun. Ich musste ein Memo schreiben, in dem ich alle Gesetze erklärte, gegen die dies verstoßen würde, und alle 17 schlechten Dinge, die passieren könnten, wenn ich das wirklich umsetzen müsste.
"Diese DLL, die Sie geschrieben haben, ist nur 17 KB groß. Können Sie Code hinzufügen, um sie größer zu machen? Der Kunde zahlt uns viel Geld, und wir möchten, dass sie auf ihre Kosten kommen."
Verwenden Sie Visual SourceSafe.
"Sie kennen dieses gigantische 20-jährige Cobol-Programm, das eine Vielzahl von hartcodierten Geschäftsregeln enthält, die unser Unternehmen mehr oder weniger definieren? Würden Sie etwas dagegen haben, es in .NET umzuwandeln?"
Huch.
Wir gehen in ein paar Wochen live.
Wünsch mir Glück..
Mein Bruder und ich haben vor vielen Jahren an einer multimedialen Website für einen sehr berühmten Rockstar gearbeitet.
Als der Kunde die Site sah, bemerkte er einige Komprimierungsartefakte bei einigen JPEGs und fragte, was mit ihnen los sei. Wir haben erklärt, dass Bilder aus Bandbreitenzwecken komprimiert werden müssen und dass die Bilder derzeit mit einer Qualität von ca. 80% komprimiert sind. Er war beleidigt und sagte etwas zur Wirkung von
Ich bin nicht dort angekommen, wo ich heute bin, indem ich Dinge zu 80% erledigt habe, sondern zu 100%.
Wir haben versucht zu erklären, wie sich dies auf die Benutzer auswirken würde, aber er hat nichts davon. Das Ergebnis war die langsamste Website der "virtuellen Welt", die es je gab. Das ist tatsächlich passiert .
Wir müssen den Start der Site um zwei Wochen verschieben, da Mercury sich im Rückschritt befindet und es ein schlechter Zeitpunkt ist, neue Dinge zu beginnen.
Nachdem ich in einem Wirtschaftsmagazin in einem Flugzeug gelesen hatte, wie XML die neueste Technologie ist (dies war um 2002), fragte mich einer unserer Führungskräfte, ob unsere Anwendung XML verwendet. Als ich Nein sagte, fragte er mich, ob wir sie hinzufügen könnten.
Ich spreche hier nicht von einer Funktion zum Importieren / Exportieren von Dateien im XML-Format. Er wollte lediglich, dass sie aus keinem anderen Grund als dem, der im Moment beliebt war, Teil der Architektur ist und unserer App Glaubwürdigkeit verleiht.
"Im Moment müssen die Benutzernamen eindeutig sein und die Passwörter nicht. Können wir es anders herum machen?"
Vor ungefähr 7 Jahren arbeitete ich in einem maßgeschneiderten Software-Shop, der sich entschied, eines seiner Produkte zu verkaufen. Es war eine End-to-End-Betriebssuite für einige Branchen. Nun, diese Branche war nicht als super-technologisch bekannt, und so haben wir letztendlich technischen Support für ihre Server und IT-Infrastruktur von Drittanbietern bereitgestellt, anstatt ihn unabhängigen IT-Beratern für kleine Unternehmen zur Verfügung zu stellen.
Eines Tages stellte der Server eines Kunden eine Festplattenbeschädigung fest. Der von uns verkaufte Server wurde mit einem Adaptec RAID-Controller konfiguriert, der für einen RAID 1-Spiegel eingerichtet wurde. Ihre Anwendungsdatenbank war Toast. Sie hatten seit Monaten keine Backups mehr durchgeführt. Die Sicherungen, die sie durchgeführt hatten, waren unbrauchbar. Sie verloren 8 Monate an Daten. Sie beauftragten einen IT-Berater mit der Ermittlungsarbeit.
Telefonanrufe folgten, und der Verkaufsleiter (bekannt für vielversprechende unmögliche Funktionen) sagte ihnen anscheinend, dass man sich darum kümmern würde, und schrieb es in einen Vertrag.
Der Verkaufsleiter versprach dem Kunden, dass wir sicherstellen würden, dass die Anwendungsdatenbank und alle anderen anwendungsbezogenen Dateien niemals von RAID-Controllern repliziert würden, wenn die Dateien als beschädigt angesehen würden. Es sollte auch keine Konfiguration erforderlich sein. Ja. Wir wurden angewiesen, diese Funktionalität in 2 Wochen bereitzustellen, oder der Kunde würde uns entlassen.
Der Programmmanager, der einige große CRM-Unternehmensprodukte und andere ernsthafte Entwicklungserfolge im Visier hatte, und ich hatten ein Treffen mit dem COO und dem Vertriebsleiter. Der Programmmanager erklärte, wie verrückt, unmöglich und wahnsinnig unmöglich das war. Der Verkaufsleiter (militärischer Hintergrund) schrie ihm einfach ins Gesicht (im wahrsten Sinne des Wortes!): "Es ist mir egal! Wie schwer kann es sein, das RAID-Ding nicht zu RAID zu machen ?! Ihre Daten wären auf dem anderen Laufwerk in Ordnung, wenn die RAID-Sache hatte es nicht vermasselt! "
Am Ende dieses Treffens kündigte der Programmmanager mit einer Kündigungsfrist von null Tagen. Also wurde ich jetzt damit beauftragt. In der nächsten Woche bat ich Adaptec und LSI Logic, einen Techniker für eine Telefonkonferenz zur Verfügung zu stellen, um einfach dem Verkaufsleiter ins Gesicht zu lachen.
Letztendlich haben sie zugesagt und ihr Ende der Abmachung aufgehalten. Und sie gingen ins Detail, wie lächerlich undurchführbar es war. Der Typ von LSI war besonders hart - er hat nichts mit Zucker überzogen.
Ich musste das Feature nicht implementieren. Ich musste ein benutzerdefiniertes Sicherheitsschema implementieren, das von einem Kunden angefordert wurde, damit er die Steuerelemente der Anwendung - je nach Steuerelement - als sichtbar, deaktiviert, aktiviert, schreibgeschützt oder schreibgeschützt umschalten konnte . Theoretisch gab es 146.000 Kombinationen. Und wenn Sie es versehentlich vermasselt haben, indem Sie beispielsweise eine Kontrollgruppe deaktiviert haben, würden Sie versehentlich Nebenwirkungen haben. Unnötig zu erwähnen, dass ich mit dem Ultimatum, dass es umgesetzt werden muss, auch mit einer Kündigungsfrist von null Tagen kündigte.
+1
für "kündigen mit Kündigungsfrist von null Tagen", denn manchmal muss man einfach gehen, und manche Leute bekommen das nie und wirbeln weiter.
Sie baten mich, ein kommerzielles Produkt zu suchen, mit dem sich Quellcode-Fehler automatisch finden und beheben lassen.
Immer noch auf der Suche ... seit 2001 :).
Ich hatte einmal eine Client-Spezifikation, die buchstäblich Code verlangte, der in der Lage war, in der Zeit zurückzureisen.
Mein Arbeitgeber hat Daten für den Kunden gesammelt, und wir sollten sie zwischen 9.00 Uhr und 17.00 Uhr im Dateiformat X in Zehn-Minuten-Intervallen ausliefern, mit Ausnahme der endgültigen Auslieferung im Format Y (nur X mit einer anderen Fußzeile). Ich habe genau das getan ... und sie sind ausgeflippt. Wir sammelten Daten mit geringem Datenvolumen und hatten tatsächlich nur ein oder zwei Datenpunkte, die an einem bestimmten Tag geliefert werden konnten.
"SPAMMING UNS BEENDEN MIT LEEREN DATEIEN !!!" Sie weinten. "FÜNF K'S ALLE ZEHN MINUTEN ENKLOGULIEREN UNSERE BANDTUBES!"
Okay. Mein Code wurde also alle zehn Minuten überprüft und nur geliefert, wenn etwas zu liefern war. Fair genug.
"ABER DIE LETZTE DATEI MUSS IM FORMAT SEIN !!!" sie schrien. "MODERNE TECHNOLOGIE VERWIRRT UND VERÄRGERT UNS! Repariere es oder wir schlagen dich mit einer MASTODON-FEMUR! *"
(* - Möglicherweise erinnere ich mich an Teile des Gesprächs.)
"Also muss ich die Datei nur ausliefern, wenn es frische Daten zu liefern gibt."
"JA."
"Und die letzte Lieferung für diesen Tag soll ein anderes Dateiformat sein."
"JA."
"Außer ich habe keine Möglichkeit zu wissen, welche Datei bis zum Ende des Tages die letzte des Tages sein wird."
"JA."
"Die einzige Möglichkeit für mich, dies zu implementieren, besteht darin, Code zu schreiben, der am Ende des Tages in der Zeit zurückgeht, um das Format der endgültigen Lieferung zu ändern."
"KÖNNTEN SIE SPORTPUNKTE MELDEN? WIR SÄGEN ZURÜCK IN DIE ZUKUNFT II. BIFF TANNEN MACHT UNS GLÜCKLICH."
Ich lehnte ab, zum Teil, weil die Verletzung der Kausalität eine unethische Programmierpraxis ist, zum Teil, weil CPAN.org kein Modul hatte, mit dem ich das tun könnte. (Ich habe es überprüft.) Am Ende erlaubten sie mir, am Ende des Tages eine Datei im Format Y zu senden, unabhängig davon, ob es tatsächliche Daten gab oder nicht. Ich bin mir ziemlich sicher, dass ihre Bandbreite den Treffer überstanden hat.
+1
denn "Kausalität verletzen ist eine unethische Programmierpraxis". Jetzt gibt es eine Regel, die mehr Aufmerksamkeit erfordert.
Ohne erkennbaren Grund wurde ich in eine private Besprechung gebracht und angewiesen, nicht zu überprüfen, ob mein Computer überwacht wird - auch nicht, meinen Task-Manager jemals aus irgendeinem Grund zu überprüfen. Ich fragte, ob sie meinen Computer überwachen, und mir wurde (grob) gesagt, dass dies nur eine vorbeugende Sache sei. Sie wissen, unser Anwalt sagte uns, wir sollten den Mitarbeitern davon erzählen. Aber Sie wissen, wir können nicht wirklich sagen, - aber ich beobachte es jetzt nicht. "
(Nudge, ich glaube, sie haben meinen Computer überwacht, nur nicht, während sie mir sagten, ich solle keine Überwachungsprogramme suchen. Tatsächlich kam ich ein paar Wochen später früh herein und beobachtete buchstäblich, wie sich die Maus auf meinem Bildschirm wie durch bewegte Fernbedienung - also habe ich durch das Fenster des CEO geschaut und gesehen, dass er von seinem Laptop aus auf meinem Computer herumgeklickt hat.)
Ich hatte einmal eine lange "Diskussion" mit einem spitzen Chef, der darauf bestand, dass wir eine 2 in einem Bit-Datentyp speichern könnten, weil es "nur eine Ziffer" war.
Das Dümmste, worum ich gebeten wurde, ist wahrscheinlich ein grundsätzliches Umschreiben eines sehr großen Projekts. Es waren ungefähr 350.000 Zeilen, alle in C (mit ein wenig Perl gemischt für 'Hilfsskripte') und funktionierten gut, egal was die Clients damit machten.
Fast ein Jahr später hatten wir:
Grundsätzlich haben wir nichts erreicht, was ein vernünftiges Refactoring nicht hätte erreichen können. Aber mein Chef war glücklich, wir haben die Hilfsskripte losgeworden.
Ich halte es für die ungeheuerlichste Zeitverschwendung und den existierenden Code, den ich je gesehen habe.
Client: Wir verwenden Ihre Datenbanksoftware seit einigen Jahren, entwickeln damit unsere eigenen Anwendungen und rufen Sie von Zeit zu Zeit an, um Hilfe zu erhalten.
Ich: Ja, wir schätzen es, mit Ihnen Geschäfte zu machen.
Kunde: Ja. Bei jedem Anruf teilen Sie uns mit, wie eine neue Funktion verwendet werden soll, oder Sie helfen uns beim Debuggen unserer Verwendung oder bieten eine Problemumgehung für ein bestimmtes Problem.
Ich: Klar, wir sind immer gerne behilflich.
Client: Gelegentlich ist in Ihrem Produkt ein tatsächlicher Fehler aufgetreten, und Ihr Unternehmen behebt ihn und gibt uns ein Software-Update.
Ich: Wir geben unser Bestes.
Kunde: Nun, wir brauchen jetzt von Ihnen die Zusicherung, dass wir keine Probleme mehr haben.
Me: . . .
Ich wurde gebeten, einem großen multinationalen potenziellen Kunden in einer Präsentation unserer Software mitzuteilen, dass wir die Codierungstechnik "Spaghetti-Code" verwendet haben.
Natürlich sind wir in Italien ... hört sich gut an.
Ändern der Hervorhebungsfarben für meine Syntax entsprechend den Farben, die im Versionskontrollsystem verwendet werden.
Mal sehen:
Schreiben Sie Programme in C ++
Können Sie diesen 10-seitigen Bericht, den ich Sie gebeten habe, als Word-Dokument vorzubereiten und in eine Powerpoint-Präsentation umzuwandeln, weil ich wirklich ein visueller Denker bin und den schriftlichen Bericht, den ich Sie angefordert habe, nicht wirklich lese?
Ok, ich möchte, dass Sie dieses Bild eines Hauses scannen. Wenn ich zurückkomme, sollten Sie in der Lage sein, mir den hinteren Teil davon zu zeigen.
"Mir gefällt die Funktionsweise dieser Oracle-Datenbank nicht. Warum schreiben wir nicht einfach unsere eigene Datenbank?"
(Zugegeben, das war vor über 15 Jahren, aber immer noch!)
Ich wurde gebeten, Artikel von der Website eines Mitbewerbers in einen Iframe zu laden, der sich in der Oberfläche unserer Website befindet, sodass es so aussieht, als ob es von uns stammt.
Für mich war das verrückteste (und möglicherweise lustigste)
Sehen Sie diese 10 Millionen Codezeilen in (veraltete Web-Technologie)? Schreiben Sie einen Compiler, um ihn in eine funktionierende Asp.net-Site zu konvertieren.
Es hat nie eine funktionierende Version ausgespuckt (natürlich habe ich versucht, ihnen zu sagen, dass es unpraktisch ist), aber es hat trotzdem Spaß gemacht.
Ein Hauptmerkmal einer von unserem Unternehmen entwickelten Anwendung war die Möglichkeit, große Mengen von Dokumenten über den Volltext des Dokuments zu durchsuchen. Ein Wettbewerber machte in einer Marketingpräsentation gegenüber einem unserer Kunden die folgenden Angaben:
Unsere Suchtechnologie ist überlegen, weil sie nicht nur den Text der Dokumente durchsucht, sondern auch die "Bits und Bytes" der tatsächlichen Datei in binärer Form.
Sie gaben ein lächerliches Beispiel dafür, wie die dezimalen Ascii-Darstellungen der Wörter "boot" und "boat" viel weniger ähnlich waren als dieselben Wörter in binärer Form, als Sie die tatsächlichen numerischen Ziffern in der Darstellung verglichen haben. Die Suche basierend auf den Einsen und Nullen spiegelte also genauer wider, wie ähnlich diese beiden Wörter visuell erschienen, und verbesserte somit den Wiederaufruf.
Natürlich war ich damit beauftragt, diese Technik zu erforschen. Ich gehe davon aus, dass ein Marketing-Mitarbeiter irgendwo einen Programmierer völlig missverstanden und eine Antwort ausgearbeitet hat, die wir in unseren Vorschlag aufnehmen könnten.
Der Chef, ein kleines Team von Programmierern, möchte, dass wir ein Ticketreservierungssystem für eine kleine Fluggesellschaft einrichten (natürlich in sehr kurzer Zeit). Team sagt:
- Wie Sie sich vorstellen können, benötigen wir für dieses Projekt einige Tester
Chef sagt:
- Keine Sorge, lernen Sie von der Autoindustrie. Sie erinnern sich von Zeit zu Zeit an Autos: Benutzer werden die Tests durchführen.
Ich war Teil eines Mainframe-Supportteams, das mit anderen Supportteams in einem Rechenzentrum zusammenarbeitet. Nach der Schicht hatten wir normalerweise ein Briefing mit den Managern und dem Team der nächsten Schicht. Eines Tages tauchte unser neuer Direktor auf und stellte die Frage: "Warum lag die durchschnittliche CPU-Auslastung während Ihrer Schicht bei nur 72%, während die vorherige Schicht bei 95% lag? Ich denke, wenn wir uns wirklich anstrengen, könnten wir schließlich 100% CPU-Auslastung erreichen!" "
Vor ungefähr 12 Jahren, als ich am College war, arbeitete ich an einer Datenmodellierungsanwendung für Windows. Nach ungefähr 60.000 Zeilen Win32-Code, der auf die Windows-Plattform abzielt, war das Projekt fast abgeschlossen. Dann sagte der Client, die Anwendung müsse auch "im Web" laufen. Es fiel ihr schwer zu verstehen, wie diese eine "kleine" Änderung der Anforderungen einen so großen Einfluss auf das Projekt haben könnte. Ich habe in Java von vorne angefangen, aber das Projekt beendet, bevor es jemals fertig war.
Ich habe 1996 an einem großen Projekt gearbeitet, bei dem wir Live-Sportveranstaltungen gedreht haben. Diese Unterhaltung ist passiert:
Boss: Geh zum Veranstaltungsort für die nächste Veranstaltung.
Ich: Was soll ich tun?
Boss: Sei für alle Fälle da.
Ich: Nur für den Fall, was?
Boss: Falls der Tech Lead es verliert. Er ist viel zu gestresst und ich weiß nicht, was er tun könnte.
Ich: Und wenn er es verliert, was soll ich dann tun?
Boss: Bring ihn einfach raus, damit alle anderen weiterarbeiten können. Es ist mir egal, wie du es machst.