2 ポイント 投稿者 GN⁺ 2024-05-10 | 1件のコメント | WhatsAppで共有

開発者がCTOに嘘をついた経緯

  • 数年前、フォーチュン500企業で働いていた頃の話
  • 当時のCTOは個人的な人脈のある重要顧客のために大きなプロジェクトを受注し、核心部分を大手技術サービス企業にアウトソーシングすることを決めた
  • しかしベンダーの「製品」は、実際には要件に合わせるために大規模なカスタマイズが必要で、最悪の選択だった
  • CTOとの進捗確認会議では誰もこのアイデアが良いとは思っていなかったが、みな「いい考えです、ボス」と言うだけだった
  • 結局、ベンダーが「製品」を納品した時にはすでに9月で、10月リリースに向けたデスマーチが始まった
  • テスト中に性能問題やMongoDBの16MBドキュメント制限に引っかかるなど、深刻なバグが見つかった
  • 顧客には1か月遅れでリリースすると伝える一方で、同時にベンダー統合を置き換える秘密プロジェクトを始めることにした
  • 若く情熱的な開発者だった私は、チームメンバー3人を割り当てられ、代替システムの開発を始めた
  • 12月中旬、ここ1か月で代替ソフトウェアをほぼ完成させたが、全員が燃え尽き状態だった
  • そのときCTOがやって来て、休暇を取り消すと言い、私は「わかりました」と答えた
  • しかし父の助言を思い出し、チームメンバーには休暇に行くよう伝えたあと、ひとりでCTOとのデスマーチ進捗確認会議に出席して嘘をついた
    • 「チームは一生懸命取り組んでいます。今日、73番目のマイルストーン統合ポイントに到達しました」
    • 「チームは昨日、良い進展を見せました。また別のWebサービスを完成させたんです」
  • 1週間後、休息を取ったチームメンバーが戻り、1月に期限どおり無事リリースできた

GN⁺の見解

  • 劣悪な環境と無理な要求の中でも、プロジェクトを成功に導いたリーダーシップが際立つ事例。特にチームメンバーのコンディション管理に気を配った点が印象的
  • ただし、CTOに嘘をついたことは望ましくない。長期的には組織内の信頼を失い、より大きな問題を招く可能性がある
  • ベンダー選定とアウトソーシング管理に失敗した責任はCTOに大きくあるが、それを正す過程では、より透明で積極的なコミュニケーションが必要だったように思える
  • 開発者の燃え尽きを防ぐためには、そもそももっと現実的なスケジュールを立て、十分な人員を投入すべきだった。クランチモードは避けるべき慣行である
  • 類似の問題状況に直面した際に参考になる代替案としては、アジャイル手法がある。短い周期で開発し、フィードバックを受ける過程を繰り返すことで、リスクを最小化し、チームメンバーの業務負荷を調整できる

1件のコメント

 
GN⁺ 2024-05-10
Hacker Newsの意見
  • 長時間労働と休暇取り消し:
    • 非現実的な期限に間に合わせるために長時間労働をし、休暇を取り消すのは賢明ではなく、後で後悔することになる
    • 従業員が休暇を犠牲にして製品を提供することに依存する会社は、問題のある職場文化に加担している
  • 健全な会社 vs 不健全な会社:
    • 健全な会社なら、経験豊富な人たちがアウトソーシングの進め方にある問題を予見し、早い段階で懸念を表明していただろう
    • オープンなコミュニケーション、解決策を見つけるために一緒に努力すること、チームの福利のためにマネージャーが擁護することは、健全な環境のしるしである
    • この話は、マネージャーが繰り返し上層部に嘘をつく不健全な状況を描いている
  • ばかげたベンダー慣行:
    • すべてのトランザクションを巨大なJSONドキュメントに保存し、更新のたびに全体を読み込まなければならないというベンダーのやり方は、とんでもない
    • もうひとつの例として、ユーザーチケットデータをユーザーテーブルの追加カラムとして保存し、その結果数百のカラムが生まれているスタートアップがある
  • 機能不全の状況とリーダーシップ:
    • チームリーダーが休暇について嘘をつくやり方は容認できず、解雇され得る違反行為である
    • より良いアプローチは、不合理な残業要求に反対し、健全なプロジェクトスコープとベンダーの責任を主張することである
    • チームリーダーには、自分の職を危険にさらすことになっても、チームを狂った要求から守る責任がある
  • 誰も得をしていない:
    • ベンダーは低品質なものを納品し、CTOは状況を把握しておらず、開発者たちは過労に陥り、主人公は嘘に頼っていた
    • これは誰も容認すべきではない狂った状況であり、より良い職場へ去るのが望ましい
  • 正直さと透明性:
    • 技術的問題、性能問題、スコープ変更などについて経営陣に正直に伝えることが、うまく機能した人もいた
    • 現場とかけ離れたリーダーシップが設定した恣意的な期限に合わせるために嘘をつくのは、良いアプローチではない
  • 開発者と経営陣の間の信頼ギャップ:
    • 開発者と非技術系の経営陣の間には、しばしば情報の非対称性と信頼不足がある
    • マネージャーは進捗を簡単に評価できず、プロジェクトの成功について不確実さを感じている
    • リスクはビジネス側にあるため、開発者はこの信頼ギャップを埋めるために踏ん張って成果物を出さなければならない
  • 控えめに約束して期待以上に達成する:
    • 主人公がすでに完了していた作業について「完了した」と嘘をつくのは、ある意味で「控えめに約束して期待以上に達成する」と見なせる
    • 未完成の作業について嘘をつくのはより危険であり、チームメンバーが再び戻ってくることに対する士気を下げる可能性がある
  • 無力な組織とローコードツール:
    • ベンダーのひどい慣行とささやかなプロジェクトスコープは、一部の大企業がソフトウェアプロジェクトに対してどれほど無力感を抱いているかを示している
    • これは、エンジニアでないにせよ技術リーダーシップにおいて、Retoolのようなローコードツールが人気である理由を説明しているのかもしれない
  • 誠実さと断る勇気:
    • 真の「ロックスター」は誠実さを備え、愚かさや不合理な要求を断る勇気を持っている
    • 並外れた無能さを補ったり、チーム全体の負担を一人で引き受けたりするのは、個人の責任ではない