10xプログラマー養成所

10xプログラマー養成所

10xプログラマー養成所の目的は10xプログラマーを育てることです

10xプログラマーとは、普通のプログラマーと比べて10倍の生産性をもつプログラマーの事です。 「無駄な機能を付けない」「オリジナリティを出さない」「副作用を減らす」「物理的に早く動く」を守るため、アジャイルDocker関数型プログラミングVimを中心とした10xのための技術をまとめました。

What Why Details
Agile 無駄な機能を付けない - あのExcelですら全体の80%の機能が使われていないそうです。これさえ意識すれば必要な作業量は1/5になります。
- MVP(価値の判定が可能な最小限の成果物)を高速で作ることで、無駄なものを作りません。
Docker オリジナリティを出さない 0からコードを書くよりもすでに出来上がっているOSSのコード、コンテナイメージのほうがよいですね。
Haskell 副作用を減らす 予期しないコードはチームの生産性を落としますが、バグのない理解の早いコードはきちんと動くだけでなく、チームメンバーの生産性をも向上します。
Vim 物理的に早く動く ショートカットキー、キーボードの選定では物理的な操作スピードを向上させてくれます。

これに加えて、私個人が大切にしたいのが二つの「人間」に関する課題

What Why Details
エンジニア心理学 結局は人の問題
エンジニアデザイン心理学 結局は人間の問題 合理的な問題は数学が全て解決する。解決できないことは人の問題

筆者

みねぎしれい

10xプログラマーを目指す25歳エンジニアです。人材業界で働いています。

職歴

  • Cardio Flow Design(2年:アルバイト)
    • 心臓の血流解析を行う企業。2年ほどデスクトップアプリ(C#)の改修、テストを行う
  • ニトリホールディングス(3年:情報システム改革室)
    • ODBC対応 : 保守切れとなる社内のデータベース接続方式を変更する対応。VBA,BV6で書かれた300以上のソースコードを改修する。
    • 商品企画システム(PoC) : 商品企画プロセスを改善する社内のシステムを構築。フロントエンド~バックエンドまで担当
    • その他保守運用 : ニトリネットの保守運用作業
  • 現職(人材業界)
    • 派遣求人自動生成(PoC) : 求人サイトに掲載する文章の自動生成プロジェクトに参加。インフラ~バックエンドを担当
    • 営業Webアプリ(アジャイル) : BtoB営業に使用するアプリの開発に参加。

page:https://minegishirei.hatenablog.com/entry/2023/01/27/193827

スクラムに必要なこと全て

スクラムマスター認定

一日目午前 : スクラムとは?

スクラムとは

小さなチームが新製品を開発する際に、素早くイノベーションを行うこと。

by ジェフ、サザーランド

これらのフレームワークはソフトウェア開発だけでなく、仕事の仕方そのものに影響を与えることができる。

ワーキングアグリーメント

スクラムは、チームビルディングからスタートする。

この時に、ワークショップを行う。

そのうちの一つが、ワーキングアグリーメント

働き方などの決めごとを用意する。

ex)

  • 質問があれば手を上げる : 議論をストップして、耳を傾ける

  • スマホは禁止

  • ディスカッションは全員協力

  • バラバラなチームを作らない。

  • スマホ現金。メール現金

  • 時間厳守

エクササイズ 役割分担

  • POを一人選ぶ

  • AMを一人選ぶ

  • そのほかは複数の開発者

  • 面白くてかっこいいチーム名を決める

スクラムマスター

主な役割:ファシリテーション

  • ディスカッションを遂行し、チームメンバーの意見を引き出す。

  • メンバー全員の参加

    • すべてのメンバーが参加している状態を作る
  • クラスへの共有

    • ディスカッションの結果をクラス全体に発表し、クラス全体の学びを高める

PO

  • 意思決定

    • エクササイズでの優先順位の意思決定
  • メンバー全員の参加

    • すべてのメンバーがバックログアイテムの作成に参加している状況を作る
  • クラスへの共有

開発者

そのほかのメンバーは開発者となる

スプリントとは

スプリントはスクラムにおける⼼臓の⿎動であり、スプリントにおいてアイデアが価値に変わる。

⼀貫性を保つため、スプリントは 1 か⽉以内の決まった⻑さとする。前のスプリントが終わり次第、新しいスプリントが始まる。

