提案書評価のポイント

2. 設計力を評価する | 4. 見積もりの妥当性を評価する

3. 技術選択の能力を評価する

技術選択力を知ることはできるのか

システムの開発を行うにあたっては、さまざまな場面で使用する技術の選択を行わなければなりません。多くの場合において、その選択はシステム開発の専門家である開発企業に大きく依存することになります。したがって、開発企業が妥当な技術選択をする力を持っているかどうかは、開発の質を左右するファクターとなります。

では、どのようにすれば提案書の段階で開発企業の技術選択力を推し量ることができるのでしょうか。残念ながら、技術選択力のすべてを提案書のみから読み取ることは難しいかもしれません。ただ、その一部を推測することは可能です。優れた技術選択を行うためには、技術について熟知していることと、妥当なトレードオフ判断を行う力の二つが必要です。ほとんどのケースにおいて、技術選択に常に成り立つ唯一の正解はありません。それぞれの選択肢にはメリットとデメリットがあり、そのトレードオフを判断することが求められるのです。

技術について熟知しているかどうかは、技術ごとに評価しなければならないことなので、どのような状況においても当てはまることをここで説明することは困難です。しかし、開発企業に妥当なトレードオフ判断を行う力があるかどうかを推し量る方法は、お伝えすることができます。

図1. 技術選択力の構成要素

トレードオフ判断力の推し量り方

提案書の段階で開発企業のトレードオフ判断力を推し量るためには、開発言語の選択理由を尋ねてみることが一つの方法です。提案書の段階でも、システムの各構成要素をどの開発言語で開発するかということは想定しているはずです。評価のポイントは、きちんとトレードオフを整理して選択理由を答えることができるかどうかです。

開発言語の選択におけるトレードオフとしては、言語ごとの実行速度の高低、同一機能を実現する際に書かなければならないコード量の大小、プログラミングの難易度、予定している開発メンバのスキルなどが挙げられます。

実行速度の高低と同一機能を実現する際に書かなければならないコード量の大小、そして実行速度とプログラミングの難易度は、一般にトレードオフの関係にあります。必要なコード量が少なくて済む言語(以下、生産性の高い言語)、プログラミングの難易度が低い言語は、一般に実行速度が速くないことが多いです。実行速度の高低はシステムのパフォーマンスに影響しますし、スケーラビリティの観点からも考慮が必要です。将来的にシステムの規模を拡張する可能性がある場合には、実行速度の低い言語を安易に選んでしまうと後々の拡張時に高いコストを支払わなければならないことになる危険があります。

もう一つ重要となるのは、予定している開発メンバが選択肢となっている言語に関するスキルをどの程度持っているかということです。生産性の高い言語を使ったとしても、開発メンバがその言語に慣れていないような場合には、言語を使いこなせずにむしろ生産性が下がってしまうということも起こりえます。一方で、開発が長期にわたって続くことが予想されるような場合には、トータルコストを考えて一時的な生産性の低下は許容し、開発を通じてメンバに生産性が高い言語のスキルを付けさせていくことを選択する場合もあるでしょう。

図2. 言語選択のトレードオフ

開発企業がきちんとこれらのトレードオフを整理することができているかどうか。これによって、開発企業のトレードオフ判断力を推し測ることができるでしょう。なお、通信・ネットワーク開発の場合には開発の規模がある程度大きくなると、開発工数のかなりの部分をプログラミング言語にはほとんど依存しない上流工程に費やさなければならなくなります。よって、そのような開発の場合には、必要以上に言語の生産性ということに固執する開発企業には少し注意しておいた方が良いかもしれません。

無料小冊子のお申込みはこちら

株式会社システム計画研究所のオフィシャルサイトはこちら

通信・ネットワークシステム開発に関するご相談はこちら

サーバ監視・ネットワーク監視ツール isNetSentry-S のサイトはこちら

信頼できるITシステムの開発と利用を支援する技術情報提供サイト「信頼のシステム開発.COM」はこちら