Slide 1

Slide 1 text

© 2022 ESM, Inc. Scrum Fest Osaka 2022 アジャイル開発の中の設計 1 2022年06月18日 株式会社永和システムマネジメント Agile Studio 岡本 卓也

Slide 2

Slide 2 text

© 2022 ESM, Inc. 「設計」は好きですか?
 2

Slide 3

Slide 3 text

© 2022 ESM, Inc. 今日のゴール 「設計」を好きになってもらいたい
 3

Slide 4

Slide 4 text

© 2022 ESM, Inc. まえおき
 4

Slide 5

Slide 5 text

© 2022 ESM, Inc. 自己紹介 Agile Studioエンジニア
 日々是 Agile/Scrum
 Agileに憧れて転職
 元はWFガチ勢
 5

Slide 6

Slide 6 text

© 2022 ESM, Inc. WF時代の仕事(1997~2017) 大企業型ソフト開発
 キャリアネットワーク製品開発
 エンジニア&マネージャ
 6

Slide 7

Slide 7 text

© 2022 ESM, Inc. アングルをつけて眺めてみる 7 WF
 Agile
 コアが見えてくる、かも
 設計


Slide 8

Slide 8 text

© 2022 ESM, Inc. 想定している対象者 ● WFからAgileに移行(する|している|した)
 ● Agileネイティブ
 ● 「設計」と聞くと感情が乱れる人
 8

Slide 9

Slide 9 text

© 2022 ESM, Inc. 最近、スプリントレビューで困った事 1. 何を説明すればいいの?
 2. どうなってたらOKと言ってもらえる?
 3. そういうのっていつ決めるの?
 9 もしかして設計?


Slide 10

Slide 10 text

© 2022 ESM, Inc. 設計とは何か ソフトウェアのための問題解決と計画の工程である。
 
 ソフトウェアの目的と仕様が決定した後で
 ソフトウェア開発者が設計をしたり
 専門の設計者が開発計画を立てる。
 
 細かいコンポーネントやアルゴリズムの実装だけではなく
 アーキテクチャ的観点での検討も行われる。
 10 ソフトウェア設計


Slide 11

Slide 11 text

© 2022 ESM, Inc. いつやる?
 誰がやる?
 何をやる?
 なぜやる?
 11 知りたいこと

Slide 12

Slide 12 text

© 2022 ESM, Inc. 本編
 12

Slide 13

Slide 13 text

© 2022 ESM, Inc. いつやる?
 誰がやる?
 何をやる?
 なぜやる?
 13

Slide 14

Slide 14 text

© 2022 ESM, Inc. スクラムの開発サイクル 14 1.スプリントプランニング 
 2.デイリースクラム
 3.リファインメント
 4. スプリントレビュー 
 5. ふりかえり
 プロダクトバックログ 
 スプリントバックログ 
 製品
 リリース


Slide 15

Slide 15 text

© 2022 ESM, Inc. ソフト開発のサイクル(WF脳) 15

Slide 16

Slide 16 text

© 2022 ESM, Inc. 並べてみる 16

Slide 17

Slide 17 text

© 2022 ESM, Inc. 私たちの開発でやっていること 17 設計はどこへ行った? 


Slide 18

Slide 18 text

© 2022 ESM, Inc. 設計ってなんだっけ? 18 要求分析
 ユーザがやりたいことを整理・発見する 
 要件定義
 ユーザがやりたいことを達成するために、システムがやるべきことを決める 
 仕様検討
 システムがやるべきことを、客観的・具体的・定量的に定義する 
 設計
 システムがやるべきことを、どうやって実現するかを決める 


Slide 19

Slide 19 text

© 2022 ESM, Inc. こうあるべきなのか? 19 1.スプリントプランニング 
 2.デイリースクラム
 3.リファインメント
 4. スプリントレビュー 
 5. ふりかえり
 プロダクトバックログ 
 スプリントバックログ 
 製品
 リリース
 要求分析
 仕様検討
 設計
 要件定義


Slide 20

Slide 20 text

© 2022 ESM, Inc. スクラムの開発サイクル 20 1.スプリントプランニング 
 2.デイリースクラム
 3.リファインメント
 4. スプリントレビュー 
 5. ふりかえり
 プロダクトバックログ 
 スプリントバックログ 
 製品
 リリース
 仕様検討
 設計
 コーディング
 単体テスト
 結合テスト
 要求分析
 要件定義
 受入テスト
 スプリント忙しすぎ


Slide 21

Slide 21 text

© 2022 ESM, Inc. スプリント短い問題 21 1週間に複数のタスクを消化 
 設計をやっている時間がない! 
 1~2日で設計・実装・テスト 


Slide 22

Slide 22 text

© 2022 ESM, Inc. WFの開発プロセス(設計) 22 工程
 工程
 工程
 工程
 工程を設計書でつなぐ


Slide 23

Slide 23 text

© 2022 ESM, Inc. WF時代の設計 23 44%

Slide 24

Slide 24 text

© 2022 ESM, Inc. Dr.アジャイルに聞いてみた 24 ずれてるで。


Slide 25

Slide 25 text

© 2022 ESM, Inc. こうじゃなくて 25 1.スプリントプランニング 
 2.デイリースクラム
 3.リファインメント
 4. スプリントレビュー 
 5. ふりかえり
 プロダクトバックログ 
 スプリントバックログ 
 製品
 リリース
 仕様検討
 設計
 コーディング
 単体テスト
 結合テスト
 要求分析
 要件定義
 受入テスト


Slide 26

Slide 26 text

