• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

シェア "少し自己紹介をさせてください 2"

Copied!
72
0
0

読み込み中.... (全文を見る)

全文

(1)

OSS

を使用した

開発の

プロジェクト管理

SCSK

株式会社

R

&

D

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

岩本 健 (IWAMOTO Takeshi)

OSS

ユーザのための勉強会 #11

Sep 25

th

2015

(2)

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

(3)

岩本 健 ( Iwamoto Takeshi ) の仕事

R

D

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

これまでの

仕事

・人材育成

@

人事

・開発標準

@

標準化

・研究開発

@R

&

D

センター

興味・関心

・技術戦略

@R

&

D

センター

・アジャイル開発

・アーキテクチャ

Copyright(c) SCSK Corporation, ALL Rights Reserved.

3

・研究開発

@

客先(某SI’er)

・クラウドに関する研究

・モバイルに関する研究

(4)

本日のアジェンダ

1. OSS

活用の背景

2. OSS

活用で得たコト

3.

まとめ

(5)

本日のアジェンダ

1. OSS

活用の背景

2. OSS

活用で得たコト

3.

まとめ

(6)

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

研究開発業務の一つプロトタイプ開発

新しい技術・デバイスなどの活用の仕方

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

研究開発組織なので、新しい仕様や技術をいち

早く試すことができる。

新技術の最も早い実装は OSS

JavaEE

、Hadoop や Spark、Docker ・・・

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

(7)

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

いろんな開発プロセス・方法論ですすめる

アジャイル開発

継続的インテグレーション (CI )

継続的デリバリー

使ってみたい実装技術を影響の少ない部分で試す

JavaEE 7 (2013

年当時)

NoSQL (Cassandra, MongoDB)

既存のOSSで代用できる部分は積極的に利用

ワークフロー

7

(8)

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

クラウド上でのアプリケーション連携基盤

様々な外部のデータやサービスを連携するハブ

マルチテナント型 PaaS

8

Copyright(c) SCSK Corporation, ALL Rights Reserved.

企業内

システム

アプリケーション

連携基盤

SaaS

デバイス

データ

サービス部品

管理システム

(9)

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

クラウド上でのアプリケーション連携基盤

様々な外部のデータやサービスを連携するハブ

マルチテナント型 PaaS

9

Copyright(c) SCSK Corporation, ALL Rights Reserved.

企業内

システム

アプリケーション

連携基盤

SaaS

デバイス

データ

サービス部品

・管理機能や周辺サービスを JavaEE で開発

・全体をアジャイル開発プロセスで遂⾏

・CI 環境を実験的に導入

管理システム

(10)

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

クラウド上でのアプリケーション連携基盤

様々な外部のデータやサービスを連携するハブ

マルチテナント型 PaaS

10

Copyright(c) SCSK Corporation, ALL Rights Reserved.

企業内

システム

アプリケーション

連携基盤

SaaS

デバイス

データ

サービス部品

管理システム

・管理機能や周辺サービスを JavaEE で開発

・全体をアジャイル開発プロセスで遂⾏

・CI 環境を実験的に導入

チャレンジ!

ターゲット!!

(11)

プロジェクト管理の目標

11

Copyright(c) SCSK Corporation, ALL Rights Reserved.

経験の少ないOSS

技術・理論

試用してプロトタイプを実装し、

メインのターゲット

である、

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

アーキテクチャ及び

実現可能性の検証

を達成する。

(12)

今日のお話の主題

12

Copyright(c) SCSK Corporation, ALL Rights Reserved.

経験の少ないOSS

技術・理論

試用してプロトタイプを実装し、

メインのターゲット

である、

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

アーキテクチャ及び

実現可能性の検証

を達成する。

向き合うか??

どう OSS と

(13)

本日のアジェンダ

1. OSS

活用の背景

2. OSS

活用で得たコト

3.

まとめ

(14)

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

いろんな開発プロセス・方法論ですすめる

アジャイル開発

継続的インテグレーション (CI )

継続的デリバリー

使ってみたい実装技術を影響の少ない部分で試す

JavaEE 7 (2013

年当時)

NoSQL (Cassandra, MongoDB)

既存のOSSで代用できる部分は積極的に利用

ワークフロー

14

(15)

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

いろんな開発プロセス・方法論ですすめる

アジャイル開発

継続的インテグレーション (CI )

継続的デリバリー

使ってみたい実装技術を影響の少ない部分で試す

JavaEE 7 (2013

年当時)

NoSQL (Cassandra, MongoDB)

既存のOSSで代用できる部分は積極的に利用