スプリントプランニング、デイリースクラム、スプリントレビュー、スプリントレトロスペク

ティブを含む、プロダクトゴールを達成するために必要なすべての作業は、スプリント内で⾏われる。

スプリントでは、

  • スプリントゴールの達成を危険にさらすような変更はしない。

  • 品質を低下させない。

  • プロダクトバックログを必要に応じてリファインメントする。

  • 学習が進むにつれてスコープが明確化され、プロダクトオーナーとの再交渉が必要に

なる場合がある。

スプリントによって、プロダクトゴールに対する進捗の検査と適応が少なくとも 1 か⽉ごとに確実になり、予測可能性が⾼まる。

スプリントの期間が⻑すぎると、スプリントゴールが役に⽴たなくなり、複雑さが増し、リスクが⾼まる可能性がある。

スプリントの期間を短くすれば、より多くの学習サイクルを⽣み出し、コストや労⼒のリスクを短い時間枠に収めることができる。

スプリントは短いプロジェクトと考えることもできる。

進捗の⾒通しを⽴てるために、バーンダウン、バーンアップ、累積フローなど、さまざまなプラクティスが存在する。

これらの有⽤性は証明されているが、経験主義の重要性を置き換えるものではない。

複雑な環境下では、何が起きるかわからない。すでに発⽣したことだけが、将来を⾒据えた意思決定に使⽤できる

定義されたプロセス

伝統的なウォーターフォールプロセスは最初に計画を定義し、減未tにその計画に従って最後まで進める。

このアプローチは、計画からのずれが最小である必要がある。そうでないと、計画は成功しない

しかし、プロジェクト宙に要求が変化する可能性は6%%であり、その結果ウォーターフォールプロジェクトが成功する確率は13%

内訳は以下の通り。

  • 成功率:13%

  • 遅延、予算超過:59%

  • 失敗:28%

これを解決するのが、スクラムであり、ジェフ、サザーランド博士が1993年に開発した。

スクラムは、経験的プロセスに基づいている。

化学工学では、経験的プロセスを用いていた。

ex) 結果がわからない実験を、仮設し、実行するプロセス。

経験的プロセス

予測できない変化が起きるプロセスを制御するには、フィードバックループを導入しなければならない。

経験した結果を検査しそこから学んだことを、次のサイクルの計画へ定期往査せ、変更を加えていく

  • プロダクト開発を繰り返しながら増分を積み上げる方法で作る。

  • 一つ一つの機能は短いサイクルで完成させる。

  • 検査と適応を通じて成功するためには、作業のプロセスを透明化する

スクラムの経験的プロセスとは、透明性、検査、適応の三本柱で成り立っている。

アジャイルは日本企業の働き方から生まれた

日本では新製品を開発するときの手法研究を、野中幾次郎、竹内博隆さんが論文として作成した

  • NASA : 工程ごとに、チームや組織が分かれている。

    • ドキュメントでチームごとに分類されている

    • 他チームの仕事は知らない。

  • 無事ゼロックス

    • 工程の最初と最後が重なり合っている。
  • 本田、キャノン

    • 工程がすべて重なり合っている。

    • 自分の専門性を発揮しつつ、ほかチームの仕事も手伝う。

    • となりのチームが責任を果たせなかったら、自分のチームで責任を追っている。

    • この働き方がスクラムの元

  • 作りすぎのムダ

    • その時点で必王のない物を作る
  • 手持ちの無駄

    • 前工程の部品を待つこと
  • 運搬の無駄

    • 必要以上の移動
  • 加工そのものの無駄

    • 伝統的要素を重要しすぎる

...

アジャイル

アジャイルとは考え方

  • プロセスやツールよりも個人と対話を

  • 包括的なドキュメントよりも動くプロダクトを

  • 契約交渉よりも顧客との協調を

  • 計画に従うよりも変化の対応を

価値とする。

左の部分に価値があると認めながらも、右側のことがらにさらに価値を置く。

ちなみに、アジャイルの語源は「アジャイルな競争相手とバーチャルな組織 - 顧客を豊かにする戦略」からきている。

スクラムとは結局何か?

  • 軽量なフレームワーク

    • リーン に生産するため : 無駄を省き、価値を早く届ける

    • アジャイル の視点からなる : 顧客と強調することで、価値を高くする

