勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

エンジニアリングモデルとコントラクタモデルと納期のはなし

牛尾さんの「納期がなぜ生産性をぶち壊しにしているのか?」という記事を読んで考えたこと。あるいはインターネットが屑情報ばかりになってしまう現象への個人的な抵抗。

牛尾さんの記事では、特に日本では重視されがちのようにみえる「納期」というものがソフトウェアエンジニアの生産性に悪影響を与えるということ、現所属および周囲の北米企業では「納期」の少ない良い環境であることを示している。その論には強い異論はないのだけれども、「納期」というキャッチーな(?)用語を使ってしまっているので、論点の見通しが少し悪いようだ。

そこで、いろいろな見方があると思うが「文化」の話と「現場」の話に分けて、関連書籍などを紹介しながら論じてみたい。

エンジニアリングモデルとコントラクタモデル(文化の話)

納期という単語に反応すると「それは契約の話なのでは」となってしまいがちだが、もう少し抽象度を上げると企業文化の話になるだろう。というわけで「要件最適アーキテクチャ戦略」で紹介されているエンジニアリングモデルとコントラクタモデルについて紹介したい(なおこの本自体は正しくモノリスを作るDDDの本である。詳しくは以下の過去記事を参照)。

ちょっと長いが引用してしまおう。ちなみに引用部分を書いたのはリーン開発本で有名なMary Poppendieckさん。

 この機会に、コントラクタモデルの対極にあるエンジニアリングモデル手法をソフトウェア開発に取り入れるという考えを紹介したい。まず、典型的なコントラクタモデルについて考えてみよう。このモデルでは、従業員と実際の請負業者のどちらで使われるとしても、開発者には担当する作業が正確に指示され、少しの失敗も許されない。エンジニアリングモデルでは、仮説に基づく実験を使って、学習と改善を行いながら複数の選択肢を検討する。
 SpaceX とTesla はエンジニアリングモデルを採用している。対照的に、ほとんどのソフトウェアプロジェクトはコントラクタモデルを採用している。この対立する2 つのアプローチを並べてみた場合、ソフトウェア業界全体での1 人あたりのイノベーションを最大化するのがどちらであるかは明らかである。
 SpaceXペイロードを宇宙に打ち上げるコストを劇的に削減し、ブースターロケットを回収して再利用するという主要目標を――― 予定を大幅に短縮した上で達成した。どうやってなし遂げたかというと、SpaceX は近年まで宇宙探査の唯一の資金調達法とされていた政府との請負契約を結ばなかった。(中略)というのも、あらゆることについて耐えがたいほど詳細な検討を重ねるのではなく、とにかくいろいろなことを試して未知の未知を発見しようとしたからである。エンジニアリングのアプローチとしてはかなり典型的なものだが、コントラクタモデルでは決して許されないものだ。SpaceX チームによれば、墜落させて問題を見つけ出すほうが、リスクがなくなるまで待っているよりもずっと安上がりだったそうだ。
要件最適アーキテクチャ戦略(P.43)

私の理解する限りにおいては

  • エンジニアリングモデル:仮説に基づく実験を使って、学習と改善を行いながら推進する。アジャイル的なアプローチ(納期はない)
  • コンストラクタモデル:請負契約に基づき、計画駆動で推進する(納期はある)

ということだろうと思う。「要件最適アーキテクチャ戦略」ではもちろん目指すべき形はエンジニアリングモデルとされている。一方でエンジニアリングモデルを選択するということは企業の戦略であり、文化の変革の話であり、リスクを取る選択をすることになるだろう。このリスクが取れるのであれば「納期のないエンジニアリング」は実現できるのだ。

逆に言えば、リスクを取らずにコンストラクタモデルの文化を続ける会社で「納期のないエンジニアリング」を実現するのは(不可能ではないだろうか)難しい。
(ちなみに、Space Xがめちゃくちゃリスクを取っている話は自伝「イーロン・マスク」に描かれている。波乱万丈すぎて面白い本だった)

納期と期日と目標(現場の話)

牛尾さんの記事で気になったのは、以下の箇所である。

