oss ユーザのための勉勮会 #11 sep25 2015 oss を …ossを却用した 開発の...

72
OSS を用した 開発の プロジェクト管理 SCSK 会社 R&Dセンター 術開発部 術略課 岩本 健 (IWAMOTO Takeshi) OSSユーザのための勉会 #11 Sep 25 th 2015

Upload: others

Post on 08-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

OSS を使用した開発のプロジェクト管理

SCSK 株式会社

R&Dセンター 技術開発部 技術戦略課

岩本 健 (IWAMOTO Takeshi)

OSSユーザのための勉強会 #11 Sep 25th 2015

Page 2: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

少し自己紹介をさせてください

Copyright(c) SCSK Corporation, ALL Rights Reserved. 2

Page 3: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

岩本 健 ( Iwamoto Takeshi ) の仕事

R&Dセンター 技術開発部 技術戦略課

これまでの仕事・人材育成 @人事

・開発標準 @標準化

・研究開発 @R&Dセンター

興味・関心

・技術戦略 @R&Dセンター

・アジャイル開発・アーキテクチャ

Copyright(c) SCSK Corporation, ALL Rights Reserved. 3

・研究開発 @客先(某SI’er)

・クラウドに関する研究・モバイルに関する研究

Page 4: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

本日のアジェンダ

1. OSS 活用の背景

2. OSS 活用で得たコト

3. まとめ

Copyright(c) SCSK Corporation, ALL Rights Reserved. 4

Page 5: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

本日のアジェンダ

1. OSS 活用の背景

2. OSS 活用で得たコト

3. まとめ

Copyright(c) SCSK Corporation, ALL Rights Reserved. 5

Page 6: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

研究開発における OSS 利用の背景

• 研究開発業務の一つプロトタイプ開発� 新しい技術・デバイスなどの活用の仕方

� 例えば、「IoT って仕事でどうやって使うの?」

• 研究開発組織なので、新しい仕様や技術をいち早く試すことができる。� 新技術の最も早い実装は OSS

� JavaEE、Hadoop や Spark、Docker ・・・

• 無料で使える。検証段階なので助かる。

Copyright(c) SCSK Corporation, ALL Rights Reserved. 6

Page 7: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

副次的な検証。せっかくなのであえて使う。

• いろんな開発プロセス・方法論ですすめる� アジャイル開発� 継続的インテグレーション (CI )

� 継続的デリバリー

• 使ってみたい実装技術を影響の少ない部分で試す� JavaEE 7 (2013年当時)

� NoSQL (Cassandra, MongoDB)

• 既存のOSSで代用できる部分は積極的に利用� ワークフロー

7Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 8: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

研究プロジェクトをご紹介

• クラウド上でのアプリケーション連携基盤� 様々な外部のデータやサービスを連携するハブ

� マルチテナント型 PaaS

8Copyright(c) SCSK Corporation, ALL Rights Reserved.

企業内システム

アプリケーション連携基盤

SaaS

デバイス

データ

サービス部品 管理システム

Page 9: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

研究プロジェクトをご紹介

• クラウド上でのアプリケーション連携基盤� 様々な外部のデータやサービスを連携するハブ

� マルチテナント型 PaaS

9Copyright(c) SCSK Corporation, ALL Rights Reserved.

企業内システム

アプリケーション連携基盤

SaaS

デバイス

データ

サービス部品

・管理機能や周辺サービスを JavaEE で開発・全体をアジャイル開発プロセスで遂⾏・CI 環境を実験的に導入

管理システム

Page 10: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

研究プロジェクトをご紹介

• クラウド上でのアプリケーション連携基盤� 様々な外部のデータやサービスを連携するハブ

� マルチテナント型 PaaS

10Copyright(c) SCSK Corporation, ALL Rights Reserved.

企業内システム

アプリケーション連携基盤

SaaS

デバイス

データ

サービス部品 管理システム

・管理機能や周辺サービスを JavaEE で開発・全体をアジャイル開発プロセスで遂⾏・CI 環境を実験的に導入

チャレンジ!

ターゲット!!

Page 11: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

プロジェクト管理の目標

11Copyright(c) SCSK Corporation, ALL Rights Reserved.

経験の少ないOSSや技術・理論を試用してプロトタイプを実装し、

メインのターゲットである、アプリケーション連携基盤のアーキテクチャ及び実現可能性の検証

