要件定義のアプローチ

要件定義の基本

すべてをシステムで解決してしまおうとする要件定義には注意が必要である。システムの成功の可否は要件定義にかかっていると言っても過言ではない。しかし、十分に要件定義の時間を使ったにも関わらず、ITプロジェクトが失敗することがある。

規模別の要件定義

システム構築の規模によって、要件定義の粒度が変わる。小さなITプロジェクトの場合は要件定義をせずにプロトタイプを作りながらシステム構築を進めるといった方法がある。これをアジャイル開発、プロトタイプ開発と呼ぶ。

要件定義の本質

要件定義の粒度は時間を掛ければ細かくなるわけではない。ユーザー側でも要件定義を進めるにつれて、想定している機能の矛盾点が出てくることがある。この矛盾点を解消していくこと自体を要件定義としてはならない。要件定義はあくまで本質的なコアとなる部分から膨らませることが重要である。

対話型要件定義

要件定義フェーズで失敗するパターンは、ユーザー側との対話ではなく、システム会社側がヒアリングに徹する場合である。ユーザー側はITを利用してどのようなことができるかを知らない可能性が高いため、システム専門家がそれを鵜呑みにした仕様で要件を固めてしまうと、製造工程で無駄な工数が発生し予算をオーバーしてしまうことがある。

まとめ

本質的な要件をコミュニケーションによって、はっきりさせていく作業こそが要件定義と言えるのである。さまざまな視点から何度も繰り返し要件をなぞることで粒度が落ちていき、適切な要件定義書となる。何でもかんでもシステム化せず、オペレーションとの関係性を見合わせながら進めることが望ましい。

関連記事

開発の相場

相場の不在

フルスクラッチでのシステム開発に相場はない。相場とは商品が一般的に流通している商品など数が多い場合は、競争原理も働き、金額がある一定の範囲に収まってくるものである。

建築との差異

たとえば、一戸建て建築であれば、建物の規模と資材、それに加えて職人の人工で金額が決まる。フルスクラッチのシステム開発は、つまり極めて特殊な特注品を作るようなものであるため、システム開発に相場という概念が基本的にはないのである。

人件費の実態

システム(ソフトウェア)は一戸建てのように、基本的には材料費はかからない。システム開発の費用のほとんどは人件費である。大工職人の人工と同じように人月単価と呼ばれるSE1人が1ヶ月働く金額で相場を知ることができるのである。

工期の変動

建物を建てることと比べるとシステムやソフトウェアは無形の物となるため、1ヶ月の労働力を推し量ることは困難である。個人のプログラミングの早さによって、納期が早くなったり遅くなったりするのである。

まとめ

SEは過去のプロジェクト参画実績から、同じようなプロジェクトに何度も参画していれば手練れでスキルが高いと評価される。システムに関わる人材の評価が困難な点は、プロジェクトに参画する経験値と、本当の意味でのスキルが比例するわけではないことである。本当の意味でのスキルとはプロジェクトを成功させられるかどうかを指すのである。

続きを見る >

開発費用値下げの危険性

開発手法の選択基準

大がかりなシステム開発においては、ウォーターフォールモデルという開発手法がとられ、設計書などのドキュメント類も整理してから、プログラミングへ着手する。逆に中小規模なシステム開発においては、アジャイル開発と呼ばれ、プログラミングをしながらシステム開発が進められたり、ドキュメント類は簡易にして、プログラミング工程へ着手するといった方法がとられる。状況に応じて開発手法は使い分ける必要がある。

設計書の必要と課題

建築では図面なく建物を建てることはないが、中小規模のシステムについては簡単な概要だけでシステムの開発ができてしまう。もちろん設計書をしっかりと書いて、要件を詰めてシステム開発を進めることができれば、トラブルもなくていいのではないかと言われる。しかし、設計書を作成するにはシステムをプログラミングすることと同じくらい費用が掛かる。

設計書の粒度と要因

中小規模のシステム開発において設計書が簡易になってしまう理由は、ユーザー側や発注側の予算が乏しいという理由がある。建築のパターンの場合は、法律によって作成しなければならない図面や、施主から同意をもらうべき書類などが決められている。システム開発には法的に作成しなければならない書類が明確にされているわけではないため、この粒度が各社・各エンジニアによりバラツキが発生する。

文書管理の現状

中小規模のシステム開発において、最悪の場合は設計書がないケースもある。小さなプロジェクトの場合は予算も少なく特にドキュメント類がないが多くある。あるいは、システムはアップデートされ続けているのにドキュメントはアップデートされていなかったり、ひどい場合にはシステム保守ベンダーが紛失している場合もある。

まとめ

システム開発に時間がかかる理由は、設計書から作成することでプログラミング作業の2倍以上の時間がかかると言われる。いわゆる動作検証の工程まで入れるとプログラミング作業の3倍程度は時間がかかる。また、システム開発はほとんどが人件費である場合が多く、かかる時間に応じて費用が上がる。つまり、非エンジニアが単純に開発費用を値切ると、プログラミング以外の重要な情報を削っていくことになる。

続きを見る >

野良アプリは排除すべきか?

「便利」の裏にある現場IT

シャドーITとは、企業の情報システム部門が認知・管理していない状態で、現場の判断によって導入・利用されるIT資源を指す。具体例としては、LINEやGoogleドライブ、Excelマクロなど、日常業務の中で自然発生的に使われるツールが挙げられる。これは企業としての統制外にある一方、現場の即応性や利便性を追求した工夫の結果でもあり、単なるルール違反と一括りにはできない。ゆえに、これを「排除すべき野良アプリ」として扱うことが妥当かどうか、慎重な見極めが必要である。

IT部門を飛び越える理由

現場がシャドーITを使う背景には、既存システムの使い勝手の悪さや、IT部門の対応の遅さといった事情がある。業務は待ってくれない以上、迅速な判断や情報共有のために、現場が自ら使いやすいツールを選ぶのは自然な流れである。たとえば、社内の共有フォルダではなくGoogleドライブを使ったり、煩雑な申請フローをExcelマクロで簡素化したりといった工夫は、業務効率の向上に寄与している。現場がスピードと柔軟性を求める限り、IT部門の枠組みに収まらないツール活用は今後も続くはずだ。

シャドーITのリスク

便利な一方で、シャドーITには深刻なリスクも存在する。まず、セキュリティが担保されていないツールの使用は、情報漏洩やマルウェア感染といったリスクを高める。また、IT部門の管理外にあるため、データの一元管理ができず、連携の取れないシステムが乱立することで、かえって非効率になることもある。最悪の場合、コンプライアンス違反や内部統制の崩壊を引き起こす可能性も否定できない。利便性の裏には常にリスクが潜んでいるという現実を直視する必要がある。

市民開発と再定義

ただし、シャドーITの存在は、現場が自らITを活用しようとする前向きな姿勢の表れでもある。近年ではDXの進展に伴い、「市民開発」や「ローコード開発」など、現場主導のIT活用が注目を集めている。従来は否定されてきたシャドーITも、企業変革の一端を担う可能性を秘めている。IT部門がすべてを統制するのではなく、現場と協力しつつガバナンスを効かせる視点に立てば、シャドーITは排除すべき“野良”ではなく、むしろ育てるべき“創造”として再定義できるはずだ。

まとめ

現場の柔軟性と全社最適を両立させるには、両者を理解した経営の舵取りが欠かせない。「排除」ではなく「共存」の設計に踏み出すことこそが、企業のDXを推進するための鍵となる。

続きを見る >