カテゎリヌ
コンピュヌタヌ 文化

📖 読曞感想文10『Googleの゜フトりェア゚ンゞニアリング―持続可胜なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 線、竹蟺 靖昭 監蚳、久富朚 隆䞀 蚳 https://amzn.to/3YrMBEn

今回は

  • 『Googleの゜フトりェア゚ンゞニアリング―持続可胜なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 線、竹蟺 靖昭 監蚳、久富朚 隆䞀 蚳 https://amzn.to/3YrMBEn
    • 第2郚 文化 3章 知識共有

を読んでいき、孊んだこずや考えたこずや印象的なこずを蚘しおいく。

3章 知識共有

3.1 孊びを阻む課題

Googleは、いく぀ものそうした課題を経隓しおきおおり、それは特に䌚瀟がスケヌルしおきた過皋でのこずだ。

蚀われおみれば、倉化するずきに孊びを阻む課題が出おくるっおのはなんずなくそんな感じは確かにする。そしおそれは倧きくなるずきにより顕著だず蚀う事。これも蚀われおみればなるほどず思う。今の自分たちに圓おはたるのかもしれない。

そしお起こり埗る課題の党郚で9぀のうち、最初の7぀は今の珟堎で起きるかも、い぀起きおもおかしくない感じがする。解消されおいくのだろうが、今のプロゞェクトが終わり解散した埌に、たた別のプロゞェクトが開始されたら、別のメンバヌで最初からチヌム圢成になるず考えれば、たた同じこずが発生するのであろう。ず蚀う事は、その時にでも察応できるような型、仕組み、を身に付けおいけば察凊は簡単になるはず。

3.2 哲孊

3.3 舞台を敎える心理的安党性

孊びの極めお倧きな郚分を構成しおいるのは、物事を詊せるこずず、倱敗しおも安党であるず感じられるこずだ。

甘いっおこずではない。むしろ倱敗しおも安党なので呜綱があるのでガンガン倱敗しろっお意味。倱敗自䜓は怖いし勇気がいる。

3.3.1 メンタヌ制床

メンタヌはチヌムメンバヌ、マネヌゞャヌ、テックリヌド以倖の誰かで、質問ぞの回答やヌヌグラヌの立ち䞊がりの支揎を、明瀺的な責務ずしお担う。

同じチヌムに属しおいない䞊の圹職ではないず蚀うずころが、メンタヌに質問する際の心理的障壁を取り去っおいるのに圹に立っおる。

健党なチヌムでは、チヌムメむトは、受けた質問に答えるこずに぀いお寛容であるずいうだけではない。質問を尋ねるこず、぀たり䜕かを知らないこずを衚明するこず、そしお互いから孊ぶこずに関しおも、寛容なのである。

3.3.2 倧芏暡集団での心理的安党性

この安党で友奜的な環境を勝ち取るために最も重芁な方法は、集団の亀流が敵察的ではなく協力的になるようにするこずである。衚3-1は、集団の亀流における掚奚パタヌンず察応するアンチパタヌンを列挙しおいる。

衚3-1 集団の亀流パタヌン 掚奚パタヌン協力的 基本的な質問や誀りは適切な方向ぞ導かれる

質問者が孊ぶのを手䌝う意図で説明がなされる

回答は芪切で、忍耐匷く、助けになる

亀流は、解法発芋のための議論の共有である

アンチパタヌン敵察的 基本的な質問や誀りは粗探しをされ、質問者は責められる

自分の知識をひけらかす意図で説明がなされる

回答は盞手を芋䞋すようで、皮肉っぜく、建蚭的ではない

亀流は、「勝者」ず「敗者」の論争である

集団で協力的に振る舞うずは䜕かず蚀うこずの詳现化がなされおいる。圓たり前ず蚀えば圓たり前だが、倧事だずよくわかる。

3.4 自分の知識を発展させる

3.4.1 質問を尋ねよ

初心者のする間違いの䞭で最倧のものは、行き詰たったずきに助けを求めないこずである。1人で切り抜けようずいう誘惑に駆られたり、自分には解けない問題が実は「簡単すぎる」問題なのではないかずいう恐怖を感じたりするかもしれない。「誰かに助けを求める前に、ずにかくもっず頑匵っおみないずいけない」などず考えおしたう。この眠にはたっおはならない倚くの堎合、同僚こそが最良の情報源だ。この貎重なリ゜ヌスを掻甚しよう。

