SI業界の理想と現実

コラム ソフトウェア工学概論

達人プログラマーを目指して
「高い品質のプログラムを作らなくてはならないと考えている職人PGの考えは間違っていた?」
https://ryoasai.hatenadiary.org/entry/20101222/1293027129

 SI業界の分野ではその事業内容の特性上、ソフトウェア品質に対する理想を追うことが非常に困難な現状があります。SIerの分野に限らず、主に受託でまかなっている企業は、短い工数でより多くのプログラムを絶えず生産していかなければ経営が成り立たないというところがほとんどではないでしょうか。

 ところがこうした企業こそソフトウェアの保守性・生産性を強く意識していかないと、今後生き残っていくことは難しくなると思います。なぜならハードウェアの性能向上などによりソフトウェアの寿命が延び、繰り返しリビジョンアップを行う必要が出てくるであろうことと、般化された他社製のクラウドシステムと競合していかなければならなくなっていくであろうと予測されるからです。*1

 クラウドを分散コンピューティング技術と見たとき、分類化された業務を複数のシステムが担当するという構図が生まれ、結果としてシステムの置き換えが容易に行われるようになることで競争が激化する可能性が出てきます。いつまで経っても似たようなシステムを作るのに同じ工数・同じ人件費がかかっていては、機能に特化した安価で優れたクラウドシステムに徐々に侵食され、いずれは完全に置き換えられていってしまうでしょう。保守性・生産性が向上することは納期や金額の面で営業力の向上にも繋がりますし、競争力をつけるという意味でもこれらの施策をどう打てるかがカギとなってくると思います。

 ただソフトウェアの保守性や生産性はプログラマだけが担っているものではなく、事業戦略やシステム構成設計・機能仕様設計などの上流工程においても多くの部分が盛り込まれます。あくまで推測ですが、恐らくSIerの方が本当に言いたいのは、(SI業界においては)下流工程の品質担保に対する優先順位は、上流のそれに比べて低くなる傾向にある、ということではないかなと思いました。そもそも上流設計は顧客に見せる必要があり、受託の成否や受託金額に関わる重要な業務ですので、どうやってもしっかりとやらざるをえないんですね。限られた工数でプロジェクトをまわして行くにはおのずと下流工程にしわ寄せがいくという構図です。

 またプログラマのアウトプットは、プログラミングの経験を持った人間でないと評価ができない専門性があり、このため下流工程の品質が十分に議論されないという問題があります。そして一番の問題は、こうした問題が上層部に認識すらされていないということではないでしょうか。このような企業は保守フェーズや新規開発にかかる人件費をどうしても下げることができず、いずれ営業面において競争力を失っていくと思います。

*1:SI 業界におけるクラウドの現状は、今はまだ単なるwebシステム化にしかすぎないのかもしれませんが、近い将来、複数の企業にまたがる分散システム連携まで進化すると思います。なお私が「クラウド」という単語を使う場合は、主に分散コンピューティング技術あるいは分散システム連携の意味で使用します。

コメント