More Related Content
Similar to 会議室を現場にする! リアルタイム共同編集によるプロトタイピング
Similar to 会議室を現場にする! リアルタイム共同編集によるプロトタイピング (20)
More from Masaru Nagaku (11)
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
- 1. Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.
会議室を現場にする!
リアルタイム共同編集による
プロトタイピング
(株)アトミテック 研究開発室 室長
早稲田大学GEC非常勤講師
長久勝
1
- 2. Copyright (c) Atomitech Corporation. All rights reserved.
概要
● 得られる知見:プログラミング言語として強い制約のある
DSLでの開発のワークフローの考え方
● 前提:Googleドキュメントの使用経験。チーム開発の経験
● 内容:リアルタイム共同編集が可能なノベルゲームエンジン
の体験展示を行います。元々は、プログラマを抜きに
GameJamを行うためのツールとして作り始めましたが、
コードの共同所有、継続的インテグレーション、高速なイテ
レーション、(状態遷移図による)見える化、といった、アジャ
イル開発のプラクティスを取り込むことで、会議のアウトプッ
トとしてノベルゲーム(のプロトタイプ)が得られる仕組みを実
現しています
2
- 3. Copyright (c) Atomitech Corporation. All rights reserved.
詳細
日科技連ソフトウェア品質シンポジウム2014「【経験発表】高品質ノベルゲーム開発基盤の提案」では、CEDEC2013
「『モデル検査』のススメ(ゲームシナリオ進行編)」の内容に加え、アジャイル開発のプラクティスを取り込んだノベルゲー
ムエンジンについて報告した。
プログラミング言語として強い制約を課したDSLによる開発においては、会議などで合意が取られる概要設計が大きな
意味を占め、それに沿った個々の実装作業は(プログラミングとして見た場合)それほど大変な作業ではない。例えば、ノ
ベルゲームでは、全体のシナリオ構成が決まると、個々の作業は各シーンの台詞や演出となり、プログラミングとしての
要素が薄くなる。現在、チームでプログラミングを行う際の代表的なワークフローは、分散リポジトリとプルリクエストによ
るものだが、これは概要設計が決まった後に用いられるものなので、会議などで合意が取られる概要設計が大きな意味
を占める場合、大掛かり過ぎてあまり上手く機能しないと考えられ、会議の中でプロトタイピングまで行う方が効率が良
いと考えられる。
本体験展示では、会議の中でプロトタイピングを行う実例を示し、そこでの、コードの共同所有、継続的インテグレーショ
ン、高速なイテレーション、(状態遷移図による)見える化、について示す。
コードの共同所有については、リポジトリやペアプログラミングが持つ問題点を、etherpad-liteで解消できることを示す。
継続的インテグレーションについては、数十秒間隔でDSLを解析し、ほぼリアルタイムで文法エラーの検出を行い、該当
部分を差し替える仕組みによって、コードを実行可能な状態に保つ。
高速なイテレーションについては、常にコードが実行可能な状態を保つことで、複数で同時作業していても、試行錯誤の
速度を維持できる。
(状態遷移図による)見える化については、香盤表の情報も併せ持ったシナリオフロー図のほぼリアルタイムな自動生成
により、コードの状態を把握可能としている。
本展示を体験することで、ワークフローの改善について、ヒントが得られるものと考える。
3
- 4. Copyright (c) Atomitech Corporation. All rights reserved.
アトラスX改二
会議のアウトプットとしてノベルゲーム(のプロトタイ
プ)が得られる仕組みを実現している、リアルタイム
共同編集が可能なノベルゲームエンジン
● コードの共同所有
● 継続的インテグレーション
● 高速なイテレーション
● (状態遷移図による)見える化
4
- 5. Copyright (c) Atomitech Corporation. All rights reserved.
コードの共同所有
リポジトリ:開発者がローカル環境でリソースの編
集を行う際には、たいてい1人であり、編集中の状
態まで共同所有してはいない
ペアプログラミング:物理的に同じ場所にいないと
機能しない。3人以上だと成り立たない
etherpad-lite:共同編集がリアルタイムで可能
5
- 6. Copyright (c) Atomitech Corporation. All rights reserved.
イテレーションの速度
シナリオの分割単位であるシーン毎に文法エラー
を評価し、エラーを検出したシーンをダミーに置き
換えることで、ゲームそのものは実行可能とした
作業中のシーンに含まれるバグの影響を限定し、
複数で同時作業していても、試行錯誤の速度が落
ちない
最新のDSLによる実行確認も、ゲームのリロード
で可能であり、試行錯誤の速度が落ちない6
- 7. Copyright (c) Atomitech Corporation. All rights reserved.
CI
数十秒間隔でDSLを解析し、ほぼリアルタイムでシ
ナリオフロー図の更新と文法エラーの検出を行っ
ている
シナリオフロー図をワークショップ会場にプロジェク
ションするなど、変化していく状態遷移図の状況を
共有することで、進捗や課題を簡単に共有できる
7
- 8. Copyright (c) Atomitech Corporation. All rights reserved.
見える化
香盤表の情報も併せ持ったシナリオフロー図のほ
ぼリアルタイムな自動生成により、コードの状態を
把握可能としている
8
- 9. Copyright (c) Atomitech Corporation. All rights reserved.
「プルリク」「ペアプロ」「コミット駆動「CI」
「プルリク」では、共有不足をレビューで補う
「ペアプロ」では、共有の及ぶ範囲が限定的
コミット駆動「CI」では、変化に遅延する
殆どのコードはDSL化していく
3人ぐらいで書ける
リアルタイム共同編集に適合する領域は
拡大していく
9
- 10. Copyright (c) Atomitech Corporation. All rights reserved.
● XP祭り2014:
俺の考えたイテレーションの未来!!(ワークショップ)
● ソフトウェア品質シンポジウム2014:
高品質ノベルゲーム開発基盤の提案(講演)
● GCS2015:
リアルタイム共同編集によるプロトタイピング(講演)
● CEDEC2015:
リアルタイム共同編集によるプロトタイピング(展示)
● ソフトウェア品質シンポジウム2015:
協働体験から、この先のプロセスを考えてみよう
(ディスカッション)
既出情報
10