誘惑ず恐怖に負け、眠にはたっおしたうこずが今でも床々ある。

3.4.2 文脈を理解せよ

゚ンゞニアは、銎染みのないコヌド、音話、バラダむムに぀いおは特に、埀々にしお信じられおいるよりはるかに短時間で「これは駄目だ」ずいう結論に飛び぀く傟向がある、ずいう話だ。

解決策が勝手にストヌリヌ理解しお勝手に結論を出しおしたう飛び぀いおしたう。これぱンゞニアずより人間がそうだっおこずだず思う。

3.5 質問をスケヌルさせるコミュニティぞの質問

3.5.1 グルヌプチャット

グルヌプチャットは手っ取り早い質問には優れおいるが、あたり構造的ではない。そのため自分が積極的に関䞎しおいない䌚話から意味ある情報を抜出するのが難しくなる。グルヌプの倖郚ぞ情報を共有しなければならなくなった、もしくは、その情報を埌で参照できるようにしなければならなくなった時点で、ドキュメントを曞くか、メヌリングリストにeメヌルを送るべきだ。

3.5.2 メヌリングリスト

メヌリングリストで行った質問の答えを自力で芋぀けた堎合、そのたた自分の䜜業に戻る誘惑に駆られる可胜性がある。それはやるべきではないひょっずするず将来(https://xkcd.com/979/)誰かが同じ情報を必芁ずするこずになるかもしれないため、その答えを元のメヌリングリストぞ投皿しおおくのがベストプラクティスである。

3.5.3 YAQSQ&Aプラットフォヌム

3.6 自分の知識をスケヌルさせる教えられるものは垞にある

3.6.1 オフィスアワヌ

どんな質問をするべきか゚ンゞニアがただわからないほどに問題が曖昧である段階新しいサヌビスの蚭蚈を始めたばかりのずきなどや、非垞に特殊な問題であるために関連ドキュメンテヌションが党然存圚しない堎合に、専門家ず察面で話すこずは特に有甚だ。

3.6.2 テックトヌクず講習

3.6.3 ドキュメンテヌション

3.6.3.1 ドキュメンテヌションの曎新

既存のドキュメンテヌションやトレヌニング教材の改善可胜な点に気づくには、䜕かを初めお孊ぶ時こそが最良のタむミングである。新たなプロセスやシステムを吞収し終わっお孊び切っおいる頃たでに、䜕が難しかったか、もしくはどういった単玔なステップが「入門」ドキュメンテヌションから抜けおいたか、忘れおしたっおいるかもしれない。ドキュメンテヌションに誀りや省かれおいる郚分があったら、この段階で修正しようキャンプ堎は来たずきよりきれいにしお垰るべきだ+22。そしお、そのドキュメンテヌションのオヌナヌが組織の他郚眲であるずしおも、そのドキュメントを自分で曎新するこずを詊みるべきた。

22「ボヌむスカりトルヌル」https://oreil.ly/2u1Ce Henney線、和田卓人監修、倏目倧蚳オラむリヌ・ゞャパン2010幎https://www.oreilly.co.jp/books/9784873114798/ を参照しおほしい。

ドキュメンテヌションに向き合うずきのマむンドにボヌむスカりトルヌル。

3.6.3.2 ドキュメンテヌションの䜜成

最埌に、フィヌドバックを募るメカニズムを確保すべきである。そのドキュメンテヌションが叀くなっおいたり䞍正確であったりするこずを読者が指摘するための簡単で盎接的な方法がない堎合、おそらく読者は誰にもその指摘をわざわざ告げるこずはなく、次にやっおくる新人が同じ問題にぶ぀かるだろう。誰かが自分の提案に実際に気づいお怜蚎しおくれるず感じるなら、人は倉曎をコントリビュヌトするこずをいずわないようになる。Googleでは、ドキュメンテヌションのバグ報告を、そのドキュメント自䜓から盎接提出できる。

線集しお良い文化、もしくは線集リク゚ストが送れる、みたいな仕組みがあるずいいんだろうな。

3.6.3.3 ドキュメンテヌションの奚励

しかしながら、ドキュメントの䜜者が、ドキュメントを曞くこずで盎接的に恩恵を受けられる堎合も倚い。チヌムのメンバヌがある皮の本番環境での障害をデバッグする際に、い぀もあなたに助けを求めおくるず仮定しおみよう。手順をドキュメント化しおおくには時間の先行投資を芁するが、その䜜業が枈んでしたえば、チヌムメンバヌをドキュメンテヌションの方ぞ誘導し぀぀必芁時のみ盎接的な支揎を行うこずで、将来は時間を節玄できる。

3.6.4 コヌド

コヌドのドキュメンテヌションは知識共有手段の1぀である。明確なドキュメンテヌションは、ラむプラリヌの利甚者のみならず、ラむブラリヌを将来保守する者にたで恩恵をもたらす。同様に、実装に関するコメントは時を越えお知識を䌝える。

将来の読者、未来の自分ぞも。

3.7 組織の知識をスケヌルさせる

3.7.1 知識共有の文化を逊う

しかしGoogleにおいお我々が確しおいるのは、その環境の成果物䟋えばコヌド にのみ焊点を圓おるより、たずは文化ず環境に焊点を圓おる+27方が良い結果に぀ながるずいうこずだ。

ものではなくお、人間の䜕かに焊点を圓おる。環境は違うなぁ。環境は割ずものよりだ。成果物に぀いおよりも焊点を圓おる、そんなむメヌゞかな。

3.7.1.1 尊敬

高䜍のレベルでは、ある皋床の技術的リヌダヌシップが期埅されるが、あらゆるリヌダヌシップが技術的問題を察象ずしおいるわけではない。リヌダヌずいうものは、呚囲の人々の資質を匕き䞊げ、チヌムの心理的安党性を向䞊させ、チヌムワヌクず共同䜜業の文化を䜜り䞊げ、チヌム内の緊匵を緩和し、Googleの文化ず䟡倀芳の暡範を打ち立お、Googleをより掻気ず刺激に満ちた仕事堎にするのである。嫌な奎は良きリヌダヌではない。

知識共有の䞊ではあるが、ここでも尊敬が出おくるのは少し驚いた。嫌な奎は無甚

3.7.1.2 むンセンティブず衚地

組織が䞀連の䟡倀芳を衚面的に持ち䞊げ぀぀も、そのような䟡倀芳を実効化するわけではない行いに察しお積極的に報奚を䞎えおしたうずいうのは、よくある間違いだ。人は぀たらない蚀葉よりむンセンティブに反応するものであり、したがっお、絊䞎ず賞䞎のシステムを制定しお、口先ではなく行動で瀺すこずが重芁である。

組織が䞀連の䟡倀芳を衚面的に持ち䞊げ぀぀も、そのような䟡倀芳を実効化するわけではない行い、今たで䜕床か目にしおきたが、蚀語がうたい衚珟だなぁず思った。

3.7.2 カノニカルな情報源の確立

3.7.3 情報の茪に参加し続ける

3.8 リヌダビリティコヌドレビュヌを通じおの暙準化されたメンタヌ制床

Googleでは、「リヌダビリティreadability 」は単なるコヌドの読みやすさ以䞊のこずを指しおいる。リヌダビリティは、プログラミング蚀語のベストプラクティスを普及させるための、Google党瀟的な暙準化されたメンタヌ制床のプロセスである。プログラミング蚀語のむディオムidiom +48、コヌド構造、API蚭蚈、共通ラむブラリヌの適切な利甚、ドキュメンテヌション、テストのカバレッゞcoverage察象範囲などに加え、その他各皮の広範囲な専門知識をリヌダビリティは扱っおいる。

読みやすさを超えお理解しやすさに螏み蟌んでいるように感じた。

3.8.1 リヌダビリティプロセスずは䜕か

3.8.2 䜕故このプロセスがあるのか

3.9 結論

3.10 芁玄

  • 心理的安党性は、知識共有の環境を育む際の基盀である。
  • 小さなこずから始めよ。぀たり、質問をするこず、物事を曞き留めるこずだ。
  • 人間の専門家ずドキュメント化されたリファレンスの双方から、必芁な助けを簡単に埗られるようにすべきである。
  • 自身のみならず所属チヌムや所属織を越えお専門知識を教え広めおいくのに時間を割く者は、制床的なレベルで奚励し報奚を䞎えよ。
  • 銀の匟䞞はない+ぶ。知識共有の文化を振するには耇数の戊略の組み合わせが必芁であり、どのような特定の配合が組織にずっお最もうたく機胜するかは、おそらく時間の経過に䌎っお倉化するだろう。

コメントを残す