© 2022 ESM, Inc. こうやで 26 1.スプリントプランニング 
 2.デイリースクラム
 3.リファインメント
 4. スプリントレビュー 
 5. ふりかえり
 プロダクトバックログ 
 スプリントバックログ 
 製品
 リリース
 仕様検討
 設計
 コーディング
 単体テスト
 結合テスト
 要求分析
 要件定義
 設計
 受入テスト
 ②Done確認はデイリー 
 ③スプリントレビューは 
 工程ゲートではない 
 ①設計はここで済ませる 
 ①実際にはこの時間を使う 


Slide 27

Slide 27 text

© 2022 ESM, Inc. あえて対応させてみる 27

Slide 28

Slide 28 text

© 2022 ESM, Inc. リファインメントでやること 28 私たちの例
 未来のPBIをReadyにする
 これが設計


Slide 29

Slide 29 text

© 2022 ESM, Inc. スプリントプランニングでやること 29 私たちの例
 設計はDEVだけではなく 
 POとも一緒に行う
 私たちの例


Slide 30

Slide 30 text

© 2022 ESM, Inc. いつやる?
 誰がやる?
 何をやる?
 なぜやる?
 30 ● スプリントが始まる前
 ● リファインメントの時間
 ● 詳細は実装しながらもアリ
 ● それぞれの設計工程


Slide 31

Slide 31 text

© 2022 ESM, Inc. いつやる?
 誰がやる?
 何をやる?
 なぜやる?
 31 ● コードを書く人
 ● 顧客やPOも一緒にやる
 ● 工程の担当者


Slide 32

Slide 32 text

© 2022 ESM, Inc. いつやる?
 誰がやる?
 何をやる?
 なぜやる?
 32

Slide 33

Slide 33 text

© 2022 ESM, Inc. WFの開発プロセス(設計) 33 工程
 工程
 工程
 工程
 工程を設計書でつなぐ


Slide 34

Slide 34 text

© 2022 ESM, Inc. WF時代の設計書 34 イメージ
 きっちり作る、しっかり残す 
 ソースコードとの距離は遠い 


Slide 35

Slide 35 text

© 2022 ESM, Inc. 設計書の目的(WF) 35 次工程への インプット
 エビデンス
 工程の
 完了ゲート
 理解の
 可視化
 認識の共有
 理解
 他人のため
 自分のため


Slide 36

Slide 36 text

© 2022 ESM, Inc. Agile開発の設計 36 状態遷移
 処理フロー
 要求分析
 クラス構成


Slide 37

Slide 37 text

© 2022 ESM, Inc. 最近の設計 37 考えながら手早く書く 
 自分(自分たち)向けに書く 
 コーディングと並行して書く 
 システム構成 
 アーキテクチャ 
 シーケンス


Slide 38

Slide 38 text

© 2022 ESM, Inc. 設計書の目的(Agile) 38 次工程への インプット
 エビデンス
 工程の
 完了ゲート
 理解の
 可視化
 認識の共有
 理解
 他人のため
 自分のため


Slide 39

Slide 39 text

© 2022 ESM, Inc. モブ
 レビュー
 コード中心の世界 39 自分
 メンバ
 書く
 読む
 自分
 メンバ
 共通理解(コンテキスト) 
 メンバが書けるように 
 メンバが読めるように 


Slide 40

Slide 40 text

© 2022 ESM, Inc. 設計の価値観 40 自分たち
 他人
 しっかり
 すばやく
 次工程へのイ ンプット
 エビデンス
 工程の完了 ゲート
 理解の
 可視化
 認識の共有
 理解


Slide 41

Slide 41 text

© 2022 ESM, Inc. Agileで大事にする設計の価値 41 自分たち
 他人
 しっかり
 すばやく
 協調
 対話
 変化
 契約
 計画
 プロセス


Slide 42

Slide 42 text

© 2022 ESM, Inc. いつやる?
 誰がやる?
 何をやる?
 なぜやる?
 42 ● 共通理解を持つ
 ● 次工程に必要なものを作る


Slide 43

Slide 43 text

© 2022 ESM, Inc. 43 WF
 その工程
 Agile
 いつやる
 誰がやる
 何をやる
 なぜやる
 開発期間中
 工程の担当者
 全員
 次工程に必要なものを作る 
 共通理解を持つ
 キーワード
 工程・分業・利他
 逐次・共同・利己


Slide 44

Slide 44 text

© 2022 ESM, Inc. もうひとつ
 44

Slide 45

Slide 45 text

© 2022 ESM, Inc. ソフト開発は一品もの 45 IoT 装置
 Slack アプリ
 ● ラズパイ
 ● 各種センサ
 ● 組み込みシステム
 ● クラウド
 ● データベース
 ● Webサービス


Slide 46

Slide 46 text

© 2022 ESM, Inc. プロダクト毎に設計は異なる 46 
 IoT装置
 Slack アプリ
 ドメイン
 組み込み
 Webサービス
 動作環境
 スタンドアロン
 マネージドサービス
 チームの習熟度
 低い
 高い
 作成したダイアグラム 
 ユースケース図
 回路図
 状態遷移図
 処理フロー
 シーケンス図
 システム構成図
 アーキテクチャ構造図 
 シーケンス図
 プロダクトに応じた設計の定義が必要 


Slide 47

Slide 47 text

© 2022 ESM, Inc. 設計の抽象化 47 固有の設計スキル
 固有の設計スキル
 メタな設計スキル


Slide 48

Slide 48 text

© 2022 ESM, Inc. 更に抽象化 48

Slide 49

Slide 49 text

© 2022 ESM, Inc. まとめ
 49

Slide 50

Slide 50 text

© 2022 ESM, Inc. Agile開発でも設計は必要
 WF開発とは目的が異なる
 設計を設計するメタスキル
 50

Slide 51

Slide 51 text

© 2022 ESM, Inc. ありがとうございました
 51