アジャイルサムライ
目次
原則
・2週間ã«ï¼‘å›žæˆæžœã‚’出ã™ã€‚
(テスト済ã¿ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã‚’ç´å“ã™ã‚‹)
進æ—å ±å‘Šã€é¡§å®¢æº€è¶³å‘上ã€è¦ä»¶å®šç¾©ã®å†ç¢ºèªã€ã¾ãŸã¯ãã®ä¿®æ£ã‚’促ã™åŠ¹æžœãŒã‚る。
ãƒ»æš—é»™çš„ãªæœŸå¾…â‡’æ˜Žç¤ºçš„ãªæœŸå¾…ã«å¤‰æ›ã—ãªã‘れã°ãªã‚‰ãªã„。
3ã¤ã®çœŸå®Ÿ
(1)プãƒã‚¸ã‚§ã‚¯ãƒˆã®é–‹å§‹æ™‚点ã§è¦æ±‚ãŒæƒã†äº‹ã¯ãªã„。
(2)プãƒã‚¸ã‚§ã‚¯ãƒˆã®é€”ä¸ã§è¦æ±‚ãŒå¤‰ã‚らãªã„事ã¯ãªã„。
(3)ã‚„ã‚‹ã¹ã事ã¯ä¸Žãˆã‚‰ã‚ŒãŸäºˆç®—・時間よりも必ãšå¤šã„。
アジャイル開発ã«é©ã—ãŸãƒãƒ¼ãƒ ・メンãƒãƒ¼
・権é™ã€å½¹å‰²ã‚’ãƒãƒ¼ãƒ ãŒæŒã¤ã€‚個人ã§ã¯ãªã„。
・顧客ãŒå”力的
・メンãƒãƒ¼ã¨é »ç¹ã«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãŒå–れる
・メンãƒãƒ¼ãŒã‚¸ã‚§ãƒãƒ©ãƒªã‚¹ãƒˆã§ã‚る事
メンãƒãƒ¼ã‚’ãƒã‚¹ã«ä¹—ã›ã‚‹(プãƒã‚¸ã‚§ã‚¯ãƒˆé–‹å§‹æ™‚点)
・最åˆãŒè‚心。
最åˆãŒãƒ€ãƒ¡ã§é€”ä¸ã‹ã‚‰ä¸Šæ‰‹ã行ã事ã¯ãªã„。
・顧客をå«ã‚ã¦èªè˜ã‚’共通化ã™ã‚‹ã€‚
・インセプションデッã‚を作æˆã™ã‚‹(以下をメンãƒãƒ¼ãŒèª¬æ˜Žã§ãる様ã«ã™ã‚‹)
 ・目的ã¯ï¼ŸæœŸé–“ã¯ï¼Ÿ
 ・エレベーターピッãƒ
  30秒以内ã«ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã®ç›®çš„を説明ã™ã‚‹ï¼Ÿ
 ・パッケージデザイン
  雑誌ã®1Pã«åºƒå‘Šã‚’載ã›ã‚‹ã¨ä»®å®šã—ã¦ç°¡æ½”ã«åŠ¹æžœçš„ã«ãƒ¡ãƒªãƒƒãƒˆã‚’æç¤ºã™ã‚‹
 ・やらãªã„事リスト
 ・å•題点ã€è§£æ±ºç–
 ・何を諦ã‚ã‚‹ã‹ï¼Ÿ
 ・何ãŒå¿…è¦ã‹ï¼Ÿ