日本にいた時には何でも納期が付いて回ってた気がする。凄ーくちいさな仕事を頼まれても「〇〇日までにお願いします」と納期が付いてくる。今からするとなんにでも納期が付いて回る感覚だ。
納期がなぜ生産性をぶち壊しにしているのか?|牛尾 剛

「〇〇日までにお願いします」は、わたしの感覚で解釈すると期日か、単なる要望である。これを納期と捉える感覚には違和感がある。
ただ、実際には特に日本の現場ではこういった言葉の誤用・乱用が多いのも事実だ。例えば納品物と成果物、善管注意義務プロマネ義務、プロトタイプとMVPなどなど。ソフトウェアエンジニア的には様々な用語の定義に敏感であってほしいものだが、仕様と技術用語以外はルーズになってしまうのは割と不思議である。

実際のところ、納期(または納品日)は契約で定めるものであり、守らなければならないコミットメントである(これを守らなければ債務不履行になる)。逆に言えば納期だけは特別な約束であり、それ以外の日付はそこまで厳格なものではないし、調整余地も多いはずである(もちろん納期だって適切な手続きを取れば変更できる)。納期(コミットメント)を達成するためには様々なタスクに分解しマネジメントする必要があるが、分解したタスクの終了予定日は納期ではない。遅れたら他で取り返せば良いし、そういったリスクも含めて管理する方法はいろいろあるだろう(個人的にはTOC理論が好き)。

ちなみに現在も有用な古典的名著である「ソフトウェア見積り 人月の暗黙知を解き明かす」では第1章で「見積り、ターゲット、コメント」は異なるものだと言っていた。同じ話だ。

 辞書にある「見積り」の定義は、厳密な意味では正しい。見積りとは、プロジェクトにかかる期間やコストを予測することだと言ってよい。だが、ソフトウェアプロジェクトの見積りとは、ビジネスのターゲットと、コミットメントと、コントロールとの間の相互作用である。(中略)
 ターゲットが実現したいビジネス目標の記述であるのに対して、コミットメントとは、定義された機能を、特定の品質レベルを確保しながら期日までに納品するという約束を意味する。コミットメントと見積りが、同一のものを指すこともあるが、コミットメントが見積りより挑戦的だったり保守的だったりすることもある。言い方を変えると、コミットメントと見積りが同一でなければならないと考えてはいけない。そもそも同じものではないのだ。
ソフトウェア見積り 人月の暗黙知を解き明かす (P.4)

雑なまとめ

というわけで

  • 所属する企業の文化を確認しよう。コントラクタモデルな文化の企業やプロジェクトで納期不要論を主張しても仕方がない。転職しよう
  • 日付の話が出たらそれは「納期」なのか「期日」なのか「目標」なのかをちゃんと確認しよう。勝手に目標を納期と誤解してあたふたするな(相談すればなんとかなることもあるよ)

そんじゃーまた

汎用的なデジタルリーダーシップ本としての「プロダクトマネージャーのしごと第2版」

先日、オライリーSNSキャンペーンで当選して「プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド」をプレゼントいただいた(皆さんも根気強く申し込みましょう)。自分は普段プロダクトマネジメントを仕事としているわけではない(サポートすることはある)のだけれども、どっこい本書はそんな私にも使える、というよりむしろデジタル仕事全般について役立ちそうな本であった。どうしてそう感じたのかを説明する。


「プロダクトマネージャーのしごと 第2版」の紹介

ソフトウェア業界におけるデジタルプロダクトのマネジメントをする人=プロダクトマネージャーの「やるべき事」ではなく、「気をつけるべきこと」について書かれた本である。よって、プロダクトマネジメントの方法論ではないため、プロダクトマネジメントを行う人が一冊目に読む本ではないと思う。二冊目でもないかも。本の紹介は訳者のryuzeeさんのこのページがおすすめ→ 【資料公開】プロダクトマネージャーのしごと | Ryuzee.com

汎用的なデジタルリーダーシップ本として読めるのでは?

本書の冒頭で語られるプロダクトマネージャの責任はこのようになっている。

  • チームメンバーのベストを引き出す
  • 自分と一緒に働く直接のインセンティブがないような、自分の直属のチーム以外の人と一緒に働く
  • 曖昧さに対処する

