ハイブリッド型アジャイル開発のすべて - esd21 · 従来型開発との融合...

30
All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd. 中電シーティーアイ流 ハイブリッド型アジャイル開発のすべて 平成 29 3 3 株式会社 中電シーティーアイ 佐村

Upload: others

Post on 23-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

中電シーティーアイ流

ハイブリッド型アジャイル開発のすべて

平成29年3月3日

株式会社 中電シーティーアイ

佐村 卓

Page 2: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

INDEX

1. はじめに

2. アジャイル開発とは

3. 従来型開発との融合

4. 見える化の徹底

5. 顧客との協調作業

6. 開発環境の自働化

7. まとめ

1

Page 3: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.2

はじめに

中電シーティーアイのご紹介

商号 株式会社中電シーティーアイ

設立(合併) 平成15年10月1日

資本金 1億円

出資会社 中部電力株式会社

従業員数 1053名(平成28年7月現在)

売上高 333億円(平成27年度)

Page 4: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.3

はじめに

当社システム開発の特徴・課題

中部電力株式会社およびグループ各社のシステム開発・保守

開発・保守件名の一括受注とメーカーおよび協力会社への発注

特 徴

要求仕様がなかなか固まらない

度重なる仕様追加・変更と手戻り手直し

更なる生産性向上と効率化

課 題

Page 5: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

アジャイル開発とは

4

アジャイル開発への期待

要件が決まっていなくても開発できる

開発期間を短縮できる

開発費用を安くできる

Page 6: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

アジャイル開発とは

5

アジャイル開発の概要

計画~テスト 計画~テスト 計画~テスト

数週間~数ヶ月 数週間~数ヶ月 数週間~数ヶ月

毎回リリース

毎回リリース

毎回リリース

反復 反復 反復

• アジャイルとは『すばやい』『俊敏な』という意味で、反復 (イテレーション) と呼ばれる数週間~数ヶ月の短い開発単位を採用することにより、

リスクを最小化しようとする開発手法。

• 開発対象を多数の小さな機能に分割し、反復内で機能を開発する 。この反復を

繰り返し行うことで、 機能を1つずつ追加的に優先度を付けて開発してゆく。

• 1つの反復内では、計画、要求分析、設計、実装(コーディング) 、テストと

いった、ソフトウェア開発で必要とする全ての工程を行う。

Page 7: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.6

アジャイル開発とは

Scrum(スクラム)開発

スプリント

計画会議設計~製造~テスト

スプリントレビュー

振り返り

日々進捗や問題の共有

タスク洗い出し

スプリント(数週間~数ヶ月)

アプリの動作を確認作業タスクの洗い出し

スプリントを反復繰り返す

スプリントバックログ(スプリント期間で実施するもの)

開発チーム会議 デイリースクラム 受入テスト

プロダクトバックログ

(顧客要求事項)

Page 8: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.7

アジャイル開発とは

XP(エクストリームプログラミング)

アジャイルソフトウェア開発宣言の起草者の一人である米国のケント・ベックらによって考案されたソフトウェア開発手法

4つの価値・コミュニケーション (Communication)・シンプルさ (Simplicity)・フィードバック (Feedback)・勇気(変更に対する)(Courage)

XPのプラクティス(実践)・顧客同室 ・継続的インテグレーション・テストファースト ・チーム全体/多能工・ペアプログラミング ・持続可能なペース/週40時間・リファクタリング ・小さなリリース・ソースコードの共同所有 ・計画ゲーム・メタファー/比喩 ・コーディング標準

Page 9: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

アジャイル開発とは

8

アジャイル開発のプラクティス

プロセス的なプラクティス

(スクラム開発)

•ファシリテーション

•振り返り

•自律的な開発チーム

•朝会

技術的なプラクティス

(XP)

•テストファースト

•ペアプログラミング

•リファクタリング

•継続的インテグレーション

人間性を重視し、リードタイム短縮と自働化を図る

Page 10: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

アジャイル開発とは

9

アジャイル開発の源流

代表的なアジャイル開発手法のすべてがトヨタ生産方式を源流とする⇒「カイゼン」、「見える化」、「ムリ、ムラ、ムダの排除」、「かんばん」、「自働化」、「現地現物」、「なぜなぜ5回」、「5S」など

アジャイル開発への応用7つのムダ余分な機能のムダ、遅れのムダ、引き継ぎのムダ、再学習のムダ、未完成のムダ、タスク切り替えのムダ、欠陥のムダ

ポカよけ欠陥を出さないためにリリースを短い期間で繰り返し、フィードバックを頻繁に行う方法

かんばん「JITフロー」JIT(Just In Time)で必要なモノを、必要なときに、必要なだけ作るように見える化

Page 11: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

アジャイル開発とは

10

アジャイル開発のまとめ

「カイゼン」や「ムダの排除」などによる生産性向上と品質向上

ムダなくシンプルに作ることによる変更要求への柔軟性確保

反復型開発での要求仕様の早期確認によるリスクの最小化

「かんばん」などの「見える化」による問題の早期発見と対策

顧客と開発メンバーの協調作業

「自働化」による作業効率の向上と欠陥除去

Page 12: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.11

従来型開発との融合

ハイブリッド型アジャイル開発

企画要件定義

スクラム開発

ハイブリッド型

企画要件定義

結合テスト

総合テスト

従来型(ウォーターフォール型)

基本設計

(外部設計)

詳細設計

(内部設計)

プログラミング単体テスト

事前に行う

複数開発チームが次々とソフトウェアを製造するため、これらを統合するテスト工程(結合・総合テスト工程)を設ける