やる事ã€ã‚„らãªã„事ã€å¾Œã§æ±ºã‚る事ã€ç¾åœ¨ã®èª²é¡Œç‰ã‚’顧客をå«ã‚ãŸãƒ¡ãƒ³ãƒãƒ¼ã¨è©±ã—åˆã£ãŸå¾Œã€
・予算
・期日
・スコープ(開発範囲)
ã„ãšã‚Œã‹ã‚’変更ã—ãªã‘れã°ãªã‚‰ãªã„時。
多ãã®å ´åˆå‰Šã‚‹ã®ã¯ã‚¹ã‚³ãƒ¼ãƒ—
やる事⇒やらãªã„事
ã¸å¤‰æ›´ã™ã‚‹ã€‚
ユーザーストーリーを作る
è¦ä»¶å®šç¾©æ›¸ã®ä»£ã‚りã«INVESTãªãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¹ãƒˆãƒ¼ãƒªãƒ¼ã‚’作る。
Independent(機能ãŒç‹¬ç«‹ã—ã¦ã„ã‚‹)
Negotiable(交渉ã§ãã‚‹)
Valuable(顧客ã«å–ã£ã¦ä¾¡å€¤ãŒã‚ã‚‹)
Estimatable(見ç©ã‚‚れる)
Small(å°ã•ã„)
Testable(テストã§ãã‚‹)
å°ã•ãã€é¡§å®¢ã«å–ã£ã¦ã®æ©Ÿèƒ½ã”ã¨ã«ã€ã‚«ãƒ¼ãƒ‰ã«æ›¸ã出ã™ã€‚
顧客ã®è¦æ±‚ã‚’ç´ æ—©ãçŸã書ã出ã™äº‹ãŒç›®çš„。
è¦ä»¶å®šç¾©æ›¸ã®æ§˜ã«ä½œæˆã™ã‚‹äº‹ãŒç›®çš„ã«ãªã‚Šã€ãã‚Œã«æ™‚間を掛ã‘ã¦ã¯ã„ã‘ãªã„。
ã‚ãã¾ã§é¡§å®¢ã®è¦æ±‚ã¯å¤‰ã‚り続ã‘ã‚‹äº‹ã‚’å‰æã«ã™ã‚‹äº‹ã€‚
見ç©ã‚‚り
見ç©ã‚‚りã¯ç´„æŸã§ã¯ãªãã€
極ã‚ã¦æ¥½è¦³çš„ã§å½“ã¦ãšã£ã½ã†ãªç›®æ¨™ã§ã—ã‹ãªã„事を顧客ã«ã‚‚ç†è§£ã—ã¦ã‚‚らã†ã€‚
見ç©ã‚‚りã®åŽŸå‰‡
・相対サイズã§
例
①クッã‚ー1枚食ã¹ã‚‹ã®ã«ï¼‘分掛ã‹ã‚‹ã€‚
â‘¡ã§ã¯ï¼‘ï¼æžšé£Ÿã¹ã‚‹ã®ã«ã¯ï¼‘ï¼åˆ†æŽ›ã‹ã‚‹ã€‚
ã“ã®æ™‚ã€â‘¡ã®å·¥æ•°ã¯ç›¸å¯¾çš„ã«æ£ç¢ºã«è¦‹ç©ã‚‚れる。
ãƒ»çµ¶å¯¾ã‚µã‚¤ã‚ºã®æ©Ÿèƒ½ã¯ã€ç›¸å¯¾æ¸¬å®šå¯èƒ½ãªæ©Ÿèƒ½ã«ã¾ã§ç´°ã‹ã分割ã™ã‚‹
※ãªãŠã€â‘ ã®å·¥æ•°ã‚’æ£ç¢ºã«ç®—出ã™ã‚‹ä½œæ¥ã‚‚å¿…è¦
・ãƒã‚¤ãƒ³ãƒˆã‚’使用ã™ã‚‹
 例:数å—以外ã®å…¥åŠ›ã‚’èªã‚ãªã„ãƒã‚§ãƒƒã‚¯æ©Ÿèƒ½ã®è¿½åŠ ã«0.5人日⇒5pt
・日数を使用ã™ã‚‹å ´åˆã¯æ—¥â‡’ç†æƒ³æ—¥ã¨ç½®ãæ›ãˆã‚‹
プãƒã‚¸ã‚§ã‚¯ãƒˆãŒé–‹å§‹ã•れã€é–‹ç™ºé€Ÿåº¦ã‚’計測ã§ãる様ã«ãªã‚‹ã¨è¦‹ç©ã‚‚りを修æ£ã™ã‚‹äº‹
 例:数å—以外ã®å…¥åŠ›ã‚’èªã‚ãªã„ãƒã‚§ãƒƒã‚¯æ©Ÿèƒ½ã®è¿½åŠ ï¼š5pt⇒7pt