ワークフロー

15

(16)

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

いろんな開発プロセス・方法論ですすめる

アジャイル開発

継続的インテグレーション (CI )

継続的デリバリー

使ってみたい実装技術を影響の少ない部分で試す

JavaEE 7 (2013

年当時)

NoSQL (Cassandra, MongoDB)

既存のOSSで代用できる部分は積極的に利用

ワークフロー

16

(17)

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

17

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(18)

質問

18

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(19)

では、

19

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(20)

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

20

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(21)

Scrum

の役割 4つ

21

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(22)

Scrum

の要件リスト

22

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(23)

Scrum

の開発単位 ( 2

週間

~4

週間

)

23

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(24)

Scrum

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

2W

〜4W単位で改善を繰り返す

改善例

-

開発者それぞれで実装イメージが異なっていた。「ああしよう

と思ってた」「こうしようと思ってた」が後から噴出。

-

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

-

まずはスケルトンコードとテストコードを書く。

実装方針を決める。(最初は口頭で、その次はスケルトン、

最後はスケルトンコードをペアプロするように改善)

⾒積もりの制度を上げる

繰り返し開発していると、チームの⼒が計測できる

毎回⾒積もりと実績をとり、⾒積もり精度も改善。

24

(25)

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

2W

〜4W単位で改善を繰り返す

改善例

-

開発者それぞれで実装イメージが異なっていた。「ああしよう

と思ってた」「こうしようと思ってた」が後から噴出。

-

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

-

まずはスケルトンコードとテストコードを書く。

実装方針を決める。(最初は口頭で、その次はスケルトン、

最後はスケルトンコードをペアプロするように改善)

⾒積もりの制度を上げる

繰り返し開発していると、チームの⼒が計測できる

毎回⾒積もりと実績をとり、⾒積もり制度も改善。

25

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(26)

Redmine

の導入

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

個人開発環境

ソースコード管理

自動テスト

自動デプロイ

仮想環境

Copyright(c) SCSK Corporation, ALL Rights Reserved.

26

ツールを導入してデータを収集し、

計測の制度を上げつつ省⼒化しよう!

(27)

何を計測するか?

27

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(28)

何を計測するか?

28

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

どれかけの

バックログ

(29)

何を計測するか?

29

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

どれかけの

バックログ

を消化したか

どれかけの

タスク

を消化したか

(30)

Redmine

で不⾜する機能を補う

Redmine

だけでは、Scrum で必要な情報を収集でき

ない(できるが面倒)

Scrum

開発を実践するようなプラグインはいくつか

開発されている。

Backlogs

プラグインというツールが良さそうだ!

特に実施検証せず

ドキュメントやWebの情報で機能やできることを確認

30

(31)

プラグイン 「Backlogs」 を利用

31

Copyright(c) SCSK Corporation, ALL Rights Reserved.

バックログの管理

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

タスクの残作業時間

(32)

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

32

Copyright(c) SCSK Corporation, ALL Rights Reserved.

スプリントの

予定工数(時間)

(33)

Scrum

について

33

Copyright(c) SCSK Corporation, ALL Rights Reserved.

イメージして

(34)

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

いろんな開発プロセス・方法論ですすめる

アジャイル開発

継続的インテグレーション (CI )

継続的デリバリー

使ってみたい実装技術を影響の少ない部分で試す

JavaEE 7 (2013

年当時)

NoSQL (Cassandra, MongoDB)

既存のOSSで代用できる部分は積極的に利用

ワークフロー

34

(35)

ぶつかった問題

35

Copyright(c) SCSK Corporation, ALL Rights Reserved.

数字が

(36)

詳細タスク計画時の流れ

36

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

② 「画面実装」タスクの

⾒積もり時間を変更

④ 予定工数を確認。

「よし!想定内!!」

③ 作業時間の

⾒積もり完了

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

(37)

???

37

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

② 「画面実装」タスクの

⾒積もり時間を変更

④ 予定工数を確認。

「よし!想定内!!」

③ 作業時間の

⾒積もり完了

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

なんか

作業時間が多い

最初の予定工数

おかしな気がする

(38)

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

38

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

② 「画面実装」タスクの

⾒積もり時間を変更

④ 予定工数を確認。

「よし!想定内!!」

③ 作業時間の

⾒積もり完了

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

(39)

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

39

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

② 「画面実装」タスクの

⾒積もり時間を変更

④ 予定工数を確認。

「よし!想定内!!」

③ 作業時間の

⾒積もり完了

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