デリバリーのフレームワーク

コラム

日本の「トヨタ生産方式」がもとになったにもかかわらず、なぜ日本にスクラムの考え方がないのか?

  • 1950では「トヨタ生産方式」はあった

  • しかし、1980のバブル崩壊で、「業績偏向型」に変わってしまった

  • その結果、分社化が進み、「ソフトウェア」「ハードウェア」等の役割ができる。

  • 最終的には「受発注」の考え方が進み、ウォーターフォールが強くなってしまった。

二日目午後 : スクラムフレームワークの全体像

フラッシュビルドの実装。

フラッシュビルドの実験として、

サングラスを売るお店で、サングラスを選ぶためのiPadアプリを作成する。

「サングラスを選ぶipadアプリ。

機能は決まっていない。

ユーザーストーリーマッピングの構築

行動やプロセスを知る。

ラフなプロトタイプを見せる作業で、捨てたり変更できたりする。

ペーパープロトタイプを作る。

アナログなやり方でも、Ipadアプリと同じものを作る。

エンジニアはペーパープロトタイプを動かして、

フラッシュビルドを行う。

最終的なアイデアは、サングラスを欠けている写真を比較する。

アプリを横向きに固定する。

  • このプロジェクトを確認するポイント

    • プロダクトの価値を高めるために行っていたことは何か?

      • 顧客の近くで開発を行うこと
    • プロダクトをより早く届けるために何をやっていたか?

      • エンジニア、セールス、顧客が同じ場所で開発すること。

スクラムフレームワークのポイント

  • シンプルで明確な目的と原則とは、高度で知的な行動を有無 -> これを、自己組織化と呼ぶ

  • 複雑なルールと規制は単純で愚かな行動を生み出す

スクラムガイドは、10ページ

スクラムの単純なルール

  • 5つの会議

    • スプリントプランニング

    • デイリースクラム

    • スプリントレビュー

    • スプリントレトロスペクティブ

    • バックログリファイメント

  • 3つの役割

    • プロダクトオーナー

    • スクラムマスター

    • 開発者

  • 3つの成果物

The Rule Book という名前で、スクラムのルールを定めている。

- -> これは世界共通

しかし、これはあくまでスクラムのルールであり、実運用はチームによってカスタマイズされており、自己組織化されている必要がある。

また、スクラムフレームワークに戦術を取り入れるため、Scrum Play Bookという名前で作る。

- -> Scrum Play Bookはチームごとにことなる

スクラムMTG

  • プロダクトオーナーから、スタートする

    • 周りの意見から、チームがやるべきリストを作り出す

    • -> プロダクトバックログ

  • プロダクトで最初に何をやるかはスプリントプランニングを作る。

  • スプリント

    • デイリースクラム(1日おき, 15分以下) : 予想外のことが起きたときに、計画を練り直す。問題がなければとくに変化は起きない

    • スプリントレビュー(1週間置き、2時間以下) : デモを動かし、顧客からフィードバックをもらう

    • スプリントレトロスペクティブ(週の終わりにやる):仕事のプロセスについての検査と適応を行う。

    • バックログリファイメント(週の終わりにやる。全体の10%以下) : 次以降のスプリントで行うものを整理してく活動。

  • プロダクトインクリメント

    • 何週間か1回にリリースする。

メンバーの3つの役割

スクラムチームは機能横断型で、各スプリントで価値を⽣み出すために必要なすべてのスキル

を備えている。また、⾃⼰管理型であり、誰が何を、いつ、どのように⾏うかをスクラムチー

ム内で決定する。

スクラムガイドには、プロジェクトマネージャーは出てこない。

その代わり、本来プロジェクトマネージャーが負うべき責任を、3つの役割に分けている。

プロダクトオーナーの役割

プロダクトオーナーは、スクラムチームから⽣み出されるプロダクトの価値を最⼤化すること

の結果に責任を持つ。

いわば、何をに責任を持つ

  • 魅力的なプロダクトビジョンを策定する。

  • プロダクトゴールを策定し、明⽰的に伝える。

  • プロダクトバックログアイテムを作成し、明確に伝える。プロダクトバックログとは、やるべきことの仕事のリスト。

    • プロダクトバックログに透明性があり、⾒える化され、理解されるようにする。
  • プロだ黒バックログを集める。

  • 最後に、顧客に価値を届ける