を達成する。

Page 12: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

今日のお話の主題

12Copyright(c) SCSK Corporation, ALL Rights Reserved.

経験の少ないOSSや技術・理論を試用してプロトタイプを実装し、

メインのターゲットである、アプリケーション連携基盤のアーキテクチャ及び実現可能性の検証

を達成する。どう OSS と

向き合うか??

Page 13: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

本日のアジェンダ

1. OSS 活用の背景

2. OSS 活用で得たコト

3. まとめ

Copyright(c) SCSK Corporation, ALL Rights Reserved. 13

Page 14: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それぞれのシーン別に実体験を交えてご説明

• いろんな開発プロセス・方法論ですすめる� アジャイル開発� 継続的インテグレーション (CI )

� 継続的デリバリー

• 使ってみたい実装技術を影響の少ない部分で試す� JavaEE 7 (2013年当時)

� NoSQL (Cassandra, MongoDB)

• 既存のOSSで代用できる部分は積極的に利用� ワークフロー

14Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 15: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それぞれのシーン別に実体験を交えてご説明

• いろんな開発プロセス・方法論ですすめる� アジャイル開発� 継続的インテグレーション (CI )

� 継続的デリバリー

• 使ってみたい実装技術を影響の少ない部分で試す� JavaEE 7 (2013年当時)

� NoSQL (Cassandra, MongoDB)

• 既存のOSSで代用できる部分は積極的に利用� ワークフロー

15Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 16: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それぞれのシーン別に実体験を交えてご説明

• いろんな開発プロセス・方法論ですすめる� アジャイル開発� 継続的インテグレーション (CI )

� 継続的デリバリー

• 使ってみたい実装技術を影響の少ない部分で試す� JavaEE 7 (2013年当時)

� NoSQL (Cassandra, MongoDB)

• 既存のOSSで代用できる部分は積極的に利用� ワークフロー

16Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 17: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

プロセスには「Scrum」を活用

17Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

Page 18: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

質問

18Copyright(c) SCSK Corporation, ALL Rights Reserved.

Scrum ご存知の方?

Page 19: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

では、

19Copyright(c) SCSK Corporation, ALL Rights Reserved.

少しだけ説明します

Page 20: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

アジャイル開発プロセス 「Scrum」

20Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

Page 21: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum の役割 4つ

21Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

Page 22: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum の要件リスト

22Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

Page 23: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum の開発単位 ( 2 週間~4 週間 )

23Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

Page 24: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum の特徴は一定期間で改善を繰り返す

• 2W〜4W単位で改善を繰り返す� 改善例

- 開発者それぞれで実装イメージが異なっていた。「ああしようと思ってた」「こうしようと思ってた」が後から噴出。

- 新しいバックログを開始するときはまず声をかける

- まずはスケルトンコードとテストコードを書く。⇒実装方針を決める。(最初は口頭で、その次はスケルトン、最後はスケルトンコードをペアプロするように改善)

• ⾒積もりの制度を上げる�繰り返し開発していると、チームの⼒が計測できる�毎回⾒積もりと実績をとり、⾒積もり精度も改善。

24Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 25: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

改善を繰り返すためには・・・

• 2W〜4W単位で改善を繰り返す� 改善例

- 開発者それぞれで実装イメージが異なっていた。「ああしようと思ってた」「こうしようと思ってた」が後から噴出。

- 新しいバックログを開始するときはまず声をかける

- まずはスケルトンコードとテストコードを書く。⇒実装方針を決める。(最初は口頭で、その次はスケルトン、最後はスケルトンコードをペアプロするように改善)

• ⾒積もりの制度を上げる�繰り返し開発していると、チームの⼒が計測できる�毎回⾒積もりと実績をとり、⾒積もり制度も改善。

25Copyright(c) SCSK Corporation, ALL Rights Reserved.

計測の精度が重要

Page 26: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Redmine の導入

プロジェクト管理・カンバン

個人開発環境 ソースコード管理

自動テスト自動デプロイ

仮想環境

Copyright(c) SCSK Corporation, ALL Rights Reserved. 26

ツールを導入してデータを収集し、計測の制度を上げつつ省⼒化しよう!

Page 27: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

何を計測するか?

27Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

Page 28: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

何を計測するか?

28Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

どれかけのバックログを消化したか

Page 29: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

何を計測するか?

29Copyright(c) SCSK Corporation, ALL Rights Reserved.