16.0 + 8.0 + 2.0 + 4.0 = 30.0

(40)

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

40

Copyright(c) SCSK Corporation, ALL Rights Reserved.

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

② 「画面実装」タスクの

⾒積もり時間を変更

④ 予定工数を確認。

「よし!想定内!!」

③ 作業時間の

⾒積もり完了

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

Backlogs

プラグインの

世界

Redmine

ベース機能の

世界

(41)

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

Excel

のほうがいいのでは?自分で計算式を書い

たほうが良いのでは。

Redmine

や Backlogs プラグインはブラックボッ

クスで実際に何をやっているのかは⾒えにくい。

41

(42)

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

Web

システムなので複数⼈の⼊⼒インタフェー

スとしては優れている。

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

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

Scrum

に特有な機能を多数備えている。

タスクのカンバン表示など。

Scrum

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

42

(43)

ツール系選定時の反省点

プラグインを入れればできる

は信用しすぎるな!!

Backlogs

プラグインは

Redmine

が提供するデータ項目をうまく使おうとしたあまり

逆に理解や使い方が難しくなった。(バグではない)

あまり重要でないことに⾒えるが、計測を重んじる

Scrum

としては正しい工数を取得したい。

Web

の情報、思い込みで使用を開始するのではなく、

いったん

プロジェクトのウォークスルーを実施

し、

各値の有効性などを検証

すべきであった。

(44)

もうすこし Redmine 系の話。

44

Copyright(c) SCSK Corporation, ALL Rights Reserved.

プラグイン

ではなく

アナログツール

併用

した方が良い

(45)

Scrum

での日々の進捗管理

45

(46)

Scrum

での日々の進捗管理

46

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(47)

Scrum

での日々の進捗管理

47

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(48)

Scrum

での日々の進捗管理

48

Copyright(c) SCSK Corporation, ALL Rights Reserved.

スプリント開始時の

作業時間

(49)

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

49

Copyright(c) SCSK Corporation, ALL Rights Reserved.

理想的なタスクの

消化目安ライン

理想線

(50)

Scrum

での日々の進捗管理

50

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(51)

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

51

Copyright(c) SCSK Corporation, ALL Rights Reserved.

(52)

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

52

Copyright(c) SCSK Corporation, ALL Rights Reserved.

残タスク総時間

理想時間

(53)

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

53

Copyright(c) SCSK Corporation, ALL Rights Reserved.

残タスク総時間

理想時間

をキープする

Backlogs

プラグインに

バーンダウンチャート機能

を使ってみた。

(54)

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

54

Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、

会社の事務作業

などが入る。

理想線

遅れてるけど・・・

(55)

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

55

Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、

会社の事務作業

などが入る。

理想線

実績

あんまり挽回できそ

うにないけど・・・

大丈夫?

⼈事から⼈事考課の

資料を出せって⾔わ

れて・・・

(56)

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

56

Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、

会社の事務作業

などが入る。

理想線

(57)

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

57

Copyright(c) SCSK Corporation, ALL Rights Reserved.

技術的な問題に加え、

会社の事務作業

などが入る。

理想線

実績

前のPJのバグが出て、緊

急招集・・・・

すいません。。。

・・・

(58)

Redmine

と アナログツールの併用

58

Copyright(c) SCSK Corporation, ALL Rights Reserved.

ベロシティ計測

バーンダウン

チャート

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

(59)

Redmine

と アナログツールの併用

59

Copyright(c) SCSK Corporation, ALL Rights Reserved.

ベロシティ計測

バーンダウン

チャート

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

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

理想線ではなく

計画線

を導⼊。

予めメンバーの予定を記載し、

作業工数を実態に寄せる

(60)

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

いろんな開発プロセス・方法論ですすめる

アジャイル開発

継続的インテグレーション (CI )

継続的デリバリー

使ってみたい実装技術を影響の少ない部分で試す

JavaEE 7 (2013

年当時)

NoSQL (Cassandra, MongoDB)

既存のOSSで代用できる部分は積極的に利用

ワークフロー

60

(61)

対象のアプリケーション

61

Copyright(c) SCSK Corporation, ALL Rights Reserved.

REST API

を提供するWEBアプリケーション

JavaEE

が提供する基本仕様で実装

JRE (JRE8)

JavaEE 7 (GlassFish v4.0)

(62)

CI

環境として Jenkins を軸に構成

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

個人開発環境

ソースコード管理

自動テスト

自動デプロイ

仮想環境

(63)

テスト環境への反省

CI

の実現

のために、

テスト可能

アーキテクチャ設計

が重要。

