業務改善のすすめ(生産性向上編)
ITシステム開発における業務改善の代表的なものとして、①生産性向上、②品質改善があります。
筆者自身も、長年同じ客先の IT システム開発を経験し、生産性向上に向けた取り組みを実施してきました。生産性向上に向けた取り組みは、コスト競争力の強化だけでなく、開発者の高齢化や人材不足など、企業が抱える問題点の解決にも役立ちます。
本記事では、IT システム開発での生産性向上における具体的な取り組みやノウハウについて、筆者の体験も踏まえて解説します。
1.ITシステムにおける生産性とは
(1)生産性の指標
生産性は、製造業に代表されるように、あるモノを生産するにあたり、労働力など、生産にかかる要素がどれだけ効果的に使われたのかを、割合で示したものです。
生産性の種類のなかでも、労働生産性は、労働者1人当たりでどれだけモノを生産したかを示すものです。
算出式は次のとおりです。
労働生産性 = 生産量 / 労働者数
生産性の向上とは、同じ労働者数で今まで以上の量の生産物をつくりだす、もしくは、今までより少ない労働者数で同じ量の生産物をつくりだすことを意味します。
(2)ITシステムにおける生産性の指標
ITシステムにおいては生産物がプログラムであるため、生産性はプログラミング量とプログラム開発にかかった工数(人月)を基に算出します。
算出式は次のとおりです。
ITシステム生産性 = プログラミング量 / 開発工数(人月)
(注)人月とは、開発者1人が1ヶ月作業することを指す作業量の単位です。
昨今では、開発技術の進歩によりプログラミングの形式も変わってきており、プログラミング量を基にした生産性だけでは、ITシステムの利用者側にとっての価値が判断できないケースも見受けられます。
ITシステムの利用者視点で見れば、対象機能の開発にかかった工数(=コスト)が重要な指標となるからです。
2.生産性に関する問題点とその原因
(1)レガシーなITシステムは生産性が低い
長年利用されているITシステムであれば幾度となく改修が施され、搭載されている機能の数も膨大となっていきます。そのために、全体のプログラミング量も膨大となっているケースがよく見受けられます。
このようなITシステムの改修では、要件に伴って改修するプログラムの影響範囲が広くなり、テスト範囲も広くなることから、開発工数が大きくなりがちです。
そのため、ITシステムの利用者側にとってはコストメリットが感じられず、「生産性が低く開発コストも高い」という印象が残ってしまいます。
(2)生産性とコストとの関係
ITシステム企業においては、「生産性が高ければ、コスト競争力が上がる」と言われています。また、ITシステムの利用者においては、「生産性が高ければ、開発コストが安くなる」とも言われています。
ITシステム企業が開発コストに目を向けるあまり、開発単価の安い外注を活用して開発コストを低減しているケースが見受けられます。
開発コストが下がっても開発工数が削減できていないのであれば、ITシステム開発力(=生産性)を高めるための改善も進まなくなります。
(3)競合他社との比較
自社と同様のITシステムを開発している競合他社では、ITシステムを実現する際に、自社とは異なる開発手法を使っているケースも多々あります。開発者の知識・スキルも異なっているため、単純に生産性を比較することができませんが、ITシステム企業においては、競合他社との差別化を図る必要があります。
ITシステム機能のニーズをとらえて、そのなかで自社が得意とする機能についてのITシステム開発力(=生産性)を高め、自社の「強み」を活かすことが求められます。
3.業務改善のポイント
(1)自動化、少人化を進める
ITシステム開発においては、必ずテスト工程があります。テスト工程も担当者を割り当てて、テストケースの作成からテスト環境構築、テスト実施までを行いますが、この作業も生産性の範囲に含まれます。
テスト工程には、ソフトウェア改修後にITシステムの各機能が正しく動作しているかを確認する「レグレッションテスト」があります。
このテストは毎回同じテストケースに基づいて実施することが多いため、自動化することをおすすめします。これは筆者も経験しましたが、テスト工程を自動化することで作業の少人化が図れ、生産性を向上させることができます。
(2)開発体制と開発力の維持が大切
長年利用されているITシステムは、開発者も経験豊富なベテランが対応しますが、開発手法が古いために、新しい開発者が担当できないケースがよく見受けられます。
新しい開発者には開発手法や開発ノウハウなどを一から習得させなければならず、生産性に悪影響をおよぼしてしまいます。
ITシステムは稼働し続けている以上、小規模であっても改修が発生します。その際にも生産性を低下させないように、開発手法や開発ノウハウは必ずドキュメント化して、開発体制や開発力を維持・継承できるようにしておきましょう。
利用者視点での生産性を意識する
求めている機能がどれだけの工数(=コスト)で開発されるのか、これがITシステムの利用者視点での生産性です。利用者が求めている機能への期待値が高ければ高いほど、付加価値の高い機能といえます。
生産性を改善する際は、対象とする機能の付加価値も意識するようにしましょう。価値の高い機能であれば、利用者側もそれに見合うコストがかかることを認識するからです。
機能ごとのソフトウェア開発規模の妥当性を測定する手段として、「ファンクションポイント法」があります。これは、入出力や内部ファイルなどの数とそれぞれの難易度から、論理的にファンクションポイント(FP)を算出し、開発規模を見積もる手法です。
ファンクションポイント法では、利用者側に見える外部仕様である入出力画面や帳票を基準に見積りを行うため、利用者側との合意が取りやすいとも言われています。
4.実施する際の留意点
(1)常に改善する意識を持つこと
開発効率を上げる方法がないか、手順や運用などで改善するところがないか、日頃から目を向けて組織的に改善活動が行える風土をつくることも大切です。
「人が変われば効率が下がる、時が経てば技術動向や開発手法も変わる」といったことも意識して、環境の変化にも柔軟に対応しながら、生産性の維持向上を心掛けましょう。
(2)業界動向とのズレをなくすこと
ITシステムの業界動向には、日頃から関心を持って注視することも大切です。
筆者も経験しましたが、1つのITシステム開発に長く携わっていると、開発手法や手順などが定着してしまい、IT業界動向の変化についていけずに世間から取り残されてしまうケースが見受けられます。
自社の開発しているITシステムの業界動向や競合他社との比較により、自社の実力値を知り、継続的に改善を行うことが大切です。
5.おわりに
ITシステム開発での生産性向上における取り組みについて、解説しました。
ITシステム企業をとりまく環境は変化し続けていることから、筆者自身も生産性向上に向けた取り組みを現在も継続しています。
本記事が、ITシステム開発での生産性向上において少しでも参考になれば幸いです。
【書式のテンプレートをお探しなら】