確かに、人に実際に価値を提供できるプロダクトを生み出すのは、プロダクトマネジメントにおける最も重要な側面の1つで、やりがいもあります!でも、こういったプロダクトを届けるための日々の仕事は、コミュニケーションやファシリテーション、支援の仕事のほうが多く、作るという仕事はそれより少ないのです。

これ、プロダクトは関係なく、デジタルに関連したITエンジニアと共同作業する全ての仕事に共通する話なのでは……

実際この後の本書の内容は、ソフトウェア開発のプロジェクトマネージャーだろうと、ソフトウェア開発組織のラインマネージャーであろうと共通的な仕事で考えるべき論点を多く取り扱っている本である。というわけでプロダクトマネジメントに関係ない人ももっと読んだ方がよい良書だというのがわたしの感想である。

お気に入りの(プロダクトマネジメントに関係なく)使えそうな内容の紹介

  • 1章 プロダクトマネジメントの実践
    • 「終わらせる必要があれば、それがあなたの仕事である」 ああ、そうだね(白目)
  • 4章 過剰コミュニケーションの技術
    • 「コミュニケーションはあなたの仕事。仕事をすることで謝罪してはいけない」 勇気をもらった
  • 5章 シニアステークホルダーと働く(ポーカーゲームをする)
    • 章タイトルだけで泣ける
    • 「警告なしで驚かさない」「社内政治の世界でユーザー中心主義を貫く」「シニアステークホルダーも人間だ」 グサグサくる
  • 7章 「ベストプラクティス」のワーストなところ
    • この章が一番好きです
    • フレームワークやモデルは有用なフィクション」 知ってる
  • 8章 アジャイルについての素晴らしくも残念な真実
  • 9章 ドキュメントは無限に時間を浪費する(そう、ロードマップもドキュメント)
    • ドキュメントを書くことの重要性と、一方で効率性に関することが述べられており有用な章。
    • 「メニューは食事ではない」 この言葉が重い
  • 11章 「データ、舵を取れ!」
    • 『本当のデータドリブンな手法を取り入れたいプロダクトマネージャーに「データという言葉を一切使わないでください」とよくアドバイスします』 神アドバイス
  • 12章 優先順位づけ:すべてのよりどころ
    • この章もいいことがいっぱい書かれていて悶絶する
  • 13章 おうちでやってみよう:リモートワークの試練と困難
    • 「さまざまな人たちからなるさまざまなチーム間で信頼関係を築くための唯一のレシピや戦術ハンドブックはありません」 気づいています

というわけで本書はとてもオススメである。
プレゼントでいただいた物理書籍はオフィスに置いて、電子版も買った(電子版はAmazonではなく、オライリーのサイトからの購入となる)。

最近読んだフィードバックに関する本を3冊紹介する

先日読み終わった「みんなのフィードバック大全」が面白かったのだけれども、ふりかえってみるとフィードバックというテーマの本は他にも何冊も読んでいた。おそらく深層意識のどこかでフィードバックに関する課題感を感じているのだろう(大げさ)。復習も兼ねて、最近読んだフィードバックに関する本を整理してまとめておこうと思ったのだ。

目次

みんなのフィードバック大全

みんなのフィードバック大全
SAP Concerという経費精算システムを販売するコンカーの日本法人社長が執筆した書籍。SNSのタイムラインで絶賛されていたので手に取った本。本記事で紹介する他の2冊はマネージャー向けであるのに対して、本書はマネージャー以外の若手にもおすすめしたい本である。著者もそう考えているようで、タイトルに「みんなの」とあるのはその意思の表明とのこと。

  • コンカー日本法人の設立直後は組織作りが後手に回ってしまい苦戦。方針を見直した結果、日本における「働きがいのある会社」で表彰されるようになった。
  • 現在は本業とは別に、働き方に関する施策や取組みを研修として提供している。その中で最も注目されている「コンカー流フィードバック」を書籍化したのが本書。
  • ベースとしては著者のマッキンゼーでの学びがある。
  • 参考

