回答:
Neal StephensonのSFスリラーSnow Crashを販売するために、「良性の」コンピューターウイルスを作成するように依頼されました。ユーザーのコンピューターを引き継いで、画面を雪、つまり「雪のクラッシュ」に置き換えることは「良心的」になります。一分かそこら雪が降ると、雪は消えて本の広告に置き換えられます。これは「良性」です。ウイルスは通常の手段でspread延しますが、コンピューターを引き継いだ後は「おもしろい広告が表示されたら、コンピューターに悪いことは何もなかったので安心します」と誰も気にしません。
実際に、世界的な大手企業でこれを行うように言われました。私は、これが破られるすべての法律と、これを本当に私に実行させた場合に起こりうる17の悪いことすべてを説明するメモを書かなければなりませんでした。
「あなたが書いたこのDLLはわずか17kbです。コードを追加して大きくすることができますか?クライアントは私たちにたくさんのお金を払っています。
Visual SourceSafeを使用します。
「あなたが知っているこの巨大な20年のCobolプログラムは、当社を多少なりとも定義するハードコードされたビジネスルールの山を含んでいます。それを.NETに変換してくれませんか?」
うわぁ。
数週間でライブになります。
幸運を祈ります。
私の兄弟と私は、何年も前に非常に有名なロックスターのためにマルチメディアのヘビーウェブサイトに取り組んでいました。
クライアントがサイトを見たとき、彼はいくつかのJPEGの圧縮アーチファクトに気づき、何が問題だったのかを尋ねました。画像は帯域幅の目的で圧縮が必要であり、画像は現在約80%の品質で圧縮されていることを説明しました。彼は気分を害し、の効果に何かを言った
80%で物事を行って、現在の場所に到達していないので、100%に設定します。
ユーザーにどのように影響するかを説明しようとしましたが、彼はそれをまったく持っていませんでした。その結果、これまでで最も遅い「仮想世界」ウェブサイトができました。これは実際に起こりました。
Mercuryは逆行状態にあり、新しいことを始めるのに悪い時期であるため、サイトの立ち上げを2週間遅らせる必要があります。
飛行機でビジネスマガジンでXMLがどのようにホットな新技術であるか(2002年頃)を読んだ後、経営陣の1人がアプリケーションにXMLを使用しているかどうかを尋ねました。
今、私はXML形式のファイルをインポート/エクスポートする機能については話していません。彼はそれが現時点で人気があり、私たちのアプリに信頼性を与える以外の理由でアーキテクチャの一部になることを望んでいました。
「現在、ユーザー名は一意である必要があり、パスワードはそうではありません。逆にすることはできますか?」
約7年前、私はその製品の1つを販売することを決めたオーダーメイドのソフトウェアショップで働いていました。一部の業界では、エンドツーエンドの運用スイートでした。まあ、この業界は超技術的であることで知られていなかったので、どういうわけか独立した中小企業のITコンサルタントに頼るのではなく、サーバーとITインフラストラクチャに対するサードパーティの技術サポートを提供することになりました。
ある日、顧客のサーバーでディスクの破損が発生しました。私たちが販売したサーバーは、RAID 1ミラー用にセットアップされたAdaptec RAIDコントローラーで構成されていました。彼らのアプリケーションデータベースは乾杯でした。彼らは数ヶ月でバックアップを実行していませんでした。彼らが実行したバックアップは使用できませんでした。最終的に8か月分のデータが失われました。彼らは、この調査作業を処理するためにITコンサルタントを雇いました。
その後、電話がかかり、セールスマネージャー(不可能な機能が有望であることで知られている)が、面倒をみてくれると伝え、契約書に書き留めました。
セールスマネージャーは、ファイルが破損していると見なされた場合、アプリケーションデータベースおよびその他のアプリケーション関連ファイルがRAIDコントローラーによって複製されないようにすることをお客様に約束しました。構成も必要ありません。うん。2週間以内にこの機能を提供するように言われた場合、またはお客様が私たちを解雇します。
そのため、プログラムマネージャー(大規模なエンタープライズCRM製品とその他の重大な開発の成功を手に入れた)がCOOとセールスマネージャーと面談しました。プログラムマネージャーは、これがどれほど正気で、不可能で、非常に不可能であるかを詳しく説明していました。セールスマネージャー(軍の経歴)は、単純に顔に叫びます(文字通り!)、「気にしないでください。RAIDをRAIDではなくするのはどれほど難しいでしょうか。 RAIDの問題はそれを台無しにしませんでした!」
その会議の終わりに、プログラムマネージャーはゼロデイ通知で終了しました。だから私は今これを任されていました。来週、AdaptecとLSI Logicの両方に、セールスマネージャーの前で笑うためだけに電話会議のエンジニアを提供するよう請願しました。
最終的に、彼らは義務を負い、交渉の終わりを掲げました。そして、彼らはそれがいかにばかげて実行不可能であるかを詳細に調べました。LSIの男は特に苛酷でした-彼は何もシュガーコートしませんでした。
この機能を実装する必要はありませんでした。私が実装しなければならなかったのは、顧客から要求されたカスタムセキュリティスキームでした。これにより、アプリケーションのコントロールをコントロールごとに、表示、無効、有効、読み取り専用、または読み取り/書き込みとして切り替えることができます。 。理論的には、146,000の組み合わせがありました。そして、もしあなたが誤ってコントロールグループを無効にした場合、あなたは不注意な副作用を持っているでしょう。言うまでもなく、実装する必要があるという最終通告が与えられたとき、ゼロデイ通知で終了しました。
+1
「ゼロデイ通知で終了する」のは、時々あなたがただ去らなければならないからです、そして、何人かの人々はそれを決して得て、いじくり続けません。
ソースコードのバグを自動的に見つけて修正できる商用製品を検索するように頼まれました。
まだ検索中.. 2001年以降:)。
私はかつて、文字通り時間をさかのぼることができるコードを要求するクライアント仕様を持っていました。
私の雇用主はクライアントのデータを収集し、午前9時から午後5時までの10分間隔でファイル形式Xでデータを配信し、最終配信(形式X(異なるフッターを含むX))を保存しました。私はそれをしました...そして彼らはびっくりしました。少量のデータを収集していましたが、実際には特定の日に配信するデータポイントは1つまたは2つしかありませんでした。
「空のファイルで迷惑メールをやめる!!!」彼らは泣いた。「5つのKの10分ごとに、バンドチューブが包み込まれます!」
はい。そのため、私のコードは10分ごとにチェックし、配信するものがある場合にのみ配信しました。けっこうだ。
「しかし、最後のファイルはフォーマットYでなければなりません!!!」彼らは叫んだ。「現代のテクノロジーは混乱し、怒ります!それを修正するか、マストドンの女であなたを打ち負かします!*」
(*-会話の一部を誤解している可能性があります。)
「だから、配信する新しいデータがある場合にのみ、ファイルを配信します。」
"はい。"
「そして、その日の最終的な配信は、異なるファイル形式になるはずです。」
"はい。"
「例外として、どのファイルがその日の終わりまでその日の最後になるかを知る方法がない。」
"はい。"
「したがって、これを実装する唯一の方法は、最終的な配信であることが判明した形式をやり直すために、一日の終わりに時間をさかのぼるコードを書くことです。」
「スポーツスコアを報告できましたか?未来を見返しましたII。BIFFタンネンが私たちを幸せにします。」
因果関係に違反することは非倫理的なプログラミング慣行であり、CPAN.orgにはそれを可能にするモジュールがなかったためです。(チェックしました。)最終的に、実際のデータがあるかどうかに関係なく、一日の終わりにフォーマットYでファイルを送信することができました。彼らの帯域幅がヒットを生き延びたと確信しています。
+1
「因果関係に違反することは非倫理的なプログラミング慣行です」。今、もっと注意が必要なルールがあります。
認識できる原因がなければ、私はプライベートミーティングに連れて行かれ、自分のコンピューターが監視されているかどうかをチェックしないように言われました。彼らが私のコンピューターを監視しているのかと尋ねると、(大体)「これは予防的なことです。弁護士にこのことを従業員に伝えるように言われましたが、そうは言えません。 -しかし、私は今それを監視していません。」
(注意、監視プログラムを探してはいけないと言っている間だけではなく、彼らは私のコンピューターを監視していると思います。実際、数週間後、私は早く入って、まるでリモート-だから私はCEOの窓を覗き込んで、彼がラップトップから私のコンピューターをリモートでクリックするのを見ました。)
私はかつて先のとがった髪のボスと長い「議論」をし、「1桁のみ」であるためビットデータ型に2を格納できると主張しました。
私が頼まれた最も愚かなことは、おそらく非常に大規模なプロジェクトの書き直しです。それは約35万行で、すべてC(「ヘルパー」スクリプト用に小さなperlが混入されています)で、クライアントが何をしても問題なく機能しました。
ほぼ1年後、
基本的に、賢明なリファクタリングでは達成できなかったものは何も達成しませんでした。しかし、上司は喜んで、ヘルパースクリプトを取り除きました。
私がこれまで見た中で最もひどい時間と既存のコードの無駄だと思います。
クライアント:数年前からデータベースソフトウェアを使用し、それを使用して独自のアプリケーションを開発し、随時お客様に電話をかけてきました。
私:はい、私たちはあなたとビジネスをすることを感謝します。
クライアント:ええ。電話をかけるたびに、新しい機能の使用方法を教えていただくか、使用方法のデバッグを支援したり、問題の回避策を提供したりします。
私: 確かに、私たちはいつでも喜んで助けてくれます。
クライアント:時折、あなたの製品に実際のバグがあり、あなたの会社はそれを修正してソフトウェアの更新を提供します。
私: 最善を尽くします。
クライアント: さて、あなたから今必要なのは、これ以上問題が発生しないという保証です。
私:。。。
「スパゲッティコード」コーディング技術を使用した、主要な多国籍の潜在的な顧客にソフトウェアのプレゼンテーションを書くよう依頼されました。
もちろん、私たちはイタリアにいます...いいですね。
どれどれ:
C ++でプログラムを書く
わかりました、この家の写真をスキャンしてほしいです。戻ってきたら、後ろの部分を見せてくれるはずです。
競合他社のWebサイトから、Webサイトのスキン内にあるiframe内に記事をロードするように依頼されました。
私にとって、最もクレイジーな(そして、おそらく、最も面白い)のは
この1,000万行のコード(旧式のWebテクノロジー)をご覧ください。コンパイラを作成して、動作するAsp.netサイトに変換します。
動作するバージョンを吐き出すことはありません(もちろん、非現実的だと伝えようとしましたが)とにかく楽しかったです。
弊社が開発したアプリケーションの大きな特徴の1つは、ドキュメントのフルテキストで大量のドキュメントを検索できることです。競合他社は、クライアントへのマーケティングプレゼンテーションで次の主張を行いました。
Googleの検索技術は、ドキュメントのテキストを検索するだけでなく、実際のファイルの「ビットとバイト」をバイナリ形式で検索するため、優れています。
彼らは、表現の実際の数字を比較したときに、「boot」と「boat」という単語の10進数のASCII表現が、バイナリ形式の同じ単語よりもはるかに類似していないというばかげた例を示しました。したがって、1と0に基づいて検索すると、これら2つの単語が視覚的にどの程度類似しているかがより正確に反映され、想起が改善されました。
当然、私はこのテクニックを研究する任務を負いました。それは、マーケティング担当者がプログラマーをどこかで完全に誤解し、提案に含めることができる応答を作成した結果だと思います。
約12年前、私が大学にいたとき、私はWindows用のデータモデリングアプリケーションに取り組んでいました。このプロジェクトは、Windowsプラットフォームをターゲットとする約60,000行のWin32コードでほぼ完成しました。それからクライアントは、アプリケーションも「ウェブ上で」実行する必要があると言いました。彼女は、この「わずかな」要件の変更がプロジェクトにどのように大きな影響を与えるかを理解するのに苦労しました。Javaをゼロからやり直しましたが、プロジェクトが終了する前にプロジェクトを終了しました。