アジャイルの勉強
- #Agile
 - #Scrum
 - #Product Development
 
- 
2018/10/28
 - 
タスクの粒度はなるべく小さくすることを心がける
- タスクの粒度が大きいとやるべきことが埋もれてしまったり、工数の計算が曖昧になってしまうため遅延につながってしまう
 - タスクの粒度を小さくすることでクライアントとの話を詰めることも容易となり作業が明確となる
 - 分割統治法を採用してタスクの粒度を小さくすることで認識齟齬を少なくすることが目的(開発者to開発者 or クライアントto開発者)
 
 - 
棚卸(タスクにする)のときにタスクは何をもって完了なのか、タスクの目的などを簡単に記述しておくことでタスクを振られた人との認識を合わせやすい
- タスクの名称(名詞のみとか)のみであると何をするタスクなのかの認識齟齬が起きやすいため
 
 - 
朝会は重要で、朝会では昨日の行ったタスクの現状、今日行うタスクの現状、昨日のタスクで見つかった問題点の3点を軸として行うと良い
- リーダーは自分の話やプロジェクトの話だけを行うのではなく、メンバーの話を聞く場として行うことが望ましい
 
 - 
朝会、昼会、夕会のどれかは最低行うこと
- チーム内でのミーティングがないとメンバーのだれがどのタスクを行っているかが明確ではなく遅延が発生する場合が多い
 - タスクや作業を共有しておくことで遅延が発生した場合やはまっているときにチームで解決しやすい
 
 - 
個人レベルでのタスクマネジメントを行うことで今日行うタスク、昨日の問題点などの考えをまとめておくことで翌日のタスクマネジメントがしやすくなる
 - 
KPT法(Keep Problem Try)を行ってふりかえりを行うことは重要である
- 頻度は最初のうちは週に1度の頻度で、慣れてきたら2週に1度ほどの頻度が望ましい
 - 月に1度の様な頻度では少なすぎて振り返る内容を忘れてしまう、逆に頻度が多すぎても振り返る内容が少なく時間効率が悪い
 
 - 
タスクの管理は表計算ソフト(Excelの様な)ではなくできるだけ付箋を使用してタスクボードを作成することが望ましい
- 最近はRedMineやJIRAの様なクラウド上で管理できるソフトウェアもあるが慣れないうちは1度で見渡すことのできるタスクボードと付箋が良い
 
 - 
素朴理論とは経験から固めた「経験則」のことで、
- ここから自分で考えた言葉にしていくことでバルブ型理解へと変化する(わかりやすい説明)
 - さらにこれを教育(説明)していくことで原理原則、科学的概念へと変化していく
 
 - 
氷山モデルとは海の外に出ている氷山は一角にしかすぎないことを比喩して表面に出ている部分を「出来事」とするとその下層にパターン、構造、メンタルモデルが隠れているということである
- メンタルモデルとは関係者の理念や世界観のことで認知バイアス(経験や先入観によって無意識のうちに判断や評価をしてしまうこと)がかかわってくるため普段、習慣化されている出来事に対して変革を与えること困難であること
 - そのため1人では解決することが難しく、組織(プロジェクトやチーム)で対話していくことが重要となる
 
 - 
アジャイルな手法(反復開発手法)としてスクラムという開発フレームワークがある
 - 
スクラムではスプリント(繰り返される開発期間のこと)、スプリントランニング(スプリントで何をするのかを決定する計画ミーティング)、デイリースクラム(朝会のようなミーティング)、スプリントレビュー(スプリントの終わりに作成物のレビューしてフィードバックをもらうミーティング)、スプリントレトロスペクティブ(改善をするミーティング)の工程より成り立っている
 - 
プロダクトオーナー(プロダクトの最高責任者)、開発チーム、スクラムマスター(チームが成果を挙げるため支援する)の立場で成り立つ
 - 
プロダクトバックログとは実装するプロダクトの要求、要望、機能の一覧などを記載しているもの
 - 
スプリントバックログとはプロダクトバックログよりスプリントの期間内に行うプロダクトバックログアイテムの一覧
 - 
インクリメントとは動作するプロダクトのこと
 - 
スクラムでは透明性、検査、適応が重要で経験主義な開発手法である
- 早いタイミングで失敗しておくことで改善をしていく考え方
 
 - 