(64)

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

64

Copyright(c) SCSK Corporation, ALL Rights Reserved.

JavaEE 7 (GlassFish v4.0)

Resource

Service

Repository

JavaEE Container

DB

Client

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

・Resource、Serviceクラスは JUnit + JMokit

・Repository クラスは DBUnitを使ってDBアクセスも検証

(65)

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

データソースをエミュレートしてくれるテスト用の

仕組みがない。

データベースアクセスのテストができない

Arquillian

というツールがあった。

CI

環境で動作しない。

Arquillian

の前のテストケースが使っている junit.jarの影響

で ClassNotFound

Arquillian

は 実⾏速度が遅く、テストが増えてくる

とCIサーバがダウンする。

挙句の果てにテストメソッドを日本語で書いて動か

ない問題まで。

65

(66)

最終的には

66

Copyright(c) SCSK Corporation, ALL Rights Reserved.

メインの開発はストップ。

テスト環境の問題を

(67)

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

アプリケーションアーキテクチャを決定すると

きにはテストアプリケーションのアーキテク

チャも合わせて設計する。

開発開始前に小さなサンプルアプリで開発から

CI/CD

まで検証を実施する。

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

テスト系OSSツールは、開発系に比べるとプロダ

クト数、ネット上の情報も充実していないこと

を認識する。

(68)

プロジェクト管理の目標

68

Copyright(c) SCSK Corporation, ALL Rights Reserved.

経験の少ないOSS

技術・理論

試用してプロトタイプを実装し、

メインのターゲット

である、

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

アーキテクチャ及び

実現可能性の検証

を達成する。

(69)

本日のアジェンダ

1. OSS

活用の背景

2. OSS

活用で得たコト

3.

まとめ

(70)

OSS

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

OSS

を使ってPJで実現したい環境を整理し、自分の

⼿で試す。

WEB

の情報を断片的に集めれば、実現可能なように錯覚す

るが、いろいろな組み合わせで問題が生じることもある。

ベンダーが提供するような一式のものはなく、自分で組み

合わせて開発するので、問題が生じやすい。

部分的な検証だけでなく、開発の流れに沿って小さ

なプロタイプでウォークスルーを実施する。

すべてのリスクは拾えないが、すべて終わってみないとわ

からない問題はあらかじめ対処できる。

テスト実⾏環境など、プロダクトで後回しにされやすいと

ころなどを早めにつぶす。

70

(71)

それでも OSS を使う理由

71

Copyright(c) SCSK Corporation, ALL Rights Reserved.

より

安く、うまく、早く

、開発するにはOSSは不可⽋。

新しい技術は OSS で実装

される。ベンダーは年単位で遅れる。

課題や問題はあるものの、開発の開始前もしくは

なるべく早い段階で解決するようにする。

また同時にそのような

「リスク」をとってでも

OSS

を使う理由

があるのかを冷静に⾒極める。

OSS

を使う場合には、例えサポートがあったとしても

問題が起きた時は

自分で解決するという覚悟

が必要。

さらにはその成果をコミュニティに還元することも含め、

大きな視点も持ちながら・・・。

(72)

OSS

を使用した

開発の

プロジェクト管理

SCSK

株式会社

R

&

D

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

岩本 健 (IWAMOTO Takeshi)

OSS

ユーザのための勉強会 #11

Sep 25

th

2015

参照

関連したドキュメント

この設定では、管理サーバ(Control Center)自体に更新された Windows 用の Dr.Web Agent のコンポ ーネントがダウンロードされませんので、当該 Control Center で管理される全ての Dr.Web

ソリューション事業は、法人向けの携帯電話の販売や端末・回線管理サービス等のソリューションサービスの提

ライセンス管理画面とは、ご契約いただいている内容の確認や変更などの手続きがオンラインでできるシステムです。利用者の

4G LTE サービス向け完全仮想化 NW を発展させ、 5G 以降のサービス向けに Rakuten Communications Platform を自社開発。. モデル 3 モデル

第二運転管理部 作業管理グループ当直長 :1名 第二運転管理部 作業管理グループ当直副長 :1名 第二運転管理部 作業管理グループメンバー :4名

はじめに 中小造船所では、少子高齢化や熟練技術者・技能者の退職の影響等により、人材不足が

システムであって、当該管理監督のための資源配分がなされ、適切に運用されるものをいう。ただ し、第 82 条において読み替えて準用する第 2 章から第

*Windows 10 を実行しているデバイスの場合、 Windows 10 Home 、Pro 、または Enterprise をご利用ください。S