計画
・(繰り返ã—ã«ãªã‚‹ãŒ)スコープを柔軟ã«ã€æœŸæ—¥ã¯ã¾ã ç´„æŸã§ã¯ãªã„(ç¾æ™‚点ã§å½“ã¦ãšã£ã½ã†ã ã‹ã‚‰)事を顧客ã«èªã‚ã•ã›ã‚‹ã€‚
ãƒ»ä¸€èˆ¬ã«æ©Ÿèƒ½ã®50%ã¯ä½¿ã‚れã¦ã„ãªã„事実を念é ã«ãŠã„ã¦ã€ã‚¹ãƒˆãƒ¼ãƒªãƒ¼ãƒªã‚¹ãƒˆã«å„ªå…ˆé †ä½ã‚’付ã‘る。
・ベãƒã‚·ãƒ†ã‚£(ãƒãƒ¼ãƒ ã®é–‹ç™ºé€Ÿåº¦)を仮決ã‚ã™ã‚‹(当ã¦ãšã£ã½ã†)
・仮決ã‚ã—ãŸãƒ™ãƒã‚·ãƒ†ã‚£ã‚’å…ƒã«æœŸæ—¥ã‚’仮決ã‚ã™ã‚‹(当ã¦ãšã£ã½ã†Ã—2)
・ãƒãƒ¼ãƒ³ãƒ€ã‚¦ãƒ³ãƒãƒ£ãƒ¼ãƒˆã‚’作æˆã™ã‚‹
※開発開始å‰ã€‚ベãƒã‚·ãƒ†ã‚£ã¯å½“ã¦ãšã£ã½ã†ã§æœŸæ—¥ã‚‚仮。
※ベãƒã‚·ãƒ†ã‚£ã¯äºˆæƒ³ã‚ˆã‚Šé…ãã“ã®ã¾ã¾ã§ã¯æœŸæ—¥ã«é–“ã«åˆã‚ãªã„ã®ã§ã€
イテレーションを削除ã—ã¦ã‚‚らã†ã€‚
â€»ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ ã—ãŸäº‹ã«ã‚ˆã‚Šäºˆå®šã®æœŸæ—¥ã«çµ‚ã‚らãªã„事ãŒç¢ºå®Ÿã«ã€‚
期日を延ã°ã™ã‹ï¼Ÿ イテレーションを削除ã™ã‚‹ã‹ï¼Ÿã‚’決ã‚ã‚‹å¿…è¦ãŒã‚る。
ã“れらを全ã¦é¡§å®¢ã¨æƒ…å ±å…±æœ‰ã™ã‚‹äº‹ã€‚
(ベãƒã‚·ãƒ†ã‚£ãŒé…ã„ã®ã¯æ€ æ…¢ã§ãªã開発å´ãŒæ‚ªã„訳ã§ã¯ãªã„事をç†è§£ã—ã¦ã‚‚らã†)
イテレーションã¯ãƒãƒ¼ãƒ ãŒè²¬ä»»ã‚’æŒã¤äº‹ã€‚
(誰ã‹å€‹äººãŒæ‚ªã„訳ã§ã¯ãªã„ã€‚è¦‹æ „ã‚‚éš ã—ç«‹ã¦ã‚‚ã™ã‚‹å¿…è¦ã¯ãªã„)
ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ ã›ã–ã‚‹ã‚’å¾—ãªã„状æ³ã«ãªã£ãŸã®ã‚‚誰ã‹ãŒæ‚ªã„訳ã§ã¯ãªã„。
顧客ã€é–‹ç™ºå´ã€çš†ã§å•題ã«å½“ãŸã‚‹ã€‚
ãã®çµæžœã€è¨ˆç”»ã¯ç¾å®Ÿçš„ãªäºˆå®šè¡¨ã¨ãªã‚‹ã€‚
プãƒã‚¸ã‚§ã‚¯ãƒˆé‹å–¶
(å†)è¦ä»¶å®šç¾©
・開発直å‰ã«è¦ä»¶å®šç¾©ãƒ»åˆ†æžã‚’行ã†ã€‚
(æ•°ã‹æœˆå‰ã«ã‚„ã‚‹ã¨è¦ä»¶ãŒå¤‰ã‚る。下手ã™ã‚‹ã¨ãªããªã‚‹ã€‚ã¾ãŸãれを忘れる)
・↑ã®éš›ã«ã¯ãƒšãƒ¼ãƒ‘ープãƒãƒˆã‚¿ã‚¤ãƒ—ã§ãƒ‡ã‚¶ã‚¤ãƒ³ã€‚é¡§å®¢ã¨æƒ…å ±å…±æœ‰ã€‚
・フãƒãƒ¼ãƒãƒ£ãƒ¼ãƒˆä½œæˆ(開発å´è¦–点)
・ペルソナ作æˆ(ã‚·ã‚¹ãƒ†ãƒ ã®æ“¬äººåŒ–)
・å—ã‘入れテスト作æˆ(顧客ã¨ä¸€ç·’ã«)
開発
・イテレーションゼãƒ(CI環境構築)
・ペアプãƒã‚°ãƒ©ãƒŸãƒ³ã‚°
・å—ã‘入れテスト(テストãŒè‡ªå‹•化ã•れã¦ã„ã¦ã‚‚)
・カンãƒãƒ³(åŒæ™‚ã«ä»•掛れる数ã®ä¸Šé™ã‚’決ã‚ã¦ãŠã)
コミュニケーション
今回ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã«å‚™ãˆã‚‹
今回ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®ãƒ•ィードãƒãƒƒã‚¯ã‚’å¾—ã‚‹
次回ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®è¨ˆç”»ã‚’ç«‹ã¦ã‚‹
次回ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§æ”¹å–„ã§ãる余地を探ã™
見ãˆã‚‹åŒ–
å‰è¿°ã—ãŸã‚‚ã®ã‚‚å«ã‚ã€ä»¥ä¸‹ã®æ§˜ãªã‚‚ã®ã‚’å£ã«å¼µã‚Šå‡ºã—ã¦ãŠã事ã§ã€
仕様(è¦ä»¶)ã®ç†è§£ã€ä»•様をç†è§£ã—ãŸä¸Šã§ã®é–‹ç™ºã€å…¨ä½“ã®ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’ç†è§£ã—ãŸä¸Šã§ã®ç¾ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ç‚ºã™ã¹ã事ç‰ãŒå¸¸ã«åˆ†ã‹ã£ãŸä¸Šã§é–‹ç™ºã‚’進ã‚られる。
当然上å¸ã‚„顧客ã«ã™ãã«èª¬æ˜Žã§ãã‚‹ã—ã€æ€¥ãªä»•事ãŒå‰²ã‚Šè¾¼ã‚“ã§ããŸæ™‚ã®å½±éŸ¿ç‰ã‚‚分ã‹ã‚‹ã€‚
・インセプションデッã‚
・リリースボード
・ストーリーボード
・ãƒãƒ¼ãƒ³ãƒ€ã‚¦ãƒ³ãƒãƒ£ãƒ¼ãƒˆ
・ãƒãƒ¼ãƒ ã®ç´„æŸäº‹ã€å¤§åˆ‡ã«ã—ã¦ã„る事
プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°
CIツールを用ã„ã¦ä»¥ä¸‹ã‚’行ã†ã€‚
・ユニットテストã®è‡ªå‹•化
・リファクタリング
 リファクタリングã¯å°ã¾ã‚ã«ã€‚
 大ãŒã‹ã‚Šãªãƒªãƒ•ァクタリングã¯ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³åŒ–ã™ã‚‹ã€‚