ファシリテートとはミーティング等で発言や参加を促したり合意形成をしたりする能力
 - 
ベロシティとはスプリントの中でチームが開発できる量のこと
 - 
リファインメントとはスプリントの途中でプロダクトバックログをメンテナンスする活動のこと
 - 
スプリントゴールとは簡潔な言葉で何をもってスプリントを完了とするかを決定するものである
 - 
完成の定義とはメンバー全員が共通の認識を持っておかなければならないもの
 - 
受け入れ条件とはこれらを満たしていれば要求を確かに実現していると判断できるリストのこと
- 完成の定義や受け入れ条件を明確にしておくことで進捗のDoingとDone、プロダクトバックログアイテムの完成イメージがつきやすくなるためスプリントランニング(MTG)で認識を合わせておくこと
 
 - 
インセプションデッキとはスプリントを開始する前に作成するものでプロジェクトのWhyやHowを明確にしていく
- チーム全体で作成するもの(リーダーだけが作成するものではない)
 
 
Whyを明らかにする問い
- なぜここにいるのか(プロジェクトのミッションは何か)
 - エレベーターピッチ(プロダクトのニーズ、顧客、差別化ポイントとは何か)
 - パッケージデザイン(ユーザーからみたプロダクトの価値とは何か)
 - やらないことリスト(スコープ)
 - ご近所さんを探せ(チームを取り巻くステークホルダとはだれか)
 
Howを明らかにする問い
- 
技術的な解決策(採用する技術やアーキテクチャは何が考えられるか)
 - 
夜も眠れない問題(不安やリスクには何があるか)
 - 
期間を見極める(必要な開発期間はどれくらいか)
 - 
トレードオフスライダー(ローンチ時期、スコープ、予算、品質はどのような優先順位となるか)
 - 
何がどれだけ必要となるか
 - 
ゴールデンサークルとは中心からWHY, HOW, WHATの順でなっている円のことで通常は一番外のWHATから考え始めてしまうが(簡単なため) しかしWHYから考え始めることでHowの選択肢が多くなるとこ
 - 
WorkAgreementとはチーム内で決めたルールのこと
- チーム内での認識齟齬を少なくするためなるべく具体的な内容をルールとして定めると良い
 - インセプションデッキとは別のものであくまでチーム内での取り決め
 - KPT法などでKeepとして良い習慣としてチームで決まったもの等をWorkAgreementに追加していくことで新規アサインがあった時でもチーム内のルールを把握することが容易となる
 
 - 
成功循環モデルとは関係の質、思考の質、行動の質、結果の質が循環しているということで結果の質だけを求めて行動をしていても他の質の向上も必須であること
- グッドサイクルになることを目指していく(コミュニケーションの必要性)
 
 - 
ドラッガー風マネジメントでは
- 内側の期待 - チームにおける期待
 - 外側の期待 - プロジェクト関係者における期待
 
 
チーム内のメンバーが
- 何が得意なのか
 - どうやって貢献するのか
 - 大切に思う価値観
 - メンバーはどんな期待なのか
 
を中心に話し合っていくことでメンバーへの理解が深まり手戻りが発生しなくなる
- クネビンフレームワークで表現されているようにプロジェクトはシンプル、煩雑、複雑、カオスに分類される
- シンプルとは誰が見ても理解できるので既存のベストプラクティスを適用すればよいもの
 - 煩雑とは専門知識が必要で問題の分析によって計画的なプロジェクト化が可能
 - 複雑とは問題分析だけでは理解は不可能で反復買う動を繰り返す必要があるもの
 - カオスとは対象を理解することすら難しく、常に確認をする必要があるもの
 
 - リファインメントとはプロダクトオーナーだけが行えばい良いものではなく、開発メンバーも取り組む必要があるもの
- スプリントレビューの期間以外でも行われ、スプリントが開始している場合はスプリントゴールに悪影響が出ないようにすること
 - 開始されている場合はすでに合意しているコミットメントが最優先される
 
 - 狩野モデルとは魅力的品質、一元的品質、当たり前品質によってあらわされたグラフで
- 魅力的品質とは充足されれば満足だが不充足でも仕方がないもの
 - 一元的品質とは充足されれば満足、不充足であれば不満を引き起こすもの
 - 当たり前品質とは充足されて当たり前、不充足であれば不満を引き起こすもの
 
 - 向き直りとは進むべき先をとらえて現在と正す方法である