sprint(2)sprint(1) sprint(n)sprint(3) sprint(4) ・・・

2週間

Page 13: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.12

従来型開発との融合

ハイブリッド型アジャイル開発

基本設計書

詳細設計書

保守用資料、その他 保守用資料、その他

従来型開発での成果物量

ハイブリッド型開発での成果物量

80%

詳細設計書

基本設計書

Page 14: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

標準値=ポイントを決め、各ストーリーの相対値を決める

例:“日中に営業部が自席の事務PCから入力確認のために販売一覧を参照したい”

13

見える化の徹底

要求事項A

要求事項B

要求事項C

要求事項D

要求事項E

要求事項F

要求事項G

要求事項H

優先度

プロダクトバックログ

ストーリーボード

顧客の要求事項を5W1Hで表す

「ストーリーポイント」を付ける

「ユーザーストーリー(ストーリー)」に変える

Page 15: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.14

見える化の徹底

ストーリーボード

要求事項A

要求事項B

要求事項C

要求事項D

要求事項E

要求事項F

要求事項G

要求事項H

要求事項X優先度

スプリントバックログプロダクトバックログ

全開発期間

生産性を上げない限りプロジェクト全開発期間で開発可能な量は変わらないため開発枠が固定される

Page 16: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.15

見える化の徹底

ストーリーボード

要求事項A

要求事項B

要求事項C

要求事項D

要求事項E

要求事項F

要求事項G

要求事項H

要求事項X優先度

スプリントバックログプロダクトバックログ

生産性を上げない限りプロジェクト全開発期間で開発可能な量は変わらないため開発枠が固定される

生産性を上げない限りプロジェクト全開発期間で開発可能な量は変わらないため開発枠が固定される

全開発期間

Page 17: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.16

見える化の徹底

ストーリーボード

スプリント(12)(9月第3,4週)

・・・

スプリント(2)(4月第3,4週)

スプリント(1)(4月第1,2週)

スプリント

ストーリー ストーリー ストーリー

ストーリー

ストーリー ストーリー

ストーリー

ストーリー ストーリー ストーリー ストーリー

達成感を共有する全開発期間

開発期間を見極める

Page 18: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.17

ストーリーボード

見える化の徹底

Page 19: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.18

見える化の徹底

タスクかんばん

ToDo(未着手)ストーリー Doing(進行中) Done(終了)

ストーリー1

ストーリー2

タスク2

タスク4

タスク5

タスク3

タスク1

タスク6

タスク1タスク2

タスク3タスク4

タスク5 タスク6

あんどん表示

Page 20: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.19

見える化の徹底

タスクかんばん

Page 21: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.20

見える化の徹底

タスクかんばん(電子かんばん)

Page 22: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.21

見える化の徹底

テストかんばん(結合テスト以降)

A機能×B機能テストシナリオ

B機能×C機能テストシナリオ

A機能不具合

ToDo Done

テストケース5 テストケース1

テストケース2

B機能不具合

テストケース3

テストケース4

C機能不具合

Doing

テストケース6

テストケース1テストケース2 テストケース3テストケース4テストケース5

テストケース6

Page 23: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.22

テストかんばん(結合テスト以降)

見える化の徹底

ToDo 不具合レーン Done

Page 24: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.23

見える化の徹底

バーンダウンチャート(進捗管理)

Page 25: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.24

見える化の徹底

KPTボード

Keep Try

継続

問題

強化

挑戦

Problem

Page 26: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.25

見える化の徹底

今の気持ちは?

開発メンバー全員の気持ち

振り返りの際にシールを貼る

Page 27: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.26

顧客との協調作業

顧客同室

顧客には開発チームと可能な限り協調して作業をしていただくために、プロジェクトルームを設け、動作確認のための顧客用PC、専用の打合せコーナーを用意した。

プロジェクトルームで毎日行われる朝会への参加

顧客にお願いしたこと・・・

朝会後、プロジェクトルームでの短時間の打合せ

スプリント毎の計画会議への参加

スプリント毎のレビュー

区切り区切りでの慰労会参加

Page 28: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.

開発メンバ

開発担当者

Redmine

Subversion Jenkins Tomcat

27

開発環境の自働化

①チケット登録

⑧結果通知

②コミット

④コミット通知

③コミット通知

⑦チケット登録⑤ビルド・静的解析・テスト・WAR作成

⑥デプロイ・GUIテスト

毎日の全アプリケーション自動コンパイル&リンク(ビルド)

毎日の全アプリケーション自動テスト(リグレッションテスト)

継続的インテグレーション

開発ツールを駆使し、ビルドとテストを頻繁に行うことにより開発効率の向上と品質の向上を実現すること。

Page 29: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.28

まとめ

アジャイル開発への期待

要件が決まっていなくても開発できる

開発期間を短縮できる

開発費用を安くできる

要件の定義は必要。早期リリースで思い違いを早く見つける。

カイゼンやムダの排除、シンプルな考え、自働化で生産性を上げる。

動くソフトウェアを重視し、ドキュメント作成稼動時間を低減する。

要件の早期確定、開発期間短縮、コスト低減を実現

Page 30: ハイブリッド型アジャイル開発のすべて - ESD21 · 従来型開発との融合 ハイブリッド型アジャイル開発 企画 要件 定義 スクラム開発 ハイブリッド型

All rights reserved, Copyright (C) 2017, ChudenCTI Co., Ltd.29

まとめ

アジャイル開発 成功のポイント

ワーキングスタイルの変革

強いリーダーシップ

カイゼンマインドの定着

コミュニケーションロスの低減

顧客の理解と合意

顧客の迅速な意思決定