本書が良いのは、マネージャーの立場だけでない形で、様々なフィードバックの方法がフレームワークと実例で紹介されているところだ(ちゃんと大全になっている)。
特に「部下から上司」「同僚間」でのフィードバックの事例は参考にしたいし、いろいろ考えるきっかけになる。
実際に本書のプロローグでは、著者の三村氏がマッキンゼー新卒2年目の若手社員からフィードバックされる場面が紹介されるが、これはけっこうインパクトがある。

「ビジネスの経験は大切です。ただ経験だけに頼って考えたり話したりするのでは、マッキンゼーコンサルタントとしては不十分だと思うんです。経験に頼るのではなく、〝ファクト〟と〝ロジック〟で話す。そこに経験を裏打ちする。そこを意識すれば、三村さんはもっと強くなれると思うんです」
みんなのフィードバック大全 プロローグ、より

新卒2年目の若手社員が、他社から転職してきた10歳以上年上の著者に、こんなことを言うのである。
これをコンカーでは組織的に常時やれるようにしたとのことで、それは強いだろう。真似したい。

フィードバック入門~耳の痛いことを伝えて部下と職場を立て直す技術

フィードバック入門 耳の痛いことを伝えて部下と職場を立て直す技術 (PHPビジネス新書)
以前に本ブログのこの記事でも取り上げたのだが、「ヤフーの1on1」という書籍(この本もオススメ)で、「この本を超える参考書はたぶんない」などお激推しされていたのが本書、フィードバック入門である。新書なので忙しいビジネスマンにとっては有難いコンパクトな本でもある。こちらはマネージャー、管理者、人事部や経営者向けの本である(実際に著者もそう言っている)。

本書の特長は、
①部下育成やフィードバックの基礎的な理論、学問的な知見(科学知)
②現場のマネジャーからヒアリングを通して抽出した実践的な知見(実践知)
この二つをバランスよく盛り込むことを意識している点にあります。
フィードバック入門 耳の痛いことを伝えて部下と職場を立て直す技術 (PHPビジネス新書) はじめに、より

キーワードは「育成」である。本書はコンパクトながらも、「なぜ部下が育たないのか」という課題に関する社会史的な分析に始まり、「部下育成のためのフィードバック理論」を説明し、さらに実践編+タイプ&シチュエーション別FAQまでついているという密度で、持っていると非常に心強い教科書という感じだ。またロジックが明確なので、例えばリーダーを部下に持つ管理職にとっては特に心強い本だと思う。

GREAT BOSS~シリコンバレー式ずけずけ言う力

GREAT BOSS(グレートボス) ―シリコンバレー式ずけずけ言う力
邦題がおかしい本(そして机の上に出しておくと同僚にハラスメントの疑いをもたれる本)。原著はタイトルは「Radical Candor(徹底的な本音)」である。率直なフィードバック(時には厳しいことも言わなければならない)について書かれている本である。現代の技術者マネジメントの教科書だと勝手に思っている「エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法」でもおススメされている。

フィードバックを伝える最良かつ簡潔なアドバイスは、徹底的な本音です。同じ名前の本になっています。スタッフと話すときに、話すべきこと、話すべきでないことを示しています。
エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法 「3章 人間と関わる」3.1.4 フィードバックをするには、より

この本を紹介するのはネタでもオチでもなく、大真面目にオススメできる本である。マネージャーおよび人事担当者向けである。

さて本書は(シリコンバレー流という前提付きで)良い上司になる方法、具体的にはメンバーとの信頼関係を構築して、徹底的な本音で語り合うことを推奨する本である。けっして部下を「詰める」本ではない。著者は起業に失敗した後にグーグル、そしてアップルに入社後はリーダーシップ教育を実践してきた方である(現在は独立)。シェリル・サンドバーグが大学院の同級生だそうだ。
翻訳書という点では注意は必要だろう。米国におけるマネージャーと、日本における管理職では人事権等も含めた裁量が異なる。ただそれを差っ引いても学ぶべき事が多い本である。

まとめ

関連記事

以前にはこんなことを考えていた
agnozingdays.hatenablog.com

エンジニア目線で「記者ハンドブック(第14版)」をチェック