- 振り返りとはアプローチの仕方が逆となる
 - プロジェクトが遅れ気味のときや方向性の確認の際に使用される
 
 - 星取表とはスキルマップのことでメンバーがどのようなスキルを持っているかを見える化する
- 新規アサインがあった場合にタスクを振り分ける際などに使用される
 
 - モブプログラミングとは1台のPCでみんなでコーディングを行うこと
- コミュニケーションの改善とレビューが不要なことによるプロセスフロー改善、学習効果が期待できる
 
 - TWIとはTrainingWithinIndustryのことで職場教育の手法
- JI(JobInstruction)という仕事の教え方が紹介されている(習う準備、作業の説明、やらせてみる、教えた後を見る)
 
 - バリューストリームマッピングはプロダクトの価値がお客様の手に渡るまでの仕事の流れを見える化するためのプラクティスのこと
- プロセスを改善するためだけでなくコミュニケーションの改善にも使用される
 
 - プロセスタイムとは事実上そのプロセスを実行している作業時間のこと
 - リードタイムとはプロセスが次のプロセスに移行するまでの所要時間のこと
 - バリューストリームマッピングではプロセス名、アーキテクチャ、担当や人数、リードタイム、プロセスタイム、ハンズオフ(次工程が同じ担当かどうか)などを記載する
- リードタイム-プロセスタイム=待ち時間と算出できるが待ち時間よりボトルネックとなっている箇所について改善をする
 - また、手戻りが発生している箇所についても改善をする
 
 - ECRSとはEliminate(排除)、Combine(結合)、Rearrange(交換)、Simplify(簡素化)の観点から改善をする手法である
- 排除では必要な業務かどうかを見極め、結合では待ち時間の短縮を図る、交換では順番を変更することで時間の短縮を図ること、簡素化では複雑なタスクを単純化することで効率を上げる
 
 - カンバンとは今やっているフローをステージ化することで仕事の流れを見える化する方法である
- カンバンではReady状態になったプロダクトバックログアイテムが完了になるまでの時間、定期的に完成したプロダクトバックログアイテムの数を計測することでチームの仕事のスピードを可視化でき体感することができる
 
 - ポストモーテムとはプロジェクトの終了後プロジェクトを振り返って行う事後検証のことである
 - タックマンモデルとは形成期(Forming)、混乱期(Storming)、統一期(Norming)、機能期(Performing)の4つの時期に分け、チームの成長過程を表したものである
- チームビルディングをする際にタックマンモデルの統一期になり作業効率が上がるようなグラフである
 
 - リーダーズインテグレーションとはリーダーとメンバーの間の信頼感を醸成するためのワークショップのことである
 - モダンアジャイルとは
- 人々を最高に輝かせる
 - 安全を必須条件にする
 - 高速に実験&学習する
 - 継続的に価値を届ける
 
 
を基本原則に成り立っている
- アジャイルな見積もり、アジャイルな計画づくりとは
- 規模の見積
 - 見積もったストーリーポイントの合計
 - 期間への交換
 - スケジューリング
 
 
の流れで見積もりから計画までを行っていくこと
- 
必要なスプリント数はストーリーポイントの合計÷チームのベロシティで算出できる
 - 
ベロシティとはチームが1スプリントで発揮できる作業量のことである
 - 
プランニングポーカーとは開発メンバーがポーカーの感じでタスクに対して数字のカードを見積もりとして出していき満場一致となった数字がそのタスクの工数となるような見積もりの仕方
- 実際に開発する人が見積もりを行うため正確な結果が出やすい
 - リリース日などを決めておきこれを考慮しながら計画づくりをしていく方法もできる(リリースプランニング)
 
 - 
CCMP(CriticalChainProjectManagement)とは、各タスクには個別のバッファを持たせずに見積もりをして全体のバッファとして見積もりを行って管理する方法である
- 個別にバッファを持つよりバッファの量が減って生産性が上がるがバッファを早いタイミングで使用してしまうと後に大変なことになってしまう→炎上プロジェクト化してしまう危険性
 
 - 
パーキンソンの法則とは仕事の量は完成のために与えられた時間を満たすまで膨張するという法則である
- この法則のため先述のCCMPが有効となるケースがある
 
 - 
SoE(System of Engagement)とは主にエンドユーザーとやり取りをし、関係性を育んでいくようなシステム
 - 