アジャイル開発の開発プロセスを定義した中で最もポピュラーな Scrumを活用

どれかけのバックログを消化したか

どれかけのタスクを消化したか

Page 30: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Redmineで不⾜する機能を補う

• Redmineだけでは、Scrum で必要な情報を収集できない(できるが面倒)

• Scrum 開発を実践するようなプラグインはいくつか開発されている。

• Backlogs プラグインというツールが良さそうだ!�特に実施検証せず�ドキュメントやWebの情報で機能やできることを確認

30Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 31: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

プラグイン 「Backlogs」 を利用

31Copyright(c) SCSK Corporation, ALL Rights Reserved.

バックログの管理

バックログにひもづく タスクの管理

タスクの残作業時間

バックログのポイント

Page 32: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

タスクの総時間 = 予定工数

32Copyright(c) SCSK Corporation, ALL Rights Reserved.

スプリントの 予定工数(時間)

タスク

Page 33: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum について

33Copyright(c) SCSK Corporation, ALL Rights Reserved.

イメージして頂けましたか?

Page 34: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それぞれのシーン別に実体験を交えてご説明

• いろんな開発プロセス・方法論ですすめる� アジャイル開発� 継続的インテグレーション (CI )

� 継続的デリバリー

• 使ってみたい実装技術を影響の少ない部分で試す� JavaEE 7 (2013年当時)

� NoSQL (Cassandra, MongoDB)

• 既存のOSSで代用できる部分は積極的に利用� ワークフロー

34Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 35: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

ぶつかった問題

35Copyright(c) SCSK Corporation, ALL Rights Reserved.

数字が合わない

Page 36: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

詳細タスク計画時の流れ

36Copyright(c) SCSK Corporation, ALL Rights Reserved.

① タスクを切って、作業時間を設定。

② 「画面実装」タスクの⾒積もり時間を変更

④ 予定工数を確認。「よし!想定内!!」

③ 作業時間の⾒積もり完了

⑤ スプリント(開発) 開始!!

Page 37: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

???

37Copyright(c) SCSK Corporation, ALL Rights Reserved.

① タスクを切って、作業時間を設定。

② 「画面実装」タスクの⾒積もり時間を変更

④ 予定工数を確認。「よし!想定内!!」

③ 作業時間の⾒積もり完了

⑤ スプリント(開発) 開始!!

なんか作業時間が多い

最初の予定工数おかしな気がする

Page 38: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

よく⾒てみるとタスク時間の総和が違う

38Copyright(c) SCSK Corporation, ALL Rights Reserved.

① タスクを切って、作業時間を設定。

② 「画面実装」タスクの⾒積もり時間を変更

④ 予定工数を確認。「よし!想定内!!」

③ 作業時間の⾒積もり完了

⑤ スプリント(開発) 開始!!

Page 39: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

よく⾒てみるとタスク時間の総和が違う

39Copyright(c) SCSK Corporation, ALL Rights Reserved.

① タスクを切って、作業時間を設定。

② 「画面実装」タスクの⾒積もり時間を変更

④ 予定工数を確認。「よし!想定内!!」

③ 作業時間の⾒積もり完了

⑤ スプリント(開発) 開始!!

16.0 + 8.0 + 2.0 + 4.0 = 30.0

Page 40: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それぞれの数字の意味が合っていない

40Copyright(c) SCSK Corporation, ALL Rights Reserved.

① タスクを切って、作業時間を設定。

② 「画面実装」タスクの⾒積もり時間を変更

④ 予定工数を確認。「よし!想定内!!」

③ 作業時間の⾒積もり完了

⑤ スプリント(開発) 開始!!

Backlogsプラグインの世界

Redmineベース機能の世界

Page 41: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

こんなややこしいなら・・・

• Excel のほうがいいのでは?自分で計算式を書いたほうが良いのでは。

• Redmineや Backlogs プラグインはブラックボックスで実際に何をやっているのかは⾒えにくい。

41Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 42: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

いいコトだってあるんです。

• Webシステムなので複数⼈の⼊⼒インタフェースとしては優れている。

• データの保管、変更履歴の取得。

• プラグインによる機能強化

• Scrum に特有な機能を多数備えている。� タスクのカンバン表示など。

� Scrum に必要な様々な値を自動で取得し計算

42Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 43: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

ツール系選定時の反省点

「プラグインを入れればできる」は信用しすぎるな!!

