この連載は、IT業界で働き始めた新人さんたちのために、仕事で頻繁に耳にするけれど意味がわかりにくいIT業界の専門用語を「がってん!」してもらうシリーズです。
柴田克己(しばた・かつみ) ITをメインに取材・執筆するフリーランスジャーナリスト。1970年、長崎県生まれ。95年にIT専門紙「PC WEEK日本版」の編集記者として取材・執筆を開始。その後、インターネット誌やゲーム誌、ビジネス誌の編集に携わり、フリーになる直前には「ZDNet Japan」「CNET Japan」のデスクを務めた経験がある。
変化に応える機敏な開発手法
ソフトウェア業界では「アジャイル(agile=「敏感な」とか「すばやい」という意味の英単語)」という言葉を使うケースが増えている。アジャイルは、従来より機敏にソフトを開発する方法のことで、お客様にとってメリットが大きいことから、多くのソフト会社がアジャイルに注目している。
現在の主流は、アジャイルではなく「ウォーターフォール型」と呼ばれるもの。これは、「要件定義」「設計」「開発」「テスト」「実装」という流れでソフトを完成させる手法だ。最初の段階でお客様の要望をまとめた仕様を固めて、それが変わらないという前提で工程を順番に進めていく。作業が上流から下流へと流れていくことから、こう呼ばれている。各工程が完全に分かれているので、費やす時間と開発者の人数が見積もりやすく、品質管理もしやすいことから、多くのソフト開発会社がこの手法を採用している。
しかし、近年では「前工程は変化しない」「手戻りが許されない」といったウォーターフォール型の原則がデメリットになるケースが増えてきた。お客様のビジネス環境やITテクノロジーの変化のスピードが速くなり、開発途中でお客様の要望が変わるケースや、最初にすべての要望をお客様が明確にできず、後から「この機能を追加したい」というケースが出てきている。ウォーターフォール型は、一度スタートすると流れを止めにくく、やり直しが難しい。お客様の要望に、機敏に対応することができないという弱点がある。
そこで、アジャイルだ。アジャイルは、「お客様の要望は変化する」ことを前提に、まず、短期間で開発できるシンプルな機能のソフトをつくる。それをユーザーといっしょに検証しながら、次の期間で新機能を付加したり、既存機能を変更・改善したりして、ソフトを増強していく。お客様は、実際にソフトに触りながら評価できるので、要求に合っているかどうかを段階的に確認でき、新たな要望を出しやすい。
アジャイルを手がけるにあたっては、「エクストリーム・プログラミング(XP)」や「スクラム」など、さまざまな手法がある。アジャイルが自分の仕事に身近になりそうなときに、それぞれの内容について調べてほしい。
立ちはだかる「関係」の壁
メリットが多いアジャイルだが、取り入れるのはそう簡単ではないことも知っておくべきだ。アジャイルをうまく進めるためには、お客様とソフト開発会社との「関係」を変える必要がある。
アジャイルでは、短い周期で成果物の評価を繰り返しながら完成度を上げていく。お客様にも、ソフト開発会社と緊密にコミュニケーションを取りながら、積極的に開発に参画していく姿勢が求められる。また、事前に期間や工数の精度の高い見積もりが難しいので、ソフト開発会社は、請負契約にあたって、従来の開発案件で行っていたかたちでの契約形態がそぐわないといったこともある。
ウォーターフォール型の開発が抱える課題を解決するために、アジャイルを採用しようという機運は、今後高まっていくだろう。ただし、そのメリットを十分に引き出すためには、単に手法を取り入れるだけでなく、会社全体、さらにはお客様にも理解と協力をお願いしなければならないことを押さえておきたい。
Point
●ソフト開発手法の一つ。ウォーターフォール型が抱える問題を解決するために考え出されたもので、ユーザーの要求が変化することを前提に開発を進める。
●実際の案件にうまく適用するためには、単に手法を取り入れるだけでなく、お客様との関係やビジネス上の契約形態など、周囲の環境を整えることが大切。