タイムリー開発の現場では、メンバー間の情報伝達の速度が重要だ。DevOpsツールで情報の連携やプロセス状況の共有を図る。実際に効果を上げたNTT先端技術やイトーキの取り組みを見てみよう。

NTTデータ先端技術
ツール連携で伝達漏れ防止
Redmine、Git、Gerrit、Jenkins など

 ソースコードを素早く改修しても、後のレビュー作業が遅れたり、テスト用の環境が不足したりすると、全体の開発スピードは上がらない――。このことを以前のプロジェクトで痛感したと話すのは、NTTデータ先端技術の志田隆弘氏(ソリューション事業部 クラウド基盤ビジネスユニット クラウドグループ シニアエキスパート)だ。

 志田氏らのチームは、クラウド基盤を構築するためのOSS「OpenStack」の拡張機能を開発するプロジェクトに参加した。このプロジェクトは当初、作業の引き継ぎがうまく行かずに、レビューやテストでたびたび作業が停滞したという。

 そこで志田氏らはプロジェクトの第2期にプロセスを改善した。プロジェクトで使用する各種ツールを連携させ、メンバー同士が互いの作業の進捗を把握しやすくする仕組みを整えた。これにより、引き継ぎ作業のロスが目に見えて少なくなった。実際、効果には他の要因が含まれるものの、開発生産性は第1期の4倍以上に高まった。

 第1期は個々のツールを個別に稼働させており、作業引き継ぎの連絡が円滑にいかないことがあった。例えば、本来はプログラムを改修するたびに報告するルールにもかかわらず、複数のプログラムをまとめて報告するケースが散見された。その結果、レビュー担当者が改修済みのソースコードに気付かず、レビュー作業が滞ってしまう問題が発生していた。これを解消するため、人手を介さずに情報を引き継げる仕組みに取り組んだわけだ。

ツールの実行結果をRedmineに集約

 このプロジェクトで志田氏らが活用した主なツールは、ソースコード管理のGitや、コードレビューツールのGerrit、CIツールのJenkinsなど。これらのツールの実行結果を、チケット管理ツールのRedmineに自動的に反映し、集約するようにした(図1)。

図1●NTTデータ先端技術のチームが整えた進捗状況を把握する仕組み
図1●NTTデータ先端技術のチームが整えた進捗状況を把握する仕組み
各種DevOpsツールから作業の進捗や結果などの情報をRedmineに自動的に反映し、一元管理する。Redmineを参照すれば他のチームメンバーの進捗状況を把握できるため、作業の連携が取りやすくなった
[画像のクリックで拡大表示]

 例えば、プログラマが改修したソースコードをGitにコミットする場合は次のようになる。まず、プログラマがコメント欄に、関連するRedmineのチケット番号を付記し、コミットする。RedmineはGitの状況を定期的に参照し、コミットされたソースコードを確認。コメント欄の番号に従って、対応する課題のレビュー担当者に、改修したソースコードの存在を通知する。これによって、レビューの担当者が把握できる。

 このプロジェクトチームは最も多いときで50人規模。このうちレビュー担当者は4人に限られていた。一方でプログラマがソースコードの改修を終えてコミットする時期は、リリース予定日の間際に集中しがちだ。「レビュー作業を渋滞させないことが生産性向上のポイントだった」(志田氏)。

 同様に、Gerritによるレビュー結果や、レビュー作業の後に実施するテストの結果もRedmineに集約する。単体テストであれば、JenkinsとPythonのテストフレームワークのnoseを組み合わせて自動実行。その結果をJenkinsがRedmineに反映する要領だ。どの作業間においても進捗を着実に把握できるようにしている。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。