BacklogsプラグインはRedmine が提供するデータ項目をうまく使おうとしたあまり逆に理解や使い方が難しくなった。(バグではない)

あまり重要でないことに⾒えるが、計測を重んじるScrumとしては正しい工数を取得したい。

Webの情報、思い込みで使用を開始するのではなく、いったんプロジェクトのウォークスルーを実施し、各値の有効性などを検証すべきであった。

Copyright(c) SCSK Corporation, ALL Rights Reserved. 43

Page 44: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

もうすこし Redmine 系の話。

44Copyright(c) SCSK Corporation, ALL Rights Reserved.

プラグインではなくアナログツールを併用した方が良い時もある

Page 45: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum での日々の進捗管理

45Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 46: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum での日々の進捗管理

46Copyright(c) SCSK Corporation, ALL Rights Reserved.

スプリントの期間

Page 47: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum での日々の進捗管理

47Copyright(c) SCSK Corporation, ALL Rights Reserved.

作業時間

Page 48: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum での日々の進捗管理

48Copyright(c) SCSK Corporation, ALL Rights Reserved.

スプリント開始時の作業時間

Page 49: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

バーンダウンチャートで日々の進捗管理

49Copyright(c) SCSK Corporation, ALL Rights Reserved.

理想的なタスクの消化目安ライン

理想線

スプリントの最後にはゼロ

Page 50: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Scrum での日々の進捗管理

50Copyright(c) SCSK Corporation, ALL Rights Reserved.

残タスクの総時間数

Page 51: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

バーンダウンチャートで日々の進捗管理

51Copyright(c) SCSK Corporation, ALL Rights Reserved.

作業の遅れ(進み)時間

Page 52: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

バーンダウンチャートで日々の進捗管理

52Copyright(c) SCSK Corporation, ALL Rights Reserved.

残タスク総時間理想時間

をキープする

Page 53: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

バーンダウンチャートで日々の進捗管理

53Copyright(c) SCSK Corporation, ALL Rights Reserved.

残タスク総時間理想時間

をキープする

Backlogs プラグインにバーンダウンチャート機能を使ってみた。

Page 54: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

実際のバーンダウンチャートの例

54Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、会社の事務作業などが入る。

理想線

遅れてるけど・・・大丈夫?

今日はセミナーがあったので。

Page 55: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

実際のバーンダウンチャートの例

55Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、会社の事務作業などが入る。

理想線

実績

あんまり挽回できそうにないけど・・・大丈夫?

⼈事から⼈事考課の資料を出せって⾔われて・・・

Page 56: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

実際のバーンダウンチャートの例

56Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、会社の事務作業などが入る。

理想線

実績

Page 57: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

実際のバーンダウンチャートの例

57Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、会社の事務作業などが入る。

理想線

実績

前のPJのバグが出て、緊急招集・・・・すいません。。。

・・・

Page 58: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Redmineと アナログツールの併用

58Copyright(c) SCSK Corporation, ALL Rights Reserved.

ベロシティ計測

バーンダウンチャート

レトロスペクティブ (プラクティス:KPT)

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

Page 59: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

Redmineと アナログツールの併用

59Copyright(c) SCSK Corporation, ALL Rights Reserved.

ベロシティ計測

バーンダウンチャート

レトロスペクティブ (プラクティス:KPT)

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

理想線ではなく計画線を導⼊。予めメンバーの予定を記載し、作業工数を実態に寄せる

Page 60: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それぞれのシーン別に実体験を交えてご説明

• いろんな開発プロセス・方法論ですすめる� アジャイル開発� 継続的インテグレーション (CI )

� 継続的デリバリー

• 使ってみたい実装技術を影響の少ない部分で試す� JavaEE 7 (2013年当時)

� NoSQL (Cassandra, MongoDB)

• 既存のOSSで代用できる部分は積極的に利用� ワークフロー

60Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 61: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

対象のアプリケーション

61Copyright(c) SCSK Corporation, ALL Rights Reserved.

• REST API を提供するWEBアプリケーション• JavaEE が提供する基本仕様で実装

JRE (JRE8)

JavaEE 7 (GlassFish v4.0)

JAX-RS CDI JPA

Page 62: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

CI 環境として Jenkins を軸に構成

プロジェクト管理・カンバン

個人開発環境 ソースコード管理

自動テスト自動デプロイ

仮想環境

