#Book [[📒エンジニアリングマネージャーのしごと]] ## 14.1 コミュニケーションが[[🗃️ソフトウェア]]の設計を決める - [[🗃️コンウェイの法則]] ## 14.2 ギルドでサイロを壊す ## 14.3 トークの文化を奨励する - [[🗃️チーム]]の人がローテーションで話すための定期的な[[🗃️LT(ライトニングトーク)]]の枠を作る ## 14.4 問題を学習の機会に変える ### 5why - システム障害が起きた時の原因を5回のなぜで問題を深掘りする - なぜアプリケーションがダウンしたのか? - APIがリクエストに応答しなくなったから - なぜ? - 本番環境はテスト環境よりも同時リクエストが多く、スレッドセーフではないデータ構造を使っていた - なぜ? - 開発中に考えられていなかった - なぜ? - 自動テストは高不可じのシナリオをカバーしていない。 - 5Whyを実行するときは、質問と答えや結果を誰かが確実に記録するようにする ### マネジメントバグ - ソフトウェアのチケットのように[[🗃️マネジメント]]に関するバグもチケットで管理するようにする - 💭これちょっと考えていたアイディアだ。 - 方法 - 誰でも問題の説明を書いた「マネジメントバグ」のチケットを上げられる - チケットを取り上げ、ワークフローに入れる。ワークフローは[[🗃️カンバン]]が管理しやすい。 - チケットが完了になったら、問題と行われたアクションのまとめを書く。 - 完了したチケットを誰でも見える共有フォルダーに置く - 💭[[🗃️Github Disccusions]]使ってもいいかも ## よくある問題を解決するツール ### このコードはなぜこうなっているのか? - [[🗃️ADR(Architecture Decision Record)]] - 決定を下したタイミング - ADRのステータス - 決定へと導いた現在の状況、ビジネス上の優先順位 - 決定そのもの(結果何をするのか) - 変更による影響 ### チームは時間と共に改善しているか? - ヘルスチェック - 年に数回行い、その結果を記録することで、チームは時間と共にどんな傾向を示しているかを把握できる - ヘルスチェックの実施方法 - チームメンバーが様々な観点から現状を議論するためのワークショップを実施する - 結果をグラフにしてまとめる - チームの状況を改善するために、データを積極的に活用する - Spotifyモデル(ひどい、どちらでもない、 素晴らしい) - コードをリリースするのは簡単か? - 現在のプロセスは最適なものか? - コードベースの健全性 - チームが届けた価値 - 物事を終わらせる速度 - チームのミッションの明確さ - どれくらい楽しいか? - チームは新しいことを学習しているか? - チームは必要なサポートを得られているのか? - 自分たちは駒なのかプレイヤーなのか? - 四半期ごとでにできると良いだろう。 - 他チームにもやってもらって、比較できると良いだろう。 - 💭[[🗃️SPACE]]的なやつなのかな。 ### 誰に責任があるのか? - 明確なオーナーがいないせいで、大事なことが見落とされることがある。 - Appleでは、この問題に対処するために、直接責任者([[🗃️DRI(Directry Responsible Individuals)]])という概念を使った。 - 💭誰が責任を負うのかは明確にしておくことで、スムーズにコミュニケーションできるケースはありそう。責任者という言葉が強くて、チームには提案し辛い。 章 デュアルラダー