組織・スクラムチーム・個⼈によって、その⽅法はさまざまである。

プロダクトオーナーは、効果的なプロダクトバックログ管理にも責任を持つ。たとえば、

  • l プロダクトゴールを策定し、明⽰的に伝える。

  • l プロダクトバックログアイテムを作成し、明確に伝える。

  • l プロダクトバックログアイテムを並び替える。

上記の作業は、プロダクトオーナーが⾏うこともできるが、他の⼈に委任することもできる。

いずれの場合も、最終的な責任はプロダクトオーナーが持つ。

プロダクトオーナーをうまく機能させるには、組織全体でプロダクトオーナーの決定を尊重し

なければならない。これらの決定は、プロダクトバックログの内容や並び順、およびスプリン

トレビューでの検査可能なインクリメントによって⾒える化される。

プロダクトオーナーは 1 ⼈の⼈間であり、委員会ではない。プロダクトオーナーは、多くのス

テークホルダーのニーズをプロダクトバックログで表している場合がある。ステークホルダー

がプロダクトバックログを変更したいときは、プロダクトオーナーを説得する。

スクラムマスターの役割

  • 開発、PO、組織のパフォーマンスに責任を持つ

  • イベントが効果的に行われるように、ファシリテーションする

  • 割り込みから防ぐ

  • 作業を見えるかする

  • 障害物となっている者を取り除き、プロセスを改善する

  • 最終的には、プロセスを改善してゴールを達成させる

スクラムマスターは、スクラムガイドで定義されたスクラムを確⽴させることの結果に責任を持つ。

スクラムマスターは、スクラムチームと組織において、スクラムの理論とプラクティスを全員に理解してもらえるよう⽀援することで、その責任を果たす。

スクラムマスターは、スクラムチームの有効性に責任を持つ。スクラムマスターは、スクラム

チームがスクラムフレームワーク内でプラクティスを改善できるようにすることで、その責任

を果たす。

スクラムマスターは、スクラムチームと、より⼤きな組織に奉仕する真のリーダーである。

スクラムマスターは、さまざまな形でスクラムチームを⽀援する。

l ⾃⼰管理型で機能横断型のチームメンバーをコーチする。

l スクラムチームが完成の定義を満たす価値の⾼いインクリメントの作成に集中できる

よう⽀援する。

l スクラムチームの進捗を妨げる障害物を排除するように働きかける。

l すべてのスクラムイベントが開催され、ポジティブで⽣産的であり、タイムボックス

の制限が守られるようにする。

l 効果的なプロダクトゴールの定義とプロダクトバックログ管理の⽅法を探すことを⽀

援する。

l 明確で簡潔なプロダクトバックログアイテムの必要性についてスクラムチームに理解

してもらう。

l 複雑な環境での経験的なプロダクト計画の策定を⽀援する。

l 必要に応じてステークホルダーとのコラボレーションを促進する。

スクラムマスターは、さまざまな形で組織を⽀援する。

l 組織へのスクラムの導⼊を指導・トレーニング・コーチする。

l 組織においてスクラムの実施⽅法を計画・助⾔する。

l 複雑な作業に対する経験的アプローチを社員やステークホルダーに理解・実施しても

らう。

l ステークホルダースクラムチームの間の障壁を取り除く。

スクラムマスターの鍵

  • スクラムガイドの 3-5-3を、実装、死守する

  • パフォーマンスの評価ができるように、チームに見える化をする

  • そのほか、スクラムについてのベストプラクティスについての知識を保持し、必要に応じて適応させる。

  • ファシリテーションをやる

    • ファシリテーターのコツは以下5つ

      • 自分のためではない

      • 質問をたくさんする。考えを引き出し、素晴らしい聞き手になる

      • 素晴らしい聞き手になる

      • イデアをまとめる手助けをする

      • プロセスの外部にいる

それ以外の作業は以下の通り

  • 対立の解決

  • 仕事の無駄の見えるか

  • イベント成果物の集中

POとSMは「絶対に兼任してはいけない」

そもそも、POとSMは目的が異なる。

  • POは「プロダクトの価値」に重きを置く

  • SMは「チームのパフォーマンス」に重きを置く

