世界を動かす技術を、日本語で。

エンタープライズ体験

概要

大企業 での1年間の経験を振り返るエッセイ。 スタートアップ や中小企業とのギャップに対する気づき。 非効率や組織文化、人材の多様性についての皮肉を交えた観察。 プロジェクト管理 やセキュリティ、リーダーシップの課題を指摘。 最終的には ポジティブな側面 にも触れている内容。

大企業での一年間の体験

  • $ENTERPRISE での勤務1周年を迎えた感慨
  • スタートアップ や中小企業からの転身によるカルチャーショック
  • 面接時の指摘 (エンタープライズ経験不足)が、後で褒め言葉だと気づいたこと
  • 初Pull Request で見知らぬツールのエラーに遭遇し、担当者探しで迷宮入り
    • Confluence の古いページでやっと情報発見、しかし担当者は既に退職
    • 結果として グローバル設定をプロジェクト単位で無効化 する暫定対応
  • 小規模企業なら すぐに分かる担当者 が、大企業では見つけにくい現実

小企業と大企業の問題の違い

  • 小企業では些細な問題 でも、大企業では解決困難な問題に発展
  • 莫大な予算 が無駄に消費される現場
    • AWSなどへの 過剰な支出、不要な高額プロジェクト
    • 小さなSaaS の存続を巡る無駄な議論
    • わずかな予算オーバー で直前にプロジェクト中止
    • 消耗品の購入申請 すら却下される理不尽さ

同僚の質のバラつき

  • 採用基準の一貫性 がなく、チームの能力に大きな差
  • パフォーマンスに関係なく 解雇されにくい文化
  • 適性のない管理職 や、業務知識のないアナリストの存在
  • 問題を指摘するインセンティブがないため 改善されない現状

緊急性の意味の変質

  • 小企業では明確な緊急性 があったが、大企業では曖昧
  • 「今週末作業してほしい」など 理不尽な急ぎ案件 の頻発
  • 本当の緊急対応 (例:顧客接続障害)と、 見せかけの緊急性 (他部署都合)の見極めが必要
  • 週末対応しても評価されない 現実

セキュリティの見せかけ

  • セキュリティ対策 が「数字を減らすこと」に矮小化
  • Wiz.io などのベンダーや、 Excelでの脆弱性一覧 の定期送付
  • 現場エンジニアの反論 が無視され、形骸化した運用
  • 数値化とレポート重視 の罠に陥る組織文化

肩書きの意味の希薄さ

  • "head of architecture" が6人も存在するなど、役職の定義が曖昧

不確実性は弱さ

  • 組織再編 やリーダー交代が頻繁
  • 過去の失敗を繰り返す リーダーシップの選抜構造
  • 「知らない」と言えない 上層部の文化、現場の声が届きにくい現実

エンジニアリングチームの帝国化

  • 部門ごとに標準や文化が異なる サイロ化現象
  • テストを全く書かないチーム や、 手動テスト依存 の現場
  • 閉鎖的なチーム が組織全体の効率低下を招く
  • サイロ化打破の困難さと、 既得権益の維持 への抵抗

ポジティブな側面

  • 皮肉や不満も多いが、実際には充実した一年間
  • 多様な経験 や学びを得られる環境
  • 大企業ならではのスケール感 や安定性の価値
  • 個人の成長 やキャリアの幅の広がり

まとめ 大企業での経験は 非効率や理不尽 も多いが、 学びや成長 の機会も豊富。 小規模組織との違い を理解し、それぞれのメリット・デメリットを活かす視点が重要。

Hackerたちの意見

大きな企業は、自分たちが提供したいものを一貫して届けることにしか興味がないんだよね。実際の目標は、数字を追ったり、規制プロセスや経営者の命令、その他いろんなことによって決まる。人間が考える合理性は通用しないよ。

そんな組織には耐えられない。マジで無理。3倍の給料でも、数ヶ月で壊れちゃう。

重要なのは、ゾロフトを大量に摂ることだね。

