- きちんと仕事をすることと、会社の速いスピードが衝突したとき、あなたはどちらを選ぶか?
- 信念を守って妥協するのか、それとも原則に合う仕事を求めて去るのかという問いで、後者を選んだエンジニア Chris Krycho の物語
- クリスは最終的に、自分の原則に合致する仕事を追求するために LinkedIn を去った
- ポッドキャストで語られた内容を整理
- 彼の話は、「イノベーションの必要性」と「プロジェクト健全性の重要性」のあいだにある緊張を強調している
クリス・クライチョのLinkedInでの初日
- クリスは2019年1月末にLinkedInに参加。大企業や健全な小規模企業でよく見られるさまざまなオンボーディングを経験した。
- クリスはコロラドからリモート勤務する予定だったが、最初の2週間はオンボーディングとチームとの時間に充てた。
数百万行のコード
- 前職での経験と比べて、LinkedInのフロントエンドクライアントアプリとバックエンドサービスの規模に大きく驚いた。
- LinkedInのフロントエンドは200万行に達し、これは前職の会社全体のコード量をはるかに上回っていた。
インフラチーム
- クリスの役割はインフラチームにあり、サーバー構築ではなく、エンジニアリング支援や開発者体験の改善に重点を置いていた。
- LinkedInの大規模なデスクトップアプリを、より扱いやすくすることが目標だった。
JavaScriptのモダナイズ
- JavaScriptクラスの導入によるコードのモダナイズ作業に参加。Emberフレームワークを使う中で生じる問題を解決する過程で、多くを学んだ。
- 大規模コードベースでのマイグレーション作業は、可能な限り自動化されるべきであり、手作業で処理するには作業量が大きすぎることを悟った。
TypeScript導入
- フロントエンドで発生するエラーを減らすため、TypeScriptへの移行を決定した。
- TypeScriptは段階的に導入でき、これはLinkedInが必要としていたスケーラビリティを提供した。
遅いマイグレーション計画 vs 'Finger Gun's Plan'
- クリスと彼のチームは、EmberコードをReactへマイグレーションする3〜5年計画を提案したが、別のチームは、全面的な見直しと高速な進行を約束する 'Finger Gun's Plan' を提示した。
- こうしたアプローチの違いは、クリスたちのチームが直面していた問題と、会社のスピードを優先する文化とのあいだの対立を反映していた。
クリスの経験と学び
- 不十分なアラートの問題を認識。
- メモリ使用量の増加とサーバー再起動の連鎖反応により、データセンター全体のサーバーがダウンした。
- システムのリセットと権限調整を通じて問題解決を試みた。
- 失敗は避けられず、ソフトウェアエンジニアリングとは、エンジニアがプロダクトの成果物を生み出す過程を支えるシステムを設計することだ。
- 多層的なレジリエンスを備えたシステムの必要性を強調。
事件に対する反発
- 問題解決の過程で、マネジメントからの信頼不足による不満が生じた。
- 上級エンジニアとの意見の相違やコミュニケーションの問題。
- システムは最良の状態でだけ動作するのではなく、あらゆる状況で支えられるものであるべきだと強調。
増していく圧力
- 技術的負債の解消とレジリエンス向上に取り組んでいたにもかかわらず、経営陣の不満は増していった。
- 複雑な問題に対して単純な解決策を求める経営陣との対立。
組織再編
- 「フィンガーガンズ・チーム」による組織再編と役割の変化。
- 別の役割での新たな経験と学習機会を認識。
反省と自覚
- 過去の経験と現在の状況を通じた自己省察。
- 人間関係の構築とコミュニケーションの重要性を認識。
- 技術的問題と社会的問題が相互につながっていることを理解。
結論と教訓
- クリスは、スピードを最優先の価値とする文化に対して批判的な視点を保ち続けた。
- キャリアと個人の価値観を見つめ直すことで、新たな機会を模索。
- エンジニアリングの卓越性を追求できる役割を探すクリスの旅は続いている。
GN⁺の意見
- クリス・クライチョの経験は、技術的原則とビジネス要件のあいだの対立をよく示している。
- 彼の決断は、個人の価値観と職業上の選択のあいだでバランスを取ることの重要性を強調している。
- LinkedInのような大規模な技術環境における変化管理は複雑であり、これは他の企業にとっても重要な教訓を提供する。
- TypeScriptのような技術導入はコード品質を向上させ、エラー削減に役立つ可能性があるが、大規模コードベースでは段階的なアプローチが必要となる。
- こうした技術的変化を推進する際には、開発者体験と製品リリース速度のあいだのバランスを考慮する必要がある。
1件のコメント
Hacker Newsの意見