ITシステムの仕事で今、最も大切なことはスピード開発。周囲から「トロい」と言わせないための極意を事例から学ぼう。

 ソフトウエア開発の高速化を目的に、継続的インテグレーション(CI:Continuous Integration)と呼ぶ手法がIT現場に広がっている。CIとは、ソースコードのコンパイルやビルド(結合)、テスト環境へのデプロイ(配置)、テストといった開発作業を自動化するもの。アジャイル開発との相性も良く、ユーザー要求に迅速かつ柔軟に対応するための必須の手法として、多くのIT現場が注目している。

 しかし、単にCIを導入しただけではスピードアップは図れない。特にCIの活用にはいくつかの落とし穴があり、そこにはまると逆に生産性を落としかねない。日立製作所 アプリケーション共通技術統括部の立川茂部長は「開発プロセスやコミュニケーションの見直しは必須。開発者の意識や動き方を変えないと、CIの成果を引き出せない」と指摘する。

 以下では、そんなCI導入・活用について、人的な落とし穴を事例とともに紹介する。

落とし穴1:際限なく追加要求が来てしまう

 人的な落とし穴の1つめは、際限なく追加要求が来てしまう、というものだ。CIの導入によってリリースの期間が短くなると、ユーザーから次々と仕様変更や機能追加が舞い込んでくる可能性が高い。これに対してIT現場は、それらをさばききれずにパンクしてしまう恐れがある。むやみに断ることもできないため、現場には頻発する要求とうまく向き合うテクニックが必要となる。

 ある製造業の基幹システム開発に携わっていたPwCコンサルティングの入江玲欧ディレクターも、同じ悩みを抱えていた。このシステムは、1500台のハンディーターミナルに搭載するアプリケーションと、バックエンドのシステムを連携させて現場を管理するものだ。

 ところがある時期、ハンディーターミナルOSのアップデート作業に追われていたにもかかわらず、10~20件もの追加要求が寄せられた。「とても全ての要求に対応できない。だが、むげに断ることもできない」(入江氏)。アジャイルとCI環境を導入しており、ユーザーには「すぐに対応してもらえる」と映ったようだ。

 そこで作成したのが、実装すべきか否かの合意形成に役立つ要求一覧表だ。どの部門がいつ、どんな要求を出したか、という基本情報とともに、業務上のインパクトを基にした優先度、他の機能への影響、概算工数も記載したのがポイントである。

開発すべきかどうかを判断するための要求一覧表
(出所:PwCコンサルティングの資料を基に編集部で作成)
[画像のクリックで拡大表示]

 「ユーザーの要求は、意外と整理できていないことが多い」。入江氏はこう話す。一見して不要と判断できるものでも、入江氏らはその場で回答せず、必ず一旦預かって、関係者が集まる会議で合意を得るようにした。

 「高」「中」「低」のインパクトについては、業務上の必要性や緊急性を関係者とともに決定する。さらに開発側の立場から、実装した場合に発生する他の機能への影響と、開発に要する工数も算出して記載した。「インパクトが大きくても、あまりにも他の機能に影響があったり、多くの開発工数がかかることを明確にすれば、先送りにすべきかどうかを冷静に判断しやすくなる」(入江氏)。

 入江氏は「実装すべきかどうかを客観的に可視化すること、関係者とともに合意することが大切」と強調する。アジャイルやCIでは特に、時としてその場で対応を即決してしまいかねない。だが、きちんとした合意形成プロセスを踏まないと、ユーザーとの間にわだかまりができてしまい、それが開発スピードを阻害する原因になるという。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら