ユーザー企業からみた二種類のSIer - 融通がきかないが信頼できる or 融通がきくが安定性に欠ける

先日、あるユーザー企業の担当者から、次のようなコメントを伺いました。

委託業者(注:SIerのこと)には二種類ある。一つは価格も高く、成果物の信頼性も高いが、融通がきかない。決まったことをきっちり行うが、契約外のことは一切、行わない。もう一つは突発的な依頼にも柔軟に対応してくれ、価格も弾力性があるものの、成果物の信頼性は今ひとつ。

前者は大手で、後者は中小規模のSIerという位置づけになりそうです。開発に携わる身として、考えさせられました。

私にとっての理想形は、ユーザー企業とSIer(として関わる開発者)の上下関係をなくすことです。お互いを尊重し、システムの稼働によってビジネス上のメリット(売上増もしくは経費削減)を享受することにより、関わった人の、仕事へのやりがいを高めることがプロフェッショナルな生き方です。しかし実際には、この二種類のいずれもユーザー企業にとっては対等と位置づけにくい、という示唆と受け止めています。前者は「依頼に対して敷居が高い」、後者は「品質が低いというマイナス面をテコにして、いろいろと無理を言いやすい」という構図です。

この関係性を変えるために必要なことは何か。それは「バグのないシステムを、低価格で納品する」ことです。SIerがそれを当然のように提供できてはじめて、ユーザー企業と対等に、つまり真のパートナーになれるのではないか、というのが私の考えです。当たり前のことを言っているわけですが、この実現が実際には不可能に近いというのが、多くの関係者の実感ではないかと思います。

信頼性を担保するものは何か

私の視点では、それは開発者の力量だけでカバーできるものではありません。どんな開発者でもバグをゼロにすることは至難の業です。よって、信頼性の担保はテスト工程の充実度に関わってきます。

ところが、テストにかかる工数は無視できません。わずかな変更であっても、そこにコードの修正が伴うのであれば、影響範囲を定め、再テストを行う必要があります。五月雨式な変更要求は到底、受け入れられません。回帰テストのためのシナリオ作成はテスト自動化のために有効ですが、シナリオの作成にかかる工数は、カバー範囲を拡げれば、いずれ開発工数に匹敵するものになるでしょう。

"融通がきかない" とは、信頼性、つまり品質を担保するために必ず十分なテストを行うことの裏返しです。"価格が高い" という不満で多いのは、軽微な修正でも想定以上の金額を請求されたという話ですが、それはテスト工数が含まれているため、ということが理解されにくいのも一因です。

つまり高い信頼性は、パターン化された作業(融通性を極小化する)と、再テストの工数(価格は上がる)に担保されているということです。

そしてユーザー企業は、信頼性を損なうことなく、融通性と価格を見直してほしいと願っています。しかも昨今では、これに加えて納品までの工期も短縮してほしい、つまりスピードを上げてほしいという要望が加わっています。この対応が業界最大の課題であり、他社との差別化要因(ビジネスチャンス)でもあります。

バグゼロを実現するために

バグゼロの実現のためにできることは何か、はすでに知られています。要求仕様の段階で品質を作り込み、要求レベルの矛盾を生じさせないこと。できるだけ作り込む規模を最小化し、あれもこれも盛り込まないこと。パッケージソフトを活用するなどして、プログラムを書く量自体を減らすこと。実績のあるコードを再利用すること、などです。

ここには「人件費の削減」は一切、入り込むことはありません。工数を減らすことで開発費と納期を圧縮することが主眼です。

しかし実際には、開発側の立場で、本気で工数を減らすという取り組みが図られることは多くありませんでした。それは開発者の雇用という視点もありますが、私の経験では、それよりもユーザー企業が要求を減らすというアプローチに必ずしも協力的でないことが多いと感じています。そのような状況の中で、バグゼロ化のためには別の取り組みが必要と考えるようになりました。

超高速開発というアプローチ

要求仕様を定型的な設計書として書き表すことができれば、コードの自動生成へ結びつけることができます。そもそもの設計書の論理矛盾、もしくは自動生成ツールの不具合という要因は残るものの、これまでの開発で多くを占めていたケアレスミス的なバグはゼロになります。過去の開発経験ではありえないほどバグの発生率の低減化することで、ユーザー企業の信頼性は著しく向上します。

採用するツールの特性にあわせて、要求を変えてもらうということは、ありえます。まったく自由な要求に合わせるのであれば、これまでと同じく、すべて開発者による手作りしかありません。しかし超高速開発ツールの進化に伴い、ユーザー企業の要求と、開発の自由度(カスタマイズ性)は合致しやすくなっています。

改めて、SIerがユーザー企業と対等な関係を築くためには、「バグのないシステムを、低価格で納品する」というサービスを提供することが大前提となります。実現方法は問われないのですが、私としては人件費の削減はこのテーマにはまったく効果がなく、ツール利用による自動化の推進にメリットがある、と考えています。

開発ツールへの品質要求はシビアになる

これは自戒を込めて書きます。自動化の成功のためには、開発ツールのバグは致命的です。「ユーザー企業とSIer」の間にあった、バグ発見時のもやもやとした感情が、そのまま「SIerと開発ツールベンダー」に引き継がれます。そして開発ツールベンダーの品質向上は、大量のテストシナリオで裏打ちするしかなく、その実現には人件費がかさみますが、さりとてツールの価格を上げると優位性がなくなります。この困難さの克服が、開発ツールベンダーの経営上の最大の課題です。

SIにはSIの難しさがあり、ツールベンダーにもまた独自の困難さがある。それを承知した上で、私たちはツールベンダーとしてやっていくという決意のもと、これまで製品を出荷してきました。11月7日に開催される Wagby Developer Day 2014 では、そういうお話も盛り込みながら超高速開発の醍醐味と未来像をお伝えしたいと思います。