この二つの目的は対立する場面が多く、一人の人間ではまかなうことができない。

開発者の役割

開発者は「どのように」に責任を持つ

  • プロダクトオーナーが定めた「価値」を、どのように濃き役に届けるインクリメントを作成するかのHOWに責任を持つ

  • 毎日の作業計画を適応させ、そのための障害をデイリースクラムで報告し取り除く

  • 完成の定義を忠実に守り、品質を作りこむ

まとめ:開発者とSMとPOでスクラムチーム

それぞれの役割の責任を果たしつつ、お互いに協力し、チーム一丸となってゴールを達成する

スクラムチームが最小単位。サブチームは存在しない

  • 横断的機能:技術単位のチームではなく、仕事を成し遂げるために必要なすべてのスキルを持っている

  • 自己管理:1スプリントにどれだけの仕事ができるか、どのように進めるかを自分らで決める

  • 協力的:全員が協力し、専門分野外でも対応する

  • 少人数:絶対に10人以下

3つの成果物

プロダクトビジョン

プロダクトビジョンは、プロジェクト、プロd買うと、サービスにおいて、「達成したい将来の状態」を要約したもの

  • 顧客が「なぜ」ひつようとするか、から始める

  • 次に顧客が「なに」を望むかを含める

  • そして常に「だれ」が使うかをかんがる

プロダクトゴール

チームにとっての長期的な目標

プロダクトバックログ

  • プロダクトバックログは、スクラムチームによって成し遂げたい仕事の集まりで、ビジネス価値の順番に並べられている。

  • 誰でも、いつでも、どんなものでもプロダクトバックログに追加できる

  • しかし、最終的にはプロダクトオーナーがプロダクトバックログの優先順位付けを行う。

プロダクトバックログアイテム(PBI)

スクラムチームがやりたいことの「最小単位」

ex)

これは、「技術的な側面」ではなく 「顧客にとっての価値、機能単位」である必要がある。

これらのPBIを探すためには、「直接顧客とはなして、必要な機能をリストアップする」ということが大事である。

ユーザーストーリーマッピング

  • 大きな粒度のバックログアイテムを上に、階層的に分割されたバックログアイテムを下に並べていく

  • 顧客の行動の流れに沿って左から右へ示す

  • 縦に1列並べるより、2次元の氷河理解しやすい

  • プロダクトの全体像を把握することができる

  • MVPを決めるためのよいツールとなる

  • 大きなフィーチャーや、全社的構想にも使用できる

ユーザーストーリーマッピングの、テンプレートはこれ

「役割」として「行動」がしたい。

それは「ビジネス価値」のためだ。

スクラムの仕組み

スプリント

  • 目的:スプリント終了時に、顧客やステークホルダーに提供することができる、価値があり達成可能な目標にコミットする。

イベント中に、その成果を達成するために必要な特定のバックログアイテムを選択する。

推奨されるタイムボックスは、スプリントの長さが1週間あたり最大2時間。

  • 注意:スプリントプランニングのすべての時間がバックログリファイメントに費やされると、ゆっくりとした非生産的なミーティングになる。

ミーティングの前にできる限りバックログアイテムの内容を明確にして、チームが優先順位付けに集中できるようにし、仕事をどのように終わらせるかを考えられるようにしておく。

  • 必要なもの

    • 過去のベロシティーのデータ

    • 次スプリントのメンバーの稼働率

    • スプリントゴールに対するプロダクトオーナーからの提案

    • 改善:前回のレトロスペクティブで特定された継続的改善のバックログアイテム

    • リファイメントと見積もりされたバックログアイテム

  • 成果物

    • 数プリントバックログ

    • スプリントゴールを達成するための計画

    • チームのコミットメント

  • プロセス

    1. 過去のベロシティとチームメンバーの稼働率からチームのキャパシティを産出する

    2. POはゴールの候補を提案する

    3. スプリントバックログに、改善とスプリントゴールを達成するために必要なリファインメントされたプロダクトバックログアイテムを入れる

    4. スプリントゴールを達成するために、どのように作業を進めるかの計画を作成する。

    5. あらためて、今スプリントのゴールを決める。

スプリントプランニング

スプリントプランニングはスプリントの起点であり、ここではスプリントで実⾏する作業の計画を⽴てる。

結果としてできる計画は、スクラムチーム全体の共同作業によって作成される。