Copyright(c) SCSK Corporation, ALL Rights Reserved. 62

Page 63: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

テスト環境への反省

CIの実現のために、テスト可能なアーキテクチャ設計が重要。

Copyright(c) SCSK Corporation, ALL Rights Reserved. 63

Page 64: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

単体テスト設計 当初の計画

64Copyright(c) SCSK Corporation, ALL Rights Reserved.

JavaEE 7 (GlassFish v4.0)

Resource Service Repository

JavaEE Container

DBClient

前提:Spring Frameworkの感覚で話していた。

・Resource、Serviceクラスは JUnit + JMokit・Repository クラスは DBUnitを使ってDBアクセスも検証

と、なんとなく安易に単体テスト設計。

Page 65: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

開発を開始していくと・・・

• データソースをエミュレートしてくれるテスト用の仕組みがない。⇒データベースアクセスのテストができない⇒ Arquillianというツールがあった。

• CI環境で動作しない。�Arquillian の前のテストケースが使っている junit.jarの影響で ClassNotFound

• Arquillian は 実⾏速度が遅く、テストが増えてくるとCIサーバがダウンする。

• 挙句の果てにテストメソッドを日本語で書いて動かない問題まで。

65Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 66: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

最終的には

66Copyright(c) SCSK Corporation, ALL Rights Reserved.

メインの開発はストップ。テスト環境の問題を場当たり的に解決する日々

Page 67: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

テスト計画に関する反省と考慮点

• アプリケーションアーキテクチャを決定するときにはテストアプリケーションのアーキテクチャも合わせて設計する。

• 開発開始前に小さなサンプルアプリで開発からCI/CDまで検証を実施する。

• 失敗時の切り返し⼿順など、例外対応も重要。

• テスト系OSSツールは、開発系に比べるとプロダクト数、ネット上の情報も充実していないことを認識する。

Copyright(c) SCSK Corporation, ALL Rights Reserved. 67

Page 68: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

プロジェクト管理の目標

68Copyright(c) SCSK Corporation, ALL Rights Reserved.

経験の少ないOSSや技術・理論を試用してプロトタイプを実装し、

メインのターゲットである、アプリケーション連携基盤のアーキテクチャ及び実現可能性の検証

を達成する。

Page 69: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

本日のアジェンダ

1. OSS 活用の背景

2. OSS 活用で得たコト

3. まとめ

Copyright(c) SCSK Corporation, ALL Rights Reserved. 69

Page 70: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

OSS を使用したプロジェクト管理のポイント

• OSS を使ってPJで実現したい環境を整理し、自分の⼿で試す。�WEBの情報を断片的に集めれば、実現可能なように錯覚するが、いろいろな組み合わせで問題が生じることもある。

�ベンダーが提供するような一式のものはなく、自分で組み合わせて開発するので、問題が生じやすい。

• 部分的な検証だけでなく、開発の流れに沿って小さなプロタイプでウォークスルーを実施する。�すべてのリスクは拾えないが、すべて終わってみないとわからない問題はあらかじめ対処できる。

�テスト実⾏環境など、プロダクトで後回しにされやすいところなどを早めにつぶす。

70Copyright(c) SCSK Corporation, ALL Rights Reserved.

Page 71: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

それでも OSS を使う理由

71Copyright(c) SCSK Corporation, ALL Rights Reserved.

より安く、うまく、早く、開発するにはOSSは不可⽋。新しい技術は OSS で実装される。ベンダーは年単位で遅れる。

課題や問題はあるものの、開発の開始前もしくはなるべく早い段階で解決するようにする。

また同時にそのような「リスク」をとってでもOSSを使う理由 があるのかを冷静に⾒極める。

OSSを使う場合には、例えサポートがあったとしても問題が起きた時は 自分で解決するという覚悟 が必要。

さらにはその成果をコミュニティに還元することも含め、大きな視点も持ちながら・・・。

Page 72: OSS ユーザのための勉勮会 #11 Sep25 2015 OSS を …OSSを却用した 開発の プロジェクト管理 SCSK 卯厚会社 R&Dセンター叒術開発部叒術勛略課 岩本健(IWAMOTO

OSS を使用した開発のプロジェクト管理

SCSK 株式会社

R&Dセンター 技術開発部 技術戦略課

岩本 健 (IWAMOTO Takeshi)

OSSユーザのための勉強会 #11 Sep 25th 2015