WEBプロジェクト マネジメントの豆知識

制作側も発注側も
知っておきたい
WEBプロジェクト
スパイラル型のシステム
マネジメントの豆知識
第1回
プロジェクトを推進するうえで
ぜひ知っておきたい「 Web システム開発」
渡邉智紀
PROFILE
意外と苦手な人が多い Web システム開発案件。
Webプロデューサー。Webサイ
ト構築∼ネットマーケティング
業務に従事。新規事業の立案
からプロジェクト管理も行う
特に Web デザイナーから Web ディレクター、
Web プロデューサーになった人で、苦労している人が多いようだ。
今回は、Web システム開発のプロジェクトを円滑に進めるうえで
ては、要件を確認しながら開発を行うため、
発されていることが多いのもその理由だろ
開発時からの変更履歴について追いつか
う。システムの根幹部分にかかわる部分
過去の経験上、開発要件定義時に「ど
ない場合が多い。
このような開発案件では、
やトランザクションを安定的に処理しなけ
のようなシステムが最適か?」
というところ
のちのちの機能拡張や仕様変更がどのよ
ればならない案件の場合、設計がシステ
で、他社事例や参考アプリケーションが
うな理由から行われたのか明確にならず、
ムの要となり、仕様の変更などはめったに
存在しない場合、プロトタイムのシステ
ユーザー側と要件についてもめることが多
あってはならないような仕組みの場合など
ムを構築し、ユーザーの利用状況や運用
い。そのようなことのないようにプロジェ
はJavaがやはり強みを発揮する。
状況によって、システムを改善、拡張さ
クトを管理する立場の人間は、それらのリ
また、基幹系の仕組みと連動する場合
せていくような進め方をする。このような
スクを理解したうえでスケジュールの設定
のような大規模システム構築時にはこのよ
スパイラル型開発案件の場合は、Perlや
や工数の見積もり、人員の確保、ユーザー
うなケースに当てはまり、企業全体のシス
PHPなどの俗にいう「軽い」言語を推奨す
への事前の説明を行う必要がある。
る。これはPerlやPHPは記述方式に自由
知っておきたいポイントを、わかりやすく整理してみたので参考にしてほしい。
設計をしっかりと行わなければ
いけないようなシステム
いねいなシステム設計およびテストを行わ
プンソース」として公開されていることが
Webシステムにおいて、安定性が求め
め、正常稼働後はバグの少ないシステム
多い点を評価した場合である。
られるような案件(特に決済を行うような
が構築されやすい(ただしトラブルが発生
Webシステムの場合は、プロジェクト
システム)では、JSPなどのJavaを選択す
した場合はたいへんだが)
。
開始からシステムのカットオーバーまで
ることが多い。
度が高く、機能拡張面や仕様変更への柔
軟性が高い点、さらにPerlやPHPを利用
したアプリケーションコードなどが「オー
知っておきたいWeb開発言語の特徴と選択ポイント
言語について知る意味
Javaアプリケーションを構築する場合、て
なければ正常に稼働しない言語であるた
それは、ビジネスシーンにおいて、
「す
人間が、言語の特徴を知らずに選択する
の期間が極端に短い場合がある。通常 3
一般的なシステム開発フロー(要件定
べての会話が英語で行われている会議で、
リスクを考えたことがありますか?
∼ 6カ月が一般的だが、設計する期間も
義∼設計∼開発∼導入∼テスト・検証)
小規模∼中規模開発案件の場合
なぜ、現場のSEではない役割の人間が
英語そのものの知識がなく会議に参加し
ここでは、私のこれまでの実際の経験
人員的余裕もなく開発を行わなければな
といったようなステップをとるようなシス
開発言語について知っていなければなら
ている」という状況の中、
「なぜその場で
から現在どのような言語でWeb開発が行
らない案件などがまれにあり、その場合
テムの場合は、設計書に忠実に開発を行
Webシステムのフロントを制御するような
ないのか? そう思う人も多くはないはず
英語が使われているのか?」という疑問を
われ、それぞれの特徴と選択ポイントを
はPerlやPHPのような言語で設計しなが
わなければならない。そういった開発の場
場合、開発着手∼納品までの工数が少な
紹介していきたいと思う。
らつくるほうがよい。
合はJavaのような「重たい」
言語のほうが概
い点や、仕様変更決定時やバグ発見時に
ただし、このような開発手法を採用した
念的に向いている 2 。
即座に変更∼反映までが実施可能という
よく使われる Web 開発言語の種類
場合、バグが多くなりがちである点と、ド
特にパッケージ製品となっているような
面でPerlやPHPの採用を推奨する。これは
キュメントがどうしても後追いになりがち
システムやASP(アプリケーションサービ
前述のスパイラル型開発時の特徴に似て
これまで私が携わった、もしくは既存の
になってしまう。特にドキュメントについ
スプロバイダ)の場合はJSPを利用して開
いるが、少人数でしかも少ない工期で開発
だ。またSEもしくはプログラマーの立場
もたずにいることと同じである。プロジェ
から見てもこれまで自分の使い慣れてい
クトを進めていくうえで、SEやプログラ
る言語や、技術的な裏づけから利用して
マーに「この言語でなければだめだ」と言
いるものもあるので、
「そんなことまで言
われたときに、鵜呑みにしていませんか?
われたくない」
と思う人もいるだろう。
ビジネスをいちばん理解している立場の
システムをコンサルティングした経験から
言語
特徴
Perl
テキストの検索や抽出、レポート作成に向いた言語拡張性が高く、
新しいサービス開発が生まれるのは Perl が多い。
PHP
XML やデータベースとの親和性が高い言語。
書籍等も多く、取り扱える技術者が多い。
能であるという点と、仕様変更の容易さな
スパイラル開発
類と特徴を一覧にするとこのようになる 1 。
JSP
ASP
日本生まれのオブジェクト指向スクリプト言語。
最近開発フレームワーク「Rudy on Rails」が注目を集めている。
Java を利用したサーバ実行型言語。Java を利用しているため、
費用面、仕様面とも高度。ただ、処理が安定しているため、決済
を使うシステムでは安心感がある。
実際の言語は Visual Basic Script か Js cript であり、
IIS でのみ実行可能。
1 よく利用される Web 開発言語
WEB STRATEGY vol.4
設計型
どがメリットとして挙げられる。
ご覧いただくとわかるようにそれぞれ
ただし、複数のエンジニアが携わるよう
が特徴をもった言語であるが、すべての
なプロジェクトの場合、要件定義∼設計
言語について、どのようなコードの記述
方式を採用しているか、どのバージョン
Perl
フェーズをしっかりとドキュメント化し、
小規模∼中規模
があるかまでは把握する必要はない。
Ruby
小規模∼中規模システム開発の場合や
を行う場合には設計しながらの開発が可
の観点で最近よく利用されている言語の種
58
テムに影響が出てしまうため、Javaの採用
をお勧めする。違った観点から評価すると、
認識の共有を行うべきである。そのシス
テムがどのような意味があり、どんなユー
PHP
あくまで言語はシステムのインフラの
ザーにサービスを提供するのかのイメージ
がもてずに開発を行った場合、その後の拡
一部であり、それ以外のサーバ環境や構
築するサービス内容とサービスレベル、
ビジネス面における投資対効果などに
中規模∼大規模
JSP
張計画、コード記述ルールの策定方法が
異なってくるので、プロジェクト管理者は
よって異なるので、その時々の場面にお
エンジニアもしくはSEと綿密に打ち合わ
いて最適な言語を選択してほしい。では、
せを行い、ドキュメントに仕様を記述させ
実際に私がこれまで経験してきた案件別
の言語の取り組みを紹介しよう。
2 案件別の言語適応範囲
る必要がある。なぜならば、特にこういっ
た開発の多くは、機能拡張方法や課題解
WEB STRATEGY vol.4
59
市場性
決方法が特定のエンジニアに依存するこ
トを発揮する。本来であれは設計が行われ
ティブな Web システムを構築する経験が
とが多く、そのエンジニアがプロジェクト
ているので、システムすべてを Java で組み
少ない方が多いという難点がある。
どのような Web システムでどんな
に参加できなくなった場合に、だれもその
たいところだが、Java のエンジニアは単価
これは利用されている言語の事例の多
言語が多く用いられているか ?
仕様を把握できず、ゼロからの開発になっ
も高く、全体の開発予算を大幅に上げてし
さでもあるが、個人的にはこのような環境
同じような Web システムはどの言語で
てしまうからだ。
まうため、このような言語の使い分けを行
においてはケース別ではあるが、別の環境
開発された実績はあるか ?
このような取り組みがなされない場合、
い予算の適正配分を行うのである。
での構築を推奨している。
書籍などのドキュメントが流通して
また、別の意味で「環境に依存する」も
いるか ?( 日本語化されているか ?)
最終的にできあがった仕組みがたとえその
言語を理解していても、開発したエンジニ
環境に依存しているシステムの場合
PHP
人
材
Perl
Java
のとして、開発フレームワークがある。
ア以外、だれも仕様を理解できないような
特に開発会社独自のフレームワークは
コスト
システムができあがってしまう。その場合、
私がこれまで担当した案件で特にやっか
注意したほうがいい。それは、各会社のポ
システムの保守や障害発生時に、
「人に依
いなのが、環境に依存もしくは制約がある
リシーや開発フレームワークの仕様にもよ
選んでいるか ?
存したシステム」であるがゆえに、対応が
場合である。
るが、ある特定の開発言語での開発を前
どの言語が長期的に見て
遅れる原因となったり、工数が通常の工
Windows 系の環境の場合(最近は安定
提としていることは当たり前だが、各社開
メンテナンスコストが安いか ?
程よりも余計にかかってしまうことにより、
していると言われているが)
、取り扱える
発生産性を向上させるために、さまざまな
エンジニア単価は予算に見合うものか ?
開発工数は短くなるようなものを
通常の保守業務より多くのコストがかかっ
言語に制限が出てきてしまうだけでなく、
カスタマイズを行い、結果として『そのフ
てしまうのである。
システム全体としてみた場合に、セキュリ
レームワークで開発した会社のみがメン
ティメンテナンスの労力や、サーバ増設時
テナンスや拡張できる』特殊なシステムと
実行環境 ( サーバ ) は汎用的なもので
中規模∼大規模システムの場合
のライセンスコストの問題など、開発言語
なってしまうのである。
あるか ?
以前の問題も多々あり、非特定エンドユー
プロジェクト管理者は環境の構築のみ
独自のフレームワークに依存する
中規模∼大規模のシステムを構築する場
ザー向けのシステムを構築する環境として
に気を使い、この「フレームワーク」を
システムとなっていないか ?
合の最近の傾向として PHP+Java の組み合
はそもそも向いていない。
見逃してしまうケースもあるが、私の経験
使用データベースとの相性はよいか ?
わせを採用するケースが多い。理由として
企業によっては業務アプリケーション
上、ある特定の会社のみで利用されてい
セキュリティは安心か ?
は、根幹となる部分については安定性のあ
の延長線上で、Windows 環境での Web
るフレームワークは、ほかの会社への保守
る Java、機能の拡張や仕様の変更を頻繁に
サービスを展開しているところもあり、基
移転、
機能の拡張が不便になるだけでなく、
Ruby
少ない
低い
高い
コスト
3 各開発言語の人材の流通量とそのコスト
言語選択における選択ポイント
実現したい内容
環境
人材
行う部分は PHP を利用しそれぞれの言語
幹システムを Windows で構築している企
その会社のみしか対応できないため、開発
の特性を生かそうというのである。特にフ
業など、連携部分を考えた場合や特定の
費が「適正な価格なのか ?」がわからなく
確保可能か ?
ロント部分に PHP を採用する理由として
ユーザー向けの業務アプリケーション的
なることがあるので注意が必要だ。既存の
市場として選択した言語のスキルを
は、大規模システム開発の場合、要件が膨
な Web サービスの場合、メリットもある。
システムにフレームワークが利用されてい
もった人材が流通しているか ?
大であるため、複数エンジニアが要員とし
だが、言語としてみた場合、ASP などの
た場合、ときには「そのシステムを捨てる」
市場性
コスト
環境
人材
サービスレベル
将来性
4
プロジェクト管理者が開
発言語を選択するうえで注
意しておくべきポイント
社内もしくは外部にて利用して人材が
注目の言語「Ruby」
将来性
の「キレイ」を併せ持ったフレームワーク
という評価を受けている。プロジェクトを
最後に私が最近注目している言語につい
管理するうえで、
「生産性の向上」
「工期の
て必要になる。市場に PHP から習得する
技術者は業務システム開発経験としては
覚悟も持たなければならない程、致命的な
て紹介したい。それは、最近、開発者の間
短縮」
「市場として流通」
「実績」が気に
エンジニアが増えているため、人材が多く
優秀な方が多いことは多いが、デザイン性
問題であるということを知っていなければ
将来にわたって利用される可能性の
で注目を浴びている、Ruby の開発フレー
なる部分であり、
「生産性の向上」
「工期の
流通しており、プロジェクトメンバーを集
の高いサイトや、ユーザー向けインタラク
ならない。
ある言語か ?
ムワークである
「Ruby on Rails」
である。
「簡
短縮」はさまざまな開発者が評価している
めやすいため要員確保というメリットがい
言語のバージョンアップは頻繁に
単で迅速に開発できる」
「かっこいい Web
ので、あとは Ruby での開発実績や開発者
ちばん大きな理由である。これは、さらに
行われているか ?
アプリケーションができる」などと称賛さ
としての人材市場がどこまで広がるかに期
れている。今後の Web システム開発業界
待したい。
別のプロジェクトを連携させる際や、シス
テムの保守を行う際、担当者を変更させる
際など、システムを「人」に依存させない
プロジェクト管理者が評価すべき言語選択のポイント
ためには重要なポイントである。
60
多い
また、大規模プロジェクトの場合、シス
これまで、各言語の特徴や適応されるプ
テムの設計と開発を同一人物が行うことは
ロジェクトの事例を紹介してきたが、プロ
実現したい内容
どんなユーザーにどのような
これらの中でやはり私がいちばん重要視
で鍵となるフレームワークとなる可能性を
するのは「人」に携わる部分である。どん
もっている。開発言語「Ruby」はもとも
なに優れた言語であろうとも、設計を行う
と、ネットワーク応用通信研究所のまつも
のは人間であり、プログラムも人間が記述
とゆきひろ氏が開発した「国産」の言語で
する。プロジェクトを管理する立場の人間
あるが、人気が出てきたのはデンマークの
ほぼなく、仕様を伝えるのはドキュメント
ジェクトの管理者が開発言語を選択するう
サービスを提供するシステムなのか ?
は開発手法や要件も大事だが、最後は人
David Heinemeier Hansson 氏が Ruby で記
で行われる。このような仕様に基づき忠実
えで注意していかなければならない人材の
それを提供することによってユーザーは
に助けられ、人に泣くという点を忘れては
述したフレームワーク「Ruby on Rails」を
に開発しなければならない場合や、特に仕
状況と、判断のポイントをまとめた 3
どんなメリットが得られるのか ?
いけない。だから、言語の将来性も考慮し
リリースし、注目されるようになった 5 。
4
。
様の変更が行われないような個所や根幹に
私の経験に基づくものなので、あくまで参
納期はどれくらいか ?
つつ、いま現在、優秀な人材が多くの望め
これは最近の案件で推奨する PHP+Java
なり得る部分については Java がそのメリッ
考として見てほしい。
どのような機能を実装したいのか ?
る言語を選ぶとよいだろう。
の採用基準である、PHP の「速い」+Java
WEB STRATEGY vol.4
5 Ruby on Rails(www.rubyonrails.org/)
WEB STRATEGY vol.4
61