スケール
- 政府機関向けのソフトウェア開発。
- 難易度は低く、いくつかの工夫が必要です。
政府は事前に数百万ユーロを支払います。 2〜3年の開発計画。 開始するために、同社は複数の開発者を雇い、3か月ごとにチームの規模を2倍にし続け、資金が利用可能になったときに予算をマスターします。
7年後、プロジェクトはまだ形になっていない。 1日あたり数千ユーロの罰金が科されます。 経営陣は、職務経験がほとんどまたはまったくない人を雇用することで、コストを削減し、経験豊富な従業員を解雇することを決定します。
10年後、プロジェクトの悲惨な状況を考慮して、中間管理職は、スケジュールに戻るために開発経験のある人を雇うことにしました。 初心者の平均離職率:3か月。 これは、フランスで辞任する資格がある最小期間です。
12年後、プロジェクトはまだ完了していません。 同社は再び毎日の罰金に陥り、増え続ける変更要求に対して政府に請求します。 2008年が来ています。
フィギュア
- 600 万行のコード
- C ++に基づいて
- 50,000以上のクラス
- C ++の特定のバージョンは非推奨ですが、1つの(サポートされていない)オペレーティングシステムのみで配布されるコンパイラに関連付けられています
- CORBAに基づく
- 破産会社のDBMS
- GUI処理のための互いの上にある複数のレイヤー。どれも実際には作成者によってサポートされていません
- 32台の並列マシンでの組み立てには48時間かかります
- ユーザーインターフェイスのみを実行する40〜50の同時プロセス
- ライブラリの動的リンクの欠如:実行可能ファイルのサイズは数百メガバイトから始まります
- プログラムの起動時間:約15分
- 障害の平均時間:30秒から30分
C ++は単純な言語であると言う開発者はいません。 それどころか、最も難しいものの一つ。 実際、非常に複雑であるため、作成者でさえ、まだすべてをマスターしていないことを認めています。 ラストとして作られた有名な「インタビュー」で 、ストラウストルプの告白をご覧ください。
底なしの複雑さのこのような信じられないほどの迷路に直面して、人々は異なった反応をします。 すべての新興オタクはC ++について聞いたことがあり、C ++でプログラミングできることを証明したいと考えています。 彼らは大胆に突っ込みます-そして、認識できないほど怪我をします。 彼らは、明らかな理由もなく、なぜ大量のちんぷんかんぷんが絶え間なくクラッシュするのかを解明するために無数の時間を費やします。 心を持っている人-彼らはすぐに他の言語や他のプロジェクトに行きます。 人生は短すぎます。
言語に関係なく、大規模なプロジェクトを維持することは困難です。 従業員が600万行のコードをサポートする必要があることを想像してみてください-そして、あなたはクレイジーな開発がどこまで進むことができるかについてのアイデアを得ます。 600万が大きな数字です。 1秒間に1行を読むと、 70日間休むことなく画面の前に座っています。
スケールを理解するために、2つのケースを説明します。
ある開発者は、インターフェイスを右クリックするとアプリケーションが完全に一時停止する理由を確認する必要がありました。 数日間の注意深い研究と信じられないほどの忍耐の後、彼は右クリックがうまく機能することを発見しました。 約45分後にコンテキストメニューのみが表示されます。 メインウィンドウで右クリックするたびに、すべてのメニューが(静的!)コンテンツのヒープから動的に生成されます。
ある時点で、ユーザーは「CD-ROMからデータをダウンロードする」オプションがまったく機能しないと報告します。 整理するのに数週間かかりました。 しかし、データが正しくロードされたため、最終的にバグレポートは「以前に解決済み」とマークされました。 700 MBをダウンロードしない限り、7日間かかりました。 しかし、忍耐は美徳です。
バージョン管理がうまくいかない
チームのある賢い人がバージョン管理ツールを使用するというアイデアを得るまでに数年が経過しました。 最初の試みはうまく機能しなかったため、チームは別のシステムに切り替えました。 そして数年後-3日目には、移行のたびにストーリー全体が失われます。
その結果、GUIを備えた災害ツールを選択しました。 スウェーデンから直接来る嫌悪感。 このシステムのほとんどのタスクを完了するには、4人の常勤チームを割り当てる必要がありました。 次のようになりました。
- 最初のチェックアウトでは、バージョン管理チームに予約する必要があります。 通常、会議は1週間後に予定されていました。
- 中間レベルのマネージャーの許可なしにファイルを編集することは許可されませんでした。 編集するファイルをマネージャーに事前に伝えてから、許可の公式リクエストを送信する必要があります。これは、バージョン管理チームが数日以内に検討できるものです。
- コードを変更するたびに分岐がトリガーされます。 これは、受け取ったすべての変更を結合する必要があることを意味します。 ストレージに非常に多くのファイルがある場合、同じファイルで作業している人はほとんどいないと考えるかもしれません。 しかし、ほとんどの作業が同じ100ファイル程度で行われることが判明しました。
- コードをエラーを検出する自動プログラムでチェックし、次に管理者がチェックインすると、チェックインは苦痛を伴う手順を経ます。 言うまでもなく、このアプローチでは、エラーは修正するよりも速く繁殖します。 記録されたエラーの数を注意深く見ると、修正ごとに2つの新しいエラーが発生していることがわかりました。
- バージョン管理は一般的に簡単です。 古いプログラムには最初のバージョンがあり、現在のプログラムには2番目のバージョンがあり、将来のプログラムには3番目のバージョンがあります。 どのバージョンが顧客に送られたのか、誰にも言えません。
ある時点で、公式のリリース日が設定され、チームの計画から完全に離婚しました。 その日が来ると、クライアントにはインストール手順が記載された空のCDが実際に送信されました。何週間もソフトウェアを作成できなかったためです。 クライアントは、彼らが彼に空のディスクを送って、公式に不満を言ったのを見つけました-そして、古いバージョンを受け取りました。 「About」フィールドに表示される日付が昨年と同じだったため、彼はこれについて知りました。
フレーム
あなたはパン粉を支払う-あなたはばかを得る
ソフトウェア開発の経験がまったくない非常に多くの人々がいるのに、エラーが大量に発生したのは不思議ではありませんか? 非常に才能のあるマネージャーの中には、人件費がクリーンなソフトウェア開発プロジェクトの主なコストであることがわかりました。 この驚くべき発見にまったく恐れず、彼は少なくともある程度の経験を持つすべての人々を解雇することを決めましたが、すべてのマネージャーを保持します。 多くの従業員のテーブルにC ++のダミーが表示されることは珍しくありませんでした。
チームを知る
チームの55人:20人の開発者、35人のマネージャー。 あなたは間違っていませんでした:本当の開発者よりも多くのマネージャーがいます。
マネージャーは、同じPowerPoint ADプレゼンテーションを何度も繰り返し表示する会議を嫌悪感の中で開催し、開発者は巨大なオープンタイプのオフィスでチャットして時間をつぶしています。
ソフトウェア業界での経験を持つマネージャーはほとんどいません。 当時、SCOはLinuxのためにIBMを訴えていました。 たとえすべてがブラフだったとしても、すぐに無料のプログラムにお金を払わなければならないことを理解していたこれらすべての人々には本当にうまくいきました。 Software Libreに言及する人はいませんが、全員がSoftware Gratuitについて知っています。 言うまでもなく、プロジェクトにはGNUライブラリがぎっしり詰まっており、これらの人たちはプロジェクトがどのようにGNUと互換性を持つようになるのかわかりません。 このコードのひどい品質を考えると、大丈夫ですが、誰も彼らがオープンソースを主張することはありません。
台座の下の技術知識。 インターネットについて知っている人はほとんどいません。 知っている人はそれがポルノのために作られたと思う。 あなたがインターネット上で何かを見たという言及-そしてあなたはウインクと笑顔を始めます。
地獄へようこそ
最高指導部が強制収容所のナチスのように振る舞わなかったら、これはすべておかしいでしょう。 ほんの数例。
- 朝9時以降に仕事に来ることは禁じられています。 かつて、上級管理者が正門の前に立って、9時01分以降に来た全員をすぐに解雇しました。 配布には、特に、多数のマネージャーと営業担当者が含まれていました。
- 喫煙者は休憩をとるので、仕事量が減ります。 経営陣は、注文に応じて全員に禁煙を強制しようとしました。 うまくいきませんでした。
- コーヒーマシンは数日間定期的に故障します。 コーヒーを飲む人は、貴重なコードを入力して、テーブルに座ることができない人よりも仕事が少ない。
- 職員がオフィスに来ると、全員が仕事をしているという印象を与えるために、同じコーヒーメーカーがオフになります。
- トイレは私の人生で最も嫌なものです。 おそらく、アイデアは生産性を高めることでした。トイレで過ごす時間が短いほど、より多くの(そしてより良い)仕事をします。
なぜ人々がそのような場所で働き続けているのか疑問に思われているでしょう。 最初の主な理由は、フランスが当時経験していた(そしてまだある程度まで経験している)深刻な経済危機でした。 仕事や賃金の存在は、条件に関係なく特権と見なされます。
別の理由は、多くの人にとってそれが最初の仕事だったからです。 比較せずに、あなたの仕事がどれだけひどいかを評価することは不可能です。 ほとんどの新参者は、マネージャーの病気を除いて、そのような制限を課すものがまったくない場合、正確に9時に来るように強制されるか、解雇されることは完全に普通だと考えました。
政府がこれをどのように許可しているのかについて:私たちは皆、それがどのように機能するかを知っています。 同省の予算を担当する人たちは、多くの企業のトップマネージャーと友達です。 フランスのような国では、腐敗はこのレベルでは珍しくありません。ほとんど開示されておらず、法律で起訴されることはめったにありません。 どうやら、これはフランスだけではありません。 ヨーロッパの他の場所やアメリカからも同じ話を聞きました。
次回はあなたの仕事が下手だと思って-もう一度考えてください。
2008年6月24日公開