Agile Japan 2013 サテライト<長野>事例研究講演資料

Preview:

DESCRIPTION

2013/05/24 に開催されたAgile Japan 2013 サテライト<長野>で弊社が講演した事例研究の資料です。

Citation preview

1Agile Japan Satellite <NAGANO>

Agile Japan 2013サテライト<長野>

〔観光 × アジャイル〕

【事例研究】地域観光イノベーション      〜開発現場からの報告〜

株式会社ガリレオ    小林 隼人

2Agile Japan Satellite <NAGANO>

次第鹿教湯プロジェクトについて標準化と XML Schema事例研究①事例研究②まとめ

3Agile Japan Satellite <NAGANO>

会社紹介

システム開発/ Web アプリケーションの提供情報配信サービス学会業務情報化サービス翻訳業務

株式会社ガリレオ http://www.galileo.co.jp/

4Agile Japan Satellite <NAGANO>

自己紹介

小林 隼人(こばやし はやと)

株式会社ガリレオエンジニア

システム開発部門開発チーム運用チーム

サーバ運用/仮想化/開発支援

5Agile Japan Satellite <NAGANO>

鹿教湯プロジェクト1. 鹿教湯プロジェクトとは2. 関係者3. 課題4. 解決方法5. 全体スケジュール6. NISA で開発したシステム7. NISA で開発したアプリ8. ガリレオの開発体制

6Agile Japan Satellite <NAGANO>

1. 鹿教湯プロジェクトとは

観光庁:地域観光イノベーション促進事業

旅行者のニーズの多様化、旅行スタイルの変化等に対応した魅力ある観光地域づくりを推進するため、新たなモデルの構築に繋がる観光地域づくりの先進的な取組を実施し、そこから得られた成果と課題を分析することで、観光地域づくりに寄与することを目的とする本公募で対象となる取組は、滞在交流型観光をする際の課題解決に資する取組であって、新規性を有するものであることや、地域に還元されるものであることなどの要件を満たすものを公募により募集

出典: http://www.mlit.go.jp/kankocho/shisaku/kankochi/chiikikankou_innovation.html

7Agile Japan Satellite <NAGANO>

1. 鹿教湯プロジェクトとは

長野県上田市

岩手県北上市石川県金沢市

愛媛県松山市

2013年度に採択された案件

8Agile Japan Satellite <NAGANO>

1. 鹿教湯プロジェクトとは

参加・体験・交流型イベントデータ・情報構造標準化・オープン化と

データ収集・登録・検索、アドワーズ広告用キーワード選択システムの開発

鹿教湯温泉旅館組合(長野県上田市)

9Agile Japan Satellite <NAGANO>

1. 鹿教湯プロジェクトとは

参加・体験・交流型イベントデータ・情報構造標準化・オープン化と

データ収集・登録・検索、アドワーズ広告用キーワード選択システムの開発

鹿教湯温泉旅館組合(長野県上田市)

標準化 オープン化

10Agile Japan Satellite <NAGANO>

1. 鹿教湯プロジェクトとは

元気 健康になる「北上チャリ時間」事業創造プロジェクト

NPO 法人きたかみ観光 NEXT(岩手県北上市)

金沢公共レンタサイクル「まちのり」を活用した回遊性向上のための環境づくり

株式会社日本海コンサルタント(石川県金沢市)

松山市・道後温泉エリアにおける回遊促進指向ユビキタス情報サービス 株式会社エス・ピー・シー(愛媛県松山市)

観光庁:地域観光イノベーション促進事業

11Agile Japan Satellite <NAGANO>

2. 関係者

鹿教湯温泉旅館組合

JTREC旅行電子商取引促進機構

NISA長野県情報サービス振興協会

データ登録・検索システムの開発

応用アプリケーションの開発

データ構造の標準化

イベント情報(滞在プログラム)の収集・作成

12Agile Japan Satellite <NAGANO>

3. 課題

着地型観光

滞在プログラム

13Agile Japan Satellite <NAGANO>

3. 課題

●発地型観光→出発地にある旅行業者などが企画●着地型観光→目的地にある旅行業者などが企画

観光客や旅行者を受け入れる地域が自分たちの持つ観光資源を生かして企画するツアー

着地型観光

14Agile Japan Satellite <NAGANO>

3. 課題

いわゆる「イベント情報」「観光情報」の総称

街おこし/村おこしなど社会貢献型が中心→直接収益が低い→地域への貢献や間接収益を期待

滞在プログラム

15Agile Japan Satellite <NAGANO>

3. 課題