プロダクトオーナーは参加者に対して、最も重要なプロダクトバックログアイテムと、それらとプロダクトゴールとの関連性について話し合う準備ができているかを確認する。

スクラムチームは、アドバイスをもらうためにチーム以外の⼈をスプリントプランニングに招待してもよい。

スプリントプランニングでは、次の3つの問いに応えられるようにしておく必要がある。

  1. トピック 1:このスプリントはなぜ価値があるのか? : スプリントゴール

プロダクトオーナーは、プロダクトの価値と有⽤性を今回のスプリントでどのように⾼めることができるかを提案する。

次に、スクラムチーム全体が協⼒して、そのスプリントになぜ価値があるかをステークホルダーに伝えるスプリントゴールを定義する。

スプリントゴールは、スプリントプランニングの終了までに確定する必要がある。

  1. トピック 2:このスプリントで何ができるのか? : どれくらいできるのか? : 稼働時間と能力

開発者は、プロダクトオーナーとの話し合いを通じて、プロダクトバックログからアイテムを

選択し、今回のスプリントに含める。スクラムチームは、このプロセスの中でプロダクトバッ

クログアイテムのリファインメントをする場合がある。それによって、チームの理解と⾃信が

⾼まる。

デイリースクラム

バックログリファイメント

スプリントプランニングで、PBIの内、「準備完了」となるものを1~3スプリント分用意する

  • POとの会話を通じて、これから着手するPBIのコンテキストを明確にする

  • PBIのスプリント内で完成できるサイズに分解し、必要に応じて並び替えを行う

リファイメントとは「洗礼させる」という意味

1. ユーザーストーリーマッピング(PBI)のエピックを分割する

エピックは、長編物語、大きなストーリのこと

次のPBIは「エピック」と呼ばれる単位「マイレージ会員として、航空券の予約を自分向けにカスタマイズしたい。なぜなら時間の節約になるから」

-> これを、分割すること

  • マイレージ会員として、マイルを使って予約したい。節約できるから

  • マイレージ会員として、よく使う路線を簡単に予約したい。なぜなら時間の節約になるから

  • プレミアムマイレージ会員として、ラウンジを予約した。ゴージャスな生活がしたいから

2. 優先順位をつける

ユーザーストーリーマッピングから分割した後、

3. READYなPBI

INVEST

  • I Immediately 直ちに着手できる

  • N Negotiable 交渉できる

  • V Valuable 価値がある

  • E Estimateable 見積もれる

  • S Small 小さい

  • T Testable テスト可能である。

Testable : 受け入れ時要件の作成

バックログアイテムがテスト可能であるためには、完成の基準が必要である。

PIBの条件としては受け入れ条件を定義する

メリットとしては以下の通り。

  1. テスト駆動開発を促進する

  2. 過剰品質を避け、必要十分な機能性を実現する

  • title

    • 【運用者】従業員情報csvファイルアップロード状況を一覧で確認できる
  • <ストーリーポイント>

    • 3
  • <理由>

    • お客様がまとめて福利厚生サービスを契約した後、csvをアップロードしなければ契約状況を管理するサービスとならない
  • <受け入れ条件>

    • 画像イメージは添付資料のまとめで福利厚生従業員登録情報の通りであること

スプリントレビュー

スプリントレトロスペクティブ

スクラムチームは作業の品質と有効性を高めるためにプロセスを検査する。

レビューでは、デモなどを行いフィードバックを得るのが目的であり、POが主役である。

しかし、スプリントレトロスペクティブではSMが主役となり、生産性向上のためにできることを探す場となる。

  • スクラムチームは、もっと良くなるために次のスプリントで試してみる一つの改善を特定する。

  • スクラムチームの長期的な視点でのパフォーマンスのために最も重要なイベント

  • このイベントの効果的なファシリテートは、スクラムマスターの最優先事項 : なぜなら、チームの生産性の向上に責任を持つのはスクラムマスターの優先事項だから

スプリントレトロスペクティブでは、正しい進め方はない。

ネットでも多くの手法がある(KPTなど)

共通しているのは以下の通り

  1. 場を設定する

  2. データを集める

  3. イデアを出す

  4. 次に何をすべきかを決める