SoR(System of record)とは主に業務遂行を支える側のシステム
 - 
スクラムオブスクラムとは各チームのスクラムマスターの人たちが集まってMTGを行うこと
 - 
コンウェイの法則とはアーキテクチャは組織に従う。組織はアーキテクチャに従う。という法則である
- 小さい開発規模の場合、チームごとに徐々に専門性に特化していくため組織はアーキテクチャに従う
 - 逆に開発の規模が大きくなるとチームごとに役割を分担する場合が多いがそうすると全体を見る機会が減り、アーキテクチャが組織に依存するようになってしまう
 
 - 
デイリーカクテルパーティーとはプロジェクト内のコミュニケーションの経路を繋ぐやり方でチームでの朝会、チームリーダー同士のチームリーダーMTG、プロジェクトリーダー(PL)やプロジェクトマネージャー(PM)などのMTGの様に3層構造になっているMTGのことである
 - 
デザインプロセスではサイトの全体像、スケッチ、ペーパープロトタイピング(スケッチのプロトタイプ化)、ワイヤーフレーム(情報設計)、ビジュアルデザイン(トーンとマナーを守りつつ本番同様のビジュアル要素を決める)、コーディング(HTML,CSS)の様な工程で進んでいく
- 開発チームと共同して開発を行うことが一般的だが機能の開発を先に開発チームに行ってもらってからデザインのコーディングという開発の仕方もあるみたい
 
 - 
ユーザーストーリーではWHO, WHAT, WHYを軸に考えていくと良い
 - 
INVESTとは
- Independent(独立して優先順位が付けられる)
 - Negotiable(何を作るのかの案が調整可能である)
 - Valuable(価値のある)
 - Estimable(見積もり可能である)
 - Small(チームで扱いやすいサイズ)
 - Testable(テストできる)
 
 
のことでユーザーストーリーを評価するために重要である
- ギャレットの5段階とは
- 表面(Surface) 視覚デザイン
 - 骨格(Skelton) インフォメーション・デザイン、ナビゲーション・デザイン、インターフェイス・デザイン
 - 構造(Structure) インフォメーション・アーキテクチャ、インタラクション・デザイン
 - 要件(Scope) コンテンツ要求、機能要件
 - 戦略(Stratrgy) ユーザーニーズ、サイトの目的
 
 
のことでWebをデザインする際にUXを考え構築していく上で重要な考え方・概念のこと
- 
この5段階の根底にある戦略部分から要件を洗い出し、アーキテクチャ、ナビゲーション、視覚デザインの様に設計を行う
 - 
仮説キャンバスとはジョブ理論という顧客はやり遂げたい何かがあり、そのためにプロダクトやサービスを雇用していると考える理論に基づいて目的やビジョン、ソリューションなどをキャンバスに書き出すこと
- 仮説キャンバスと似たようなものにビジネスモデルキャンバスやリーンキャンバスなどがあるがこれらを参考にして自分のキャンバスを作ることが大切である
 
 - 
MVP(MinimumViableProduct)とはユーザーにとって価値があり、かつ最小限の機能を持った製品のことである
- 構築(Build)、計測(Measure)、学び(Learn)のフィードバックループを回しMVPをめざす
 
 - 
ユーザーストーリーマッピングでMVPを決めていく際に重要なのが広さと深さである
 - 
ユーザーインタビューとはユーザーが何を求めているのかや解決したい問題についてインタビューして情報を収集・分析することである
- 準備フェーズ、実施フェーズ、検証フェーズで実行する
 - インタビュー内容を予め考え、確証バイアスが絡まないようにすることが大切
 - もちろんだがインタビューイの年齢層や性別、人数なども重要な要因である
 
 - 
SL理論(SituationalLeadership)とはメンバーは教示的リーダーシップ、説得的リーダーシップ、参加的リーダーシップ、委任的リーダーシップの順で成長していくためリーダーもメンバーとともに成長していくということ
- リーダーもやり方を臨機応変に変えていく必要があるということ
 
 - 
ハンガーフライトとは飛行機の格納庫でのパイロットたちの会話を模したもので自分自身が経験したことを話し、自分が経験していないことを聞くことによって経験値にしていくという考え方
- システム開発の現場で例えると、プロジェクトでの経験を話したり、勉強会を行ってアウトプットしていくことが重要であるということ