主催者側が効率的に宣伝するためのノウハウを蓄積したり、リソースを確保することが難しい→流通の仕組みがない、浸透に時間がかかる消費者側も十分な情報を手に入れることができていない主催者や自治体は、それぞれパンフレットやホームページ・ポータルなどの流通経路を持っているが、フォーマットが統一されておらず再利用することが難しい

滞在プログラム

16Agile Japan Satellite <NAGANO>

3. 課題

自治体

観光組合

宿泊施設

飲食店

HPポータル

HPポータル

HPポータル

HPポータル

滞在プログラム 顧客顧客から見た滞在プログラムの現状

17Agile Japan Satellite <NAGANO>

4. 解決方法

データ構造の標準化

旅財市場の形成

18Agile Japan Satellite <NAGANO>

4. 解決方法

データ構造の標準化

19Agile Japan Satellite <NAGANO>

4. 解決方法

A 用イベント情報イベント名開催場所開催日時料金予約状況主催者・・・

B用イベント情報イベント名イベント名(フリガナ)開催期間開催時間開催場所郵便番号開催場所住所・・・

20Agile Japan Satellite <NAGANO>

4. 解決方法

データ構造の標準化

21Agile Japan Satellite <NAGANO>

4. 解決方法

データ構造の標準化

XML

22Agile Japan Satellite <NAGANO>

4. 解決方法

旅財市場の形成

23Agile Japan Satellite <NAGANO>

4. 解決方法

自治体

観光組合

宿泊施設

飲食店

HPポータル

HPポータル

HPポータル

HPポータル

滞在プログラム 顧客顧客から見た滞在プログラムの現状

24Agile Japan Satellite <NAGANO>

4. 解決方法

自治体

観光組合

宿泊施設

飲食店

滞在プログラム 顧客

旅財市場

サービスアプリ

旅財市場形成後の顧客と滞在プログラム

旅館業界

旅館サイト

...

DMO, DMC

一般利用者

観光向けサイト

...

旅行向けサイト

ベンダー

検索サイト SNS サイト

...

滞在プログラムデータ集積用システム

投稿用 API検索用 API

XML XMLXML投稿

クロール

検索検索

旅館情報提示

観光情報提示

検索結果提示

イベント情報投稿

命令の流れ

データの流れ

Webページ

滞在プログラム XML データ

Web システム (CMS など )

凡例

旅館サイト

26Agile Japan Satellite <NAGANO>

5. 全体スケジュール

2012年10月

11月

12月

2013年01月

02月

03月 「地域活性化を図る滞在プログラムの展開」セミナー開催

標準化項目検討

システム開発

情報入力試行

レポート作成

27Agile Japan Satellite <NAGANO>

6. NISA で開発したシステム

1. 滞在プログラム登録システム

2. 滞在プログラム検索API

3. 滞在プログラム応用アプリ

28Agile Japan Satellite <NAGANO>

6. NISA で開発したシステム

滞在プログラム登録システム

応用アプリHP

検索API

Webブラウザ

情報提供者

応用アプリ

印刷物

TheInternet

29Agile Japan Satellite <NAGANO>

6. NISA で開発したシステム

滞在プログラム登録システム

応用アプリHP

検索API

Webブラウザ

情報提供者

応用アプリ

印刷物

TheInternet

1. 滞在プログラム登録システム

30Agile Japan Satellite <NAGANO>

6. NISA で開発したシステム

滞在プログラム登録システム

応用アプリHP

検索API

Webブラウザ

情報提供者

応用アプリ

印刷物

TheInternet

2. 滞在プログラム検索API

31Agile Japan Satellite <NAGANO>

6. NISA で開発したシステム

滞在プログラム登録システム

応用アプリHP

検索API

Webブラウザ

情報提供者

応用アプリ

印刷物

TheInternet

3. 滞在プログラム応用アプリ

32Agile Japan Satellite <NAGANO>

7. NISA で開発したアプリ

1. 旅財市場(滞在プログラム一覧・詳細表示)

2. ホームページへの埋め込み

3. My滞在プログラム(アイテナリー/旅程表作成)

4. Excel データ出力

5. Androidアプリ

33Agile Japan Satellite <NAGANO>

7. NISA で開発したアプリ

旅財市場滞在プログラムの一覧/詳細表示

34Agile Japan Satellite <NAGANO>

7. NISA で開発したアプリ

My滞在プログラム旅程表の作成

35Agile Japan Satellite <NAGANO>

7. NISA で開発したアプリ

Excel データ出力自治体向けの商談シートを自動生成

36Agile Japan Satellite <NAGANO>

8. ガリレオの開発体制

プロダクトへの要件 チケットのクローズ

チケット一覧作成

マイルストーン計画

日々の開発+

残り作業の整理

マイルストーン完了チェック プロダクト

振り返り

プロジェクト・リーダー