時々、お金を最優先にして、$ENTERPRISEで給料の高い仕事を得て、十分貯金ができたら長期の休暇を取ることを考えることがある。でも、面接の儀式を乗り越えることを考えるだけで、すぐに気が萎えちゃう。今は$MIDSIZENOLONGERSTARTUPにいるけど、ここもまた自分を壊すような狂ったことがたくさんあるんだよね。

報酬は、実際にやらなければならない仕事の量に反比例します。

これはほぼすべての公的機関にも当てはまるよ。ただし、以下のコメントは除いてね:週末に働かなきゃいけないっていうコメントを削除すること。技術的なキャリア開発の機会があるっていうコメントを削除すること。スキルアップやトレーニングが奨励されているっていうコメントを削除すること。

オープニングの「楽しさと金銭的利益」についての文も当てはまらない気がする。

$ENTERPRISEに18ヶ月いるけど、これ本当に痛いよ。

いつも心に留めておくべきことがあるよ、レミーの企業ソフトウェアの法則(https://thedailywtf.com/articles/graceful-depredations):もしソフトウェアが「企業向け」と表現されているなら、それはゴミだ。冗談はさておき、投稿の最後にあった良いことリストには興味をそそられた。一部は理解できたけど、他のものは「良い」と言われるけど、実際には「悪い」とされることをさらに引き起こす奇妙なカテゴリーに入っているように思えた。このリストには次のようなものがある: > 実際にキャリア開発の機会がある。 「キャリア開発」って「もっとお金がもらえる」ってこと?そうなら、単に「もっとお金を稼ぐ機会がある」って言えばいいじゃん。そうじゃないなら、投稿の他の部分で説明されている様々な機能不全に埋もれていくこと以外の「キャリア開発」って何なの? > 数百万人に使われるソフトウェアを書くのは満足感がある。 そのソフトウェアが悪かったり、多くの人に害を与える場合でも満足感はあるの?

「キャリア開発」って結局「もっとお金」ってこと?大企業だと大きなプロジェクトをリードするチャンスが増えるよね。大企業では、スタートアップの製品がそのまま社内で作られることも珍しくないし、環境によっては数年の間にいくつかのプロジェクトに関わることもある。もっと大きなチームをリードしたいなら、大企業の方が見つけやすいよね。 > でも、そのソフトウェアが悪かったり、多くの人に害を与える場合でも満足できるの?スタートアップや小さな会社に本質的に良いことはないよ。良いか悪いかはケースバイケースだね。

「キャリア開発」って結局「もっとお金」ってこと?そうなら「もっとお金を稼ぐチャンスがある」って言えばいいじゃん。そうじゃないなら、他の部分で述べられている様々な機能不全に埋もれていくこと以外の「キャリア開発」って何なの?人生では、よく考える人はみんな、私たちがもっと大きなシステムの中の小さなプレイヤーに過ぎない現実に直面することになる。これを考えると、「不公正な社会の中でどうやって公正でいられるか?」とか、「個人としてコミュニティに良い影響を与えるための最良の方法は何か?」とか、「自分の小さな役割の中でシステムを変えようとする意味はあるのか?」みたいな深い質問が出てくる。こういう質問には様々な反応や結果がある。ある人は、変化を促すために地元の政治や草の根運動、活動家として積極的に関わる。逆に、システムの重みに圧倒されて完全に disengage する人もいる。さて、君の質問に答えると、私たちがやっている仕事を信じてる(そうじゃなければ、たぶん参加してない)。会社でのキャリア開発は、単にお金が増えるだけじゃなくて(もちろんそれも一部だけど)、より多くの責任を与えられ、どんどん変化を実現できるようになることだよ。機能不全の組織にいるとき、君はどうする?私が考える選択肢は大体こんな感じ: - 会社を変える、そしてその機能不全が克服できないことを認める。 - 自分の仕事をして、今のポジションに留まる。 - 機能不全の組織にさらに深く埋もれ、ポジティブな変化のエージェントになれると考える。 > そのソフトウェアが悪かったり、多くの人に害を与える場合でも満足できるの?そういう人もいるよ。害を与えることに満足を感じる人もいる。でも、私はそうじゃないし、自分の仕事が害を与えているとは思わない。「社会にとってプラスになるソフトウェアを書くのは満足だ」って言わなきゃいけないほど細かく考える必要はないと思ってた。

「キャリア開発」って結局「もっとお金」ってこと?データサイエンスの研究者になりたいとか、開発者エバンジェリストになりたいなら、君の仕事を支えられる組織が必要だよね。マイクロサービスアーキテクトになりたいなら、小規模な会社ではブーイングされるけど、3000人の会社では歓迎されるよ。同じことがエンジニアリングマネージャーの道にも言える。人員がいないと意味がない。 > ソフトウェアが悪かったり、害を与える場合でも、君が取り組むものは必ずしもエンタープライズソフトウェアである必要はない。そうならないことを願ってる。

もしソフトウェアが「エンタープライズ」と表現されるなら、それはゴミだよ。安全基準が血で書かれているなら、エンタープライズソフトウェアは訴訟で書かれている。

... レミーの企業ソフトウェアの法則 ... 投稿の最後にある良い点のリスト。ブログ記事の投稿者と同じように、私も非常に大きな企業で働いていました。従業員20万人、サーバー1万台とかね…。幸運にも、CTOのサポートをして、数億ドルの企業ソフトウェアの購入決定に関わる機会がありました。ベンダーを次々とインタビューして、「大企業」に適合するかどうかを厳しくチェックしましたが、ほとんどはダメでした。彼らが盲目的に燃えながらジャンプしなきゃいけないカフカ的なハードルの話ではなく、要件はシンプルで、しっかりしたアーキテクチャの原則でした。彼らがそれを満たさなければ、彼らのソフトウェアは「小さなクライアントには十分良い」かもしれませんが、スケールでは絶対に機能しませんでした。メモから作ったリストはこんな感じでした:

  1. LDAPやOAuthなどの外部ソースからのシングルサインオンをサポートすること。(私たちのディレクトリやユーザーパスワードをあなたの不安定なゴミソフトウェアに同期させるつもりはありません。)
  2. 何らかの監査ログを持つこと。特に管理や設定の変更について。(ある場所では数百人の管理者がいて、全員が完全に信頼できるわけではありません。)
  3. 無人インストールプロセスを持つこと。たとえそれがVMクローンでも。(日曜の午前3時にGUIウィザードを500回クリックするつもりはありません。)
  4. 増分マイグレーション/アップグレードを許可すること。つまり、「簡単な」プロセスであるストップ・ザ・ワールド、一方向のビッグバン、スタート・ザ・ワールドは、10,000のテナントを持つ企業では実行不可能です。アップグレードが最初の試行で全員にうまくいくかどうかはわかりませんから。
  5. スケール。これは「ユーザー」と「テナント」テーブルにインデックスを持つことのようにシンプルですが、通常の開発者は1ユーザー1テナントのスケールで作業しているため、見落とされがちです。同様に、コンボボックスやドロップダウンは、セキュリティグループなどのほとんどのフィールドでは使えません。(私たちは70万のセキュリティグループがあります。OOMエラーであなたのGUIがクラッシュしないように699,900を削除することはできません。)
  6. アクセシビリティは必須です。最大20万人の常勤ユーザーと100万人の臨時ユーザーがいるため、すべての障害が表れます。視覚や聴覚の問題だけでなく、運動神経の問題や切断者なども…(あなたが名前を挙げれば、私たちのスタッフにはその障害を持つ人がいます。) などなど… そういう視点で見ると、企業ソフトウェアは理解できるようになります。バロック的でも悪意があるわけでもなく、目的に合わせた特定の形を取っているだけです。たとえば、なぜActive Directoryがすべての「ピッカー」GUIコントロールに検索ダイアログボックスを使用するのか、もっとシンプルなドロップダウンなどにしないのか理解できませんでしたが、ディレクトリに200万のオブジェクトがある環境で働くまでわかりませんでした。

企業ソフトウェアが定義上悪いとは思わない。良い企業ソフトウェアを作ることは絶対に可能だけど、そのためには多くの要件に従うスキルが必要なんだ。それに、企業のほとんどの人は、提供するソフトウェアがどれだけ使いやすいかについて評価されることはないから、あまり興味を持っていない。実際、彼らはソフトウェアを使っているユーザーを見たことがない。私は$ENTERPRISEに7年いて、ユーザーを訪れたのはたった1回だけだ。

なくなった - 新しいリーダーシップが古い体制を追い出して、友達で置き換えるんだよね。グループ名は何度目かの変更で、何年も経ってる。人は同じ仕事を続けるけど、今は部門名に「イノベーション」や「ディスカバリー」、「リーダーシップ」ってのが追加されてる。

  • グループ名が何度目かの変更で、何年も経ってる。人は同じ仕事を続けるけど、部門名に「イノベーション」や「ディスカバリー」、「リーダーシップ」が追加されてる。時々、チーム名を「ピカチュウ」にしてそのまま働き続けたいって思う。そうすれば、他の人も名前なんてどうでもいいって分かって、名前変更をやめるだろうし。ドキュメントを変更したり、チーム名が変わったことを知らせるのにかかる手間が、本当に無駄な仕事を生んでるんだよね。

「エクセレンス」って名前のイニシアチブを見るたびに、これはクソだなって思う。

私たちは、Terraform CDKを使って構築した内部のインフラストラクチャ・アズ・コードライブラリを持っていて、DatadogやPagerDutyで監視リソースを自動的にプロビジョニングしています。ある日、必要な引数「team」を削除したら、それが7ヶ月の半減期を持つことに気づきました。

  • 新しいリーダーシップが古いガードを追い出し、友人で置き換えるだろう。 私の宿敵は、新しいビジネスを始めるたびに、彼のヘルプデスクと開発チーム全体をゆっくりと連れてきます。これはクレイジーです。なぜなら、彼にとっての利点は単に忠誠心だからです。彼が成果を出せなかったとき、彼らは文句を言ったり、彼の上司に行ったりしません。彼が他のビジネスで働いていたスタッフからの証拠がありますが、彼は常に同じパターンを繰り返しています。
  1. 問題を特定する(問題は大手マイクロソフトパートナーからの新しいCRMがないこと。)
  2. 問題を解決するために多くのお金を使う(CRMパートナーとマイクロソフトのおかげで、年に3回の無料のラスベガス旅行。)
  3. CRMを提供できない(問題の範囲が大きすぎなかった。)
  4. プロジェクトの範囲を再設定する。(もっと特典がもらえる。)
  5. もう一度提供できなかっただろうが、私は別のビジネスを変革する新しい仕事を得たので、あなたのクソみたいなものを楽しんでください。

すごく面白い記事だね。今、企業で3年くらい働いてるけど、技術的には成長してる気がする。でも、ここでは人間関係やコミュニケーション、官僚主義について学ぶことが多いな。予算とマウスのコメントも的を射てるけど、$ENTERPRISEで働くことで得られる経済的安定のおかげで、自分でマウス買えるしね。もしかしたら、どこかの帝国が無許可のマウスについて文句言うかもしれないけど、無視するか、ああ、偽の緊急性から逃げる方法を自分で見つけるよ。

私は本当に$ENTERPRISEでしか働いたことがなく、最後の2つの職場ではAWSの請求に月に1000万ドル以上使っていました。この記事のほとんどのポイントは私の経験に当てはまります。HN/X/Redditなどのコメントを読むと、数万人の技術者と働いているのに、物事を進める上での独特の課題が全く表現されていないように感じることがあります。

うん、ポイントごとに、これがまさに私がいる企業の状況にぴったりだと思う。違うのは、異なるエンジニアリングチームの帝国が常に自分たちのものを使わせようとして、結局ゴミになることだね。

私も似たような環境にいて、この文章が痛いほど正確だと感じました。自分の仕事は問題を解決してソフトウェアを出荷することだと思っているのに、それは明らかに私の組織の「明示された好み」ではありません。著者は小さな会社から大きな会社に移ったけど、逆に行った人はいますか?私はそのシフトを考えていて、他の人がどのようにEnterprise™の経験を小さなチームに共鳴する形でフレーム化したのか興味があります。 * https://en.wikipedia.org/wiki/Revealed_preference