一例 :

  1. タイムライン : 今週のスプリントで何が行われたのか?

  2. 次のスプリントでは、どこを違うようにやってみるか?

    • スプリント レトロスペクティブで出てきた改善点は、必ず優先事項の一番上に追加すること*
  3. 幸福指標を図る。

    • 自分のパフォーマンスを1~5で表明する。

      • あなたの役割についてどう感じるか?

      • チームについてどう感じるか?

      • 会社についてどう感じるか?

      • もっと良い感じになるにはどうすればよいか?

    • 内発的なモチベーションを促すことで、仕事の効率をあげることができる。

    • 外発的なモチベーションは、お金や権力や地位のことであるが、持続性は低い。

    • スクラムマスターにとって、チームの幸福指標は、パフォーマンスの先行指標 である。幸福指標をみれば、チームに何が起きているかわかる。

プロダクトインクリメント

スクラムパターン

スクラムマスターが取り入れることができる、ベストプラクティスがスクラムパターン。

あくまでベストプラクティスなので、取り入れるかどうかは自由。

1. どのように始めるのか

Readyのバックログ

2. 安定したチーム

チームメンバーのパフォーマンスを安定させるためには、以下の二つを意識すること

  • 専任のチーム。可能な限り「兼任」は割けること。この割合を「専従率」と読んでいる。

  • 少人数のチーム。チームの人数は2,3人から6人まで下がるが、10人以上で爆発的に上がる。

    • これは、コミュニケーションのパスが指数関数的にあがるからである。

    • n人の人数であれば、(n-1)+(n-2)+(n-3)+...+3+2+1である。

    • また、新規参入者を追加すれば、人数分のコミュニケーションコストがかかる

3. 昨日の天気

スプリントが完了した後、スクラムマスターは直近のベロシティだけを計測するべきではない。

可能であれば、「直近3スプリント分の平均」を設定するべきである。

また、外部からの期待値をそのまま受け入れて、その通りにPBIを追加してしまうと自分でハードルを上げてしまうことになる。

基本的には「直近3スプリント分の平均」で対応するべきである。

4. スウォーミング

タスクは集中するべし。

同時に複数のサービス調査するべきでないし、同時に複数の昨日の実装をするべきではない。

※スウォーミングとは、「ソフトウェア開発の文脈では,一つのタスクや開発トピックにチームの全員 (全員ではなくても,多人数) で取り組むことを指します.」

スウォーミングのメリットとして、

  • 知識の共有をおこない、属人かを防ぐ。

それぞれのメンバーが別々の開発アイテムを勧めていると、知識の共有化ができない、その人間の能力がボトルネックになる

タスクの切り替えの発生による、切り替えのムダ、待ちのムダを防止することができます。

  • 課題解決までのリードタイムを短縮する

ソフトウェア開発は課題にぶつかることの連続であり、誰かが知っているということは多いので、わからない→迷う→調べる→悩む→相談する という長いリードタイムよりも、その場に知っている人間が全員揃っていれば、チームの最大速度でアイテムを消化することができます。

5. 割り込みのパターン

予期せぬ事態。計画できない仕事のことを「割り込み」と呼んでいる。

スプリントでは、1週間で計画を建てて実行するため、この「割り込み」は致命的になる。

この「割り込み」が発生するときの対策としては 「割り込みが発生することを見越して、空のバックログを作っておく」 のがよい

名前は「Buffer」と呼ぶ。

割り込みの予測の方法は「過去に発生した割り込み」の平均を出す。

-> POはチームがやることの優先順位をつける責任をもつため、割り込みが発生しそうになった時に優先順位をつけるのは「POがやる」

6. スクラム緊急手術

スプリントの途中で、スプリントが失敗するのが明らかになったとき

  1. 工夫 : まずは何か違うやり方がないか、チームの作業方法を更新sるう

  2. 肩代わり : 他のチームで対応することができないか

  3. スコープを減らす : プロダクトオーナーと協力してスプリントバックログのスコープを削減する。

  4. スプリントを中止して再計画する

7. ハウスキーピング

欠陥のないプロダクトを作るスクラムパターンが「ハウスキーピング」

バグを直す最高のタイミングは「発見したとき」である。

  • 現在のスプリントでの欠陥は:直すだけである。再見積もりはしない

  • 過去のバグの欠陥の修正は :POに確認し、チームが労力を言見積もる