プロジェクト・マネージャ

開発チーム

37Agile Japan Satellite <NAGANO>

8. ガリレオの開発体制

遠隔地でのアジャイル開発

プロジェクトリーダー長野県上田市

開発担当(プログラマ)兵庫県神戸市

制作担当(デザイナ)宮城県仙台市

プロジェクトマネージャ東京都豊島区

38Agile Japan Satellite <NAGANO>

標準化と XML Schema1. XML Schema について2. マイルストーン3. XMLBeans4. JAXB

39Agile Japan Satellite <NAGANO>

1. XML Schema について

鹿教湯プロジェクトのデータ定義には XML Schema を利用する予定XML Schema からパーサが自動生成できることについて確認

40Agile Japan Satellite <NAGANO>

2. マイルストーン

マイルストーン 1XML Schema からのパーサ生成に関する調査マイルストーン 2

XMLBeans によるパーサ生成マイルストーン3

JAXBリファレンス実装によるパーサ生成

41Agile Japan Satellite <NAGANO>

3. XMLBeans

Welcome to XMLBeans http://xmlbeans.apache.org/

42Agile Japan Satellite <NAGANO>

4. JAXB

The Java Community Process(SM) Program - JSRs: Java Specifcation Requests - detail JSR# 222 http://jcp.org/en/jsr/detail?id=222

JAXBを使ってみよう | ガリレオ開発グループ ブログ http://www.galileo.co.jp/blogs/dv/archives/2012-11-19-16-00-56.html

43Agile Japan Satellite <NAGANO>

事例① WordPress によるサイト制作1. システム概要2. マイルストーン3. 使用したツール4. アジャイル開発とPaaS5. システム構成6. OpenShift と Jenkins7. 拡張

44Agile Japan Satellite <NAGANO>

1. システム概要

WordPress 用のテーマ鹿教湯プロジェクトの応用アプリ全体の共通デザインとして利用滞在プログラム活用の事例として、旅館ホームページのサンプルを制作各応用アプリへのリンクと説明を記載し、鹿教湯プロジェクトのフロントエンドとして活用

http://kakeyup-g5o.rhcloud.com/

45Agile Japan Satellite <NAGANO>

1. システム概要

旅館サイトのサンプル

46Agile Japan Satellite <NAGANO>

2. マイルストーン

マイルストーン 1OpenShift での WordPress稼働方法調査マイルストーン 2

WordPress テーマによるプロトタイプ作成マイルストーン3

WordPressページテンプレートによるページ作成マイルストーン4

旅館サンプルサイト作成マイルストーン5

応用アプリケーションの紹介ページ作成マイルストーン6最終調整

47Agile Japan Satellite <NAGANO>

3. 使用したツールアジャイル開発での中心ツールTrac

Wikiページ:要件整理Ticket :バグ管理Ticket :タスク管理Milestone :進捗管理

Trac では難しい情報共有への対応Skype :リアルタイムな情報共有ML: :タイムラグが発生しても良い情報の共有や周知コード管理

Git :PaaS との連携Subversion :社内でのバージョン管理CI

Jenkins :自動テスト実行/自動デプロイ(検討)

48Agile Japan Satellite <NAGANO>

4. アジャイル開発とPaaS

PaaS の採用を検討Google App EngineHerokuOpenShift検討事項

WordPress などのCMS が簡単に稼働できるか利用にあたっての費用開始までに必要な期間利用にあたっての技術的・心理的な障壁の高さ

PaaS はアジャイル開発で使えるか?

49Agile Japan Satellite <NAGANO>

4. アジャイル開発とPaaS

PaaS の採用を検討Google App EngineHerokuOpenShift検討事項

WordPress などのCMS が簡単に稼働できるか利用にあたっての費用開始までに必要な期間利用にあたっての技術的・心理的な障壁の高さ

PaaS はアジャイル開発で使えるか?

50Agile Japan Satellite <NAGANO>

4. アジャイル開発とPaaS

良かった点すぐに使い始めることができた無償で実験的なサイトを稼働することができた運用負担を削減できた苦労した点

WordPress はアップデートが簡単にできる仕組みがあるが、 OpenShift では git push でしかアップデートできないため、その機能が使えないGit リポジトリが採用されているが、社内ではSubversion を利用しているため、コードの統一的な管理が難しかった

OpenShift を採用して

51Agile Japan Satellite <NAGANO>

5. システム構成

OpenShift

GearMySQL

GearPHP

WordPress

TOPページ +-- つるや旅館サイト +-- ホテルかめや +-- 応用アプリリンク集

52Agile Japan Satellite <NAGANO>

6. OpenShift と Jenkins