SNSのタイムラインで「記者ハンドブック 第14版 新聞用字用語集」が話題だったので手に取ってみたら非常に良かった。現代では短文で明確なコミュニケーションをすることの重要性が高まっている。校正ツールに頼れば良いという考え方もあるだろうが、理屈を知ることは重要だと思ったというお話。

  • Kindle版もあるが、本書については物理紙版を購入
  • 時々品切れとなって中古がプレミア価格になるが、少し待てば増版されるようなので値段には注意を

短く的確な文章を書くことの重要性が上がっている

在宅勤務や、在宅オフィスハイブリッドの働き方が定着し、非同期型の仕事の仕方の重要性は上がっている。「DXジャーニー」ではコミュニケーションのデジタライズとか、ミーティングのアンバンドル化などと表現されているものだ。会議とチャットと同時編集可能なツールで効率よくメッセージングしながら文書作成することが求められている。

そこで何が大事かというと、チャットで短く的確な文章を書いてコミュニケーションができることだと思っている。言葉のラリーが必要ならメールで良いのだ。短く鋭い言葉でスマッシュをかませたい。

メソドロジーというか考え方自体はいろいろな書籍が出ている。
例えば最近だと「言葉ダイエット メール、企画書、就職活動が変わる最強の文章術」は面白かった。
言葉ダイエット メール、企画書、就職活動が変わる最強の文章術

まずは「相手は自分の文章を読みたくない」という前提に立ちましょう。
言葉ダイエット メール、企画書、就職活動が変わる最強の文章術

同感。

ただ、この種の文章本を読んで考え方をいくら学んでも、日常の文章が格段に良くなったという実感がない。どうすれば……というところで「記者ハンドブック(第14版)」を知ったのだった。

「記者ハンドブック(第14版)」について

きっかけはSNSのタイムラインでフォローしている知人が購入したことなのだけれども、調べるとなかなかに興味深い。

というわけで購入したら、確かに便利なのである。もっと早くに出会いたかった……

「記者ハンドブック(第14版)」の良いと思うところ

  • 文章の理屈だけが限界までコンパクトに書かれていて、わかりやすい
    • 例えば「記事の書き方、考え方」は見開き2ページにまとまっているし、「漢字とひらがなの書き分け」も4ページだけでわかる
  • メインコンテンツの「用字用語集」は辞書とは違い、用語の使い分けに特化している。余計なことは書かれておらず、注意点が中心なので使いやすい
    • 例えばWindowsに付属している日本語IMEでもある程度の用語説明は含まれているのだけれども、いちばん知りたいベーシックな単語には説明が無かったりするので便利だ
    • たとえば「とき」と「時」、「こと」と「事」の使い分けなど
    • 課金してATOKを導入すれば解決するという噂もあるけれど、社用だと導入しにくいのよね
  • 「記事の見出しのつけ方」は、メールや文章タイトルにも活用できそう
  • 「数字の書き方」もだいぶ勉強になった
  • 各種の校正ツールの指摘の確認に使える。今どき、様々な校正ツールが存在している(身の回りだと、ShodoVS Codeの拡張など)が、指摘の理屈がわからなくて修正すべきかどうか迷うことがあるのだ
  • 新聞記事と同一ルールであるという安心感

「言葉に迷ったらこの1冊だね」ーー落語家 立川志の輔
記者ハンドブック 第14版 新聞用字用語集 オビより

というわけで、だいぶ気に入ったので手元でよく引く本となっている。

要件定義ではHowじゃなくてWhatを語れという話

ソフトウェア開発における要件定義では「要件定義ではHowじゃなくWhatを語れ」とか「UIの議論の前にシナリオ/ユースケースを整理しろ」という話を最近何度かすることがあった。この考え方は過去のいろいろな学習経験とプロジェクト経験から来ているのだけれども、そういえばちゃんとまとめたことがなかったと思い、まとめてみることにしたという記事。

要件定義ではHowじゃなくWhatを語れ

どういう意味かというと、具体的にはこんなことを言いたいのだ。

  • いきなり要件定義段階で、構築予定ソフトウェアの画面など機能の話をするな
  • ユースケースもしくはそれに類する形で要求を整理しろ
  • ユーザーの要求を動詞で整理しろ