・テスト駆動開発
 (テストファースト)
 テストコード記述⇒コーディング⇒テスト⇒リファクタリング⇒テスト ã‚’1セットã¨ã™ã‚‹ã€‚
・継続的インテグレーション
 CIツールを用ã„ã¦ã€ã‚½ãƒ¼ã‚¹ç®¡ç†ã€ãƒ“ルドã€ãƒ†ã‚¹ãƒˆã‚’自動化ã™ã‚‹ã€‚
 「常ã€ã«ã€ã€Œã™ãã€ã«ã€ãƒªãƒªãƒ¼ã‚¹ã§ãる状態ã«ã—ã¦ãŠã為ã«ã€‚
 開発環境ã§å‹•作ã—ãŸã‚‚ã®ã‚’é¡§å®¢ã«æ¸¡ã™ã®ã§ã¯ãªãã€
ã€€é¡§å®¢ã«æ¸¡ã•れãŸã‚‚ã®ã‚’変更ã™ã‚‹ã€ã¨ã„ã†æ„è˜ã§é–‹ç™ºã‚’行ã†äº‹ã§ã€
ã€€è¦æ±‚ãŒæº€ãŸã•れãŸã€ãƒã‚°ã®ãªã„(テスト済ã¿ã®)ソフトウェアã«ãªã‚‹ã€‚
 (「継続的インテグレーションã€å‚ç…§)
アジャイルサムライ用語解説
・マスターストーリーリスト
 ï¼ã‚¹ã‚¯ãƒ©ãƒ 開発ã«ãŠã‘るプãƒãƒ€ã‚¯ãƒˆãƒãƒƒã‚¯ãƒã‚°
・ユーザーストーリー
 ï¼ãƒ•ィーãƒãƒ£
・フィーãƒãƒ£
 ï¼ãƒ¦ãƒ¼ã‚¶ãƒ¼è¦–点ã§ã®æ©Ÿèƒ½
 ≒スクラム開発ã«ãŠã‘ã‚‹ãƒãƒƒã‚¯ãƒã‚°
・イテレーション
 ï¼ãƒ•ィーãƒãƒ£æ¯Žã®é–‹ç™ºã‚µã‚¤ã‚¯ãƒ«(è¨è¨ˆï½žé–‹ç™ºï½žãƒ†ã‚¹ãƒˆï½žç´å“)
ã€€ï¼‘ï½žï¼’é€±é–“ãŒæœ›ã¾ã—ã„。
 ãれより大ãããªã‚‹ã¨åˆ†å‰²ã—ã¦åˆ¥ã®ãƒ•ィーãƒãƒ£ã¨ã™ã‚‹
・ベãƒã‚·ãƒ†ã‚£
 ï¼ãƒãƒ¼ãƒ ã®é–‹ç™ºé€Ÿåº¦
・インセプションデッã‚
・ãƒãƒ¼ãƒ³ãƒ€ã‚¦ãƒ³ãƒãƒ£ãƒ¼ãƒˆ
・スクラム開発
 デイリースクラム/ ãƒãƒƒã‚¯ãƒã‚° / プãƒãƒ€ã‚¯ãƒˆãƒãƒƒã‚¯ãƒã‚° / スプリントãƒãƒƒã‚¯ãƒã‚°
・エクストリーム・プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°