Red Hat が提供する PaaS 環境Java / PHP / Ruby / Python / Node.js など多様なプログラミング言語が利用可能Git によるデプロイJenkins の利用が可能

https://www.openshift.com/

53Agile Japan Satellite <NAGANO>

6. OpenShift と Jenkins

無料( 0円)〜利用可能アカウントを取得したらすぐに使えるハードウェア/ OS /ミドルウェアを管理しなくてよいサービスの規模が大きくなったらスケール可能

https://www.openshift.com/

54Agile Japan Satellite <NAGANO>

6. OpenShift と Jenkins

プログラムなどの

ソースコードミドルウェア

( Apache + PHP)Git リポジトリコミット( git push )

ビルド・デプロイ

開発担当(プログラマ)

制作担当(デザイナ)

55Agile Japan Satellite <NAGANO>

6. OpenShift と Jenkins

オープンソースのCI (継続的インテグレーション)ツールCVS, Subversion, Git など多様なバージョン管理システムと連携が可能コミットをトリガにした自動ビルド/スケジューリング/URL アクセスなど様々な方法で起動が可能

http://jenkins-ci.org/

56Agile Japan Satellite <NAGANO>

6. OpenShift と Jenkins

ビルド後に任意の処理を実行できるビルドの履歴(成功/失敗)が管理できる

http://jenkins-ci.org/

57Agile Japan Satellite <NAGANO>

7. 拡張

58Agile Japan Satellite <NAGANO>

7. 拡張

59Agile Japan Satellite <NAGANO>

OpenShift

7. 拡張

API から情報を取得する際に、その仕組みを自サイトにもつ必要がないAPI の仕様が変更になった場合、一ヶ所の修正で済む

<div><span id="id_navi"></span></div><div><span id="id_result"></span></div><script src="http://kakeyup-inc.herokuapp.com/include2.js"></script>

Heroku 検索API

60Agile Japan Satellite <NAGANO>

事例② Android アプリ開発1. アプリ概要2. マイルストーン3. プロジェクト単位でのアジャイル開発

61Agile Japan Satellite <NAGANO>

1. アプリ概要

Androidスマートフォン向けの滞在プログラム参照アプリケーション滞在プログラムの WebAPI と連携→置情報と滞在プログラム情報を取得、マップ上に表示【 AR機能】カメラのプレビュー画面に滞在プログラム情報をオーバーレイ表示

検索API

滞在プログラムマップ

Androidスマートフォン

インターネット回線

滞在プログラムを地図表示と AR表示

62Agile Japan Satellite <NAGANO>

1. アプリ概要

スマートフォンのGPS機能を使用して、位置情報を取得し、現在位置の近くにある滞在プログラムをマップ表示します。「滞在プログラムマップ」アプリケーションをインストールしたAndroidスマートフォンで本アプリケーションは動作します。アプリケーションを起動すると右図のような画面が表示されます。Googleマップ上に滞在プログラムの位置情報を元にマーカ表示されます。マーカをクリックすると、滞在プログラムの詳細情報が表示されます。左上にある「Camera」ボタンをクリックすると、AR画面に切り替わります。

滞在プログラムマップ

63Agile Japan Satellite <NAGANO>

1. アプリ概要

滞在プログラムの位置情報を元に、スマートフォンの位置情報と向きと傾きを計算して、スマートフォンが向いている方向に存在する滞在プログラムをカメラプレビュー上に表示地図上で大枠を掴み、 ARで現実世界にオーバレイすることにより滞在プログラムを見つけやすくしています。

AR機能

64Agile Japan Satellite <NAGANO>

2. マイルストーン

マイルストーン 1ルート案内API調査マイルストーン 2基本機能実装マイルストーン3

AR連携

65Agile Japan Satellite <NAGANO>

3. プロジェクト単位でのアジャイル開発

WordPress と Android ではアプリケーションが異なるが、同一プロジェクトのため Trac やリポジトリは共用して一緒に管理ガリレオではプロジェクト数が多いため、基本的にはプロジェクトごとに ML や Trac 、リポジトリを用意しているあまり細かくわけると、運用負担が高くなるプロジェクトの規模が大きい場合は、同一プロジェクトの中でも分割することがある

66Agile Japan Satellite <NAGANO>

まとめこれから取り組みたいこと

67Agile Japan Satellite <NAGANO>

これから取り組みたいこと

Trac プラグインの研究Redmine の採用について検討SCRUM の導入Jenkins の活用VPS / IaaS / PaaS の研究遠隔地を結ぶアジャイル開発手法をさらに進める

68Agile Japan Satellite <NAGANO>

Agile Japan 2013サテライト<長野>

〔観光 × アジャイル〕

ともに創ろう、日本のアジャイルご清聴ありがとうございました