なお現代的にはユースケースより、ユーザーストーリーといった形で整理するのが良いかもしれない(これは読者の属するドメインによる)。

なぜHowを語るべきではないのか

要件定義でHow、すなわちソフトウェアの画面や機能を書いてしまうことの弊害はいくつかある。いちばんの問題は「それが要求ではない」という点である。またHow(機能)だけが一人歩きして、それを誰がなんのために利用するのかといった情報が失われてしまうという問題があると思っている。

名著「ユースケース実践ガイド―効果的なユースケースの書き方 (OOP Foundations)」(残念ながら絶版である)では以下のような説明がある。

要求文書の中にインターフェイスを操作するユーザーの動きを記述すると、3つの問題点が出てきます。

  • 文章が不必要に長くなる。
  • 要求が不安定になる。つまり、ユーザーインターフェイス設計に対するわずかな変更でも、「要求」自体を変更しなければならなくなる(これはそもそも要求ではない)。
  • UI設計者の仕事を奪うことになる。UI設計者に仕事をまかすべきである。


ユースケース実践ガイド―効果的なユースケースの書き方 (OOP Foundations)」、第20章 個別のユースケースについてのメモ メモ7:GUIを排除する、より

ソフトウェア要求に関する歴史的な経緯

そもそも論で太古のソフトウェア要求は機能を中心に語られていたという。その後、ビジネスアナリストが「シナリオベース」の要件分析を始め、それが現代のユースケースやユーザーストーリーベースの要件定義に変化してきたと言われている。歴史を逆行すべきではないだろう。

アナリストは、ユーザー要求の引き出しに、長いこと、使用シナリオを使ってきた。この使用状況中心の観点をまとめたのが、要求モデリングへのユースケースアプローチである。さらに最近、アジャイル開発の支持者が「ユーザーストーリー」のコンセプトを導入した。ユーザーストーリーは、簡潔な記述でユーザーニーズを伝え、詳細を具体化するための話し合いの出発点となるものである。
ユースケースとユーザーストーリーはともに、要求引き出しのプロダクト中心の観点を切り替えて、ユーザーが何を成し遂げる必要があるかという話し合いに移すものである。ユーザーに、システムに何をしてほしいかと聞くものではない。このアプローチは、システムを使用してユーザーが実行するタスク、あるいはステークホルダーに貴重な成果をもたらすユーザーとシステムの相互作用を記述することを意図している。ビジネスアナリストがこれを理解すると、使用シナリオを実行できるようにするために、システムに実装しなければならない機能を導き出すことができる。また、その機能が正しく実装されたかどうか検証するためのテストにも役立つ。使用状況中心の引き出し戦略をとれば、他のどんな技法を使用するよりも、プロジェクトの多くのクラスのユーザー要求を深く理解することができる。


ソフトウェア要求 第3版」第8章 ユーザー要求の理解、より

例外もある

なお、この原則には当然のことながら例外もある。「ソフトウェア要求 第3版」にも書かれているが、構築するソフトウェアのタイプによっては必ずしも該当しない。バッチシステムや計算集中型のシステム、データウェアハウスなどのアプリケーションや、組込システムやリアルタイムシステムである。これらのシステムはユーザとシステムの相互作用が要求の焦点ではないからである。

GoogleのSRE本の続編(?)「インシデントの解剖学」を読んだ

最近よく聞いているSRE系のポッドキャスト e34.fmのep17で紹介されてた、GoogleのSRE本シリーズの最新作(?)「Anatomy of an Incident(インシデントの解剖学)」を読んだメモ。ポストモーテム(検死解剖)から展開して、Anatomyは解剖学というわけだ。

sre.google

本書は書籍の体裁をとっているが、無料でPDF/EPUB/MOBIがダウンロードできる。O'reillyのサブスクにも収録されている。
learning.oreilly.com

全般的な感想

インシデント管理に特化した最新のまとめ小文書という印象。インシデント管理の周辺は適応課題というか悩ましいことが多いので興味深い。GoogleのSRE本やエンジニアリング本は良い本なんだけど、インシデント管理まわり以外の話題も多くて読むのも骨だから本書を手始めにすると良さそう。一方で、あまりディープなことが書かれているわけではない。

ちなみに、インシデント発生時の対処方法であるインシデントコマンドシステム(本書でも推奨されている)について興味があれば「システム障害対応の教科書」がとてもよかったのでオススメしておく。

システム障害対応の教科書

興味深いと思ったのは、インシデント対応メンバーの燃え尽き症候群を防止するために、ものすごく配慮をしているという点だ。Googleではパンデミック以降に大きなインシデントの増大があったそうだが、そのあたりの学びが反映されているのだろうか。対応期間も3日以内と制限され、様々なケア(事前の訓練も含まれる)がほどこされている。確かに現代においてはエンジニアが最も重要かつ希少なリソースであるため、ここを守ることに注力するのは正しいような気がする。

各章に関する覚え書き

1. Introduction(はじめに)

  • 失敗は避けられない。変化は常に予想できない。よって準備が重要
  • COVID-19パンデミックによってGoogleはインシデントの増大にさらされたが、10年以上にわたるインシデント管理への投資によってサービスの提供の継続ができた
  • Googleにおけるインシデントの定義:単独で処理できずエスカレーションされたもの、即時要対応、組織的な対応が必要
  • インシデント管理ライフサイクル:準備、応答、緩和と回復

2. Practicing Incident Response Readiness (Preparedness) インシデントレスポンスの準備

3. Scaling Incident Management (Response) 大規模インシデント管理

  • 階層的なレスポンダー:コンポーネントレスポンダーとSoSレスポンダー
  • Googleにおける2種類のSoSレスポンダー:Product focused IRTと、Tech IRT
  • 共通プロトコル、信頼、尊重、透明性
  • バーンアウト対策:対応期間の制限(3日以内)で人を守る

4. Mitigation and Recovery 緩和策と回復方法

5. Postmortems and Beyond ポストモーテムおよびその後

  • "Googleでは、Ben Treynor Slossが四半期ごとに「Google’s Greatest Hits and Misses」というレポートを発行して、過ちから学ぶことができる力を与える文化を育んでいます"
    • 読みてぇ!が、ちょっと調べた感じでは公開はされていないっぽい
  • ポストモーテムでは、インシデントにおける根本原因とトリガーを区別する
  • システム思考(holistic systems thinking)

6. The Mayan Apocalypse: A Real-World Example マヤの黙示録(現実の例)

7. Conclusion and Moving Forward 結論および今後について

  • インシデント管理に投資する
  • 人の問題に対して備える
  • 改善を繰り返す。ヒロイズムに陥らないようにする

エンプラ技術者の知識継承がうまくいっていないかも、という話

最近読んだ「Web世代が知らないエンタープライズシステム設計」はとても刺激的で良い本だった。企業の情報システム部門およびエンタープライズシステムを受託開発するSIerの中堅技術者は必読だと思う。ただ、書籍タイトルは中身を分かりにくくしている気がする。「エンタープライズシステムアーキテクトが知るべき16のこと」という感じの本だ。

さて、同書の冒頭で書かれている、エンタープライズシステム設計に関するノウハウ継承が世代間でうまくいかなたったのではないか、という問題提起が気になったので、考えたことを書いてみようと思う。

Web世代が知らないエンタープライズシステム設計

何がエンタープライズシステム開発のノウハウ継承を阻んだのか?

Web世代が知らないエンタープライズシステム設計」では、2つの要因によって00年前後にエンタープライズシステム開発のノウハウ継承が阻まれたという仮説が提示されている(ノウハウ継承の場であるワイガヤが失われたという文脈)。提示されている2つの要因はこれだ。

私見だが次の2つの「波」を受けた時から議論をする雰囲気、すなわちワイガヤが失われていったのではないか。1つの波はオープンシステムである。企業でしか所有できなかった大型汎用機(メインフレーム)を使う時代から個人でも買えるPCで開発し、動かす時代がやってきた。もう1つは日本企業に目標管理制度が導入され残業規制が厳しくなったことである。


Web世代が知らないエンタープライズシステム設計」はじめに、より引用

うーん、どうだろう……

要因1:技術パラダイムの転換 ⇒ 大小のパラダイムシフトに翻弄されたというのはあるかも

本書では大きな技術パラダイムの転換、すなわちメインフレームからオープンシステムへの移行が大きな要因だったと書かれている。しかし実際にはそれ以外にも様々なパラダイムシフトの波状攻撃によって、中核となる技術者の関心が発散してしまったというのが実際のところではないかと思う。

そういえば、「モダン・ソフトウェアエンジニアリング」でもJacobsonが似たような事を言っていた。

今日のソフトウェアエンジニアリングは、未熟なプラクティスによって重大な妨害を受けている。具体的な問題として、以下が挙げられる。

  • エンジニアリングというよりファッション業界でよく見られる一時的な流行の蔓延
  • 妥当性のある広く受け入れられた理論的基盤の欠如
  • 違いがほとんどないにもかかわらず人為的に誇張された無数の手法とその派生形
  • 信頼できる実験的な評価と検証の欠如
  • 業界の慣行と学術研究の分断


モダン・ソフトウェアエンジニアリング」第2章 ソフトウェアエンジニアリングの手法とプラクティス、より引用

ソフトウェアエンジニアリングについては進歩が早いだけでなく、流行もあるので、常に新しいことを学び続ける必要がある。
というよりもむしろ、学ぶことが好きな人にとって、常に新しい学習要素が供給され続けるという状況である。
その結果として、企業情報システムの構築方法という極めて重要度が高いスキルの「深掘り」や「継承」が劣後してしまったんじゃないか、というのが自分の意見だ。

要因2:目標管理制度の導入と労務管理の適正化 ⇒ 共感は出来るけど、もっと包括的な仕事環境の変化が原因なんじゃないか

本書では、目標管理制度、成果主義の導入と残業規制により、技術者が他のプロジェクトメンバーとの意見交換や切磋琢磨しなくなったのが、もう一つの技術継承阻害要因だったと論じている。
これは確かにそう、とも思うのだけれども、より具体的には「フィードバック入門 耳の痛いことを伝えて部下と職場を立て直す技術 (PHPビジネス新書)」で指摘されている問題のほうが大きく影響していそうな気がする。

こうした状況に対して、「私の育て方に問題があるのだろうか? 私はマネジャーに向いていないのでは……」と自分自身を責めている人もいるでしょう。自分の部下に、メンタルをやられて、休職する人が出てくれば、なおさら自分に非があるのではないか? と思ってしまうかもしれません。今の中間管理職の悩みは、非常に根が深いものがあります。 

しかし、そんな悩みを抱える中間管理職の方に、まずは、こうお伝えしたいと思います。
「若い部下が育たないのは、あなたのせいではありません。過剰に自分自身を責めないでください。それは、職場環境の変化によって構造として生まれている現象なのです」と。


フィードバック入門 耳の痛いことを伝えて部下と職場を立て直す技術 (PHPビジネス新書)」第一章なぜ、あなたの部下は育ってくれないのか?、より引用

同書では、

  • 雇用の安定性(長期雇用、年功序列)によって部下を育成する余裕があった
  • 長時間にわたって同じ空間(オフィス~アフター5)で行動をともにしていた。育成を促進する濃密な空間があった
  • 組織がフラット化し、マネージャーの若年化、大量生産が起こったため、上司に学ぶ期間が減った
  • プレイングマネージャーが常態化し、成果を求められるようになったことから、育成余力が減った

などという分析がされている。コレジャナイ?

ちなみに同書は要は、過去は自然に人が育ったが現代では期待できないので、意図して育てるしかない。ではどうすれば、という話が続くのだが強くお勧めしたい
フィードバック入門 耳の痛いことを伝えて部下と職場を立て直す技術 (PHPビジネス新書)

じゃあ、どうすんの?

では、現代のわれわれは、どうすべきなのだろうか。
そんなことがわかっていれば、やっているのだけれども、今のところ私は「これ」という策は見つけられていない。

ただ、少なくとも、何もしなければ人は育たないということだけは確かなのだ。