基幹システムの開発において「開発スピード」は非常に重要です。開発期間が長引くほどコストがかかってしまいますし、そうした開発ほど、得てして利用者に定着しない基幹システムを生んでしまいがちです。
そこで、開発期間を短縮しようと、多くの企業がアジャイル開発に取り組みます。少数の開発チームで開発全体を小さい範囲に分割し、それらを優先度によって開発・評価・改善していくことで、素早い基幹システム開発が可能になります。
しかし果たして、アジャイル開発を取り入れるだけで開発期間は短縮するのでしょうか?
答えは「No」です。アジャイル開発を取り入れたとしても、それだけで開発期間は短縮されません。むしろ、工数削減を意識したウォーターフォール開発の方が、開発期間を短縮できるでしょう。
そこで今回は、基幹システム開発において、開発期間短縮のための工数削減ポイントについて紹介していきます。
工数削減のポイント
ポイント1.情報をシェアする基盤を整える
基幹システム開発ではほとんどの場合、チームで開発を進めます。ここで大切なことは、チーム全体の工数削減を目指すということです。たとえば、工数削減のためのTipsを持った開発者が、いくら一人で工数削減を行っても、開発プロジェクト全体の開発期間短縮には至りません。このため、チーム全体の工数削減が、大幅な開発期間短縮に繋がります。
そこで、情報シェアの基盤を整えましょう。工数削減のためのTipsを属人化させるのではなく、チーム全体で共有して、全体として工数削減を目指します。
情報をシェアするという作業によって、一人あたりの開発効率は多少下がります。しかし、全体で見れば確実な工数削減になり、開発期間短縮につながります。
ポイント2.重複したコードをフレームワーク化する
プログラムを書くにあたって、コード上のロジック(手順)が重複しそうなのであれば、ロジックをフレームワーク化して重複作業を排除することが大切です。基幹システム開発では、繰り返し発生するコーディングが多々あります。そうしたコーディングを全て一から行うとなると、かなりの工数になってしまいます。
そこで、重複するロジックに関してはフレームワーク化して、繰り返し作業しないよう心がけましょう。こうすることで、工数削減になるだけでなく、バグが減り、トラブル解決にかかる時間も短縮できます。
ポイント3.小さく作って小さく評価する
アジャイル開発でもウォーターフォール開発でも、大切なことは「小さく作って小さく評価する」という開発スタイルです。たくさんのコーディングをした後に、デバック(バグ処理)を行おうとすると、バグの原因特定が難しくなります。そうなると、バグ修正のための工数が余計にかかり、開発期間が少しずつ伸びていきます。
このため、小さい単位でコーディングしていき即座にデバックを行えば、バグ発生の原因が直前に欠いたコードにあると簡単に特定することができます。
ポイント4.重要ではない機能は作らない
会計システム、営業システム、生産システムなど、基幹システムは企業が事業を行っていく上で欠かすことのできない業務システムです。このため、システム規模が大きくなりがちで、あれもこれもと機能を足したくなる気持ちも分かります。しかし、その全ての機能が、本当に必要だと言えるのでしょうか?
当然のことならが、実装する機能が多いほど工数は増え、開発期間は長期化します。反対に、実装する少なければ工数は減り、開発期間は短縮されます。これは当たり前のことであっても、なかなか意識できていない部分です。
多数の機能が備わっているリッチシステムが、業務をスムーズに遂行できるとは限りません。むしろ、シンプルにまとまっているシステムの方が、利用者にとって使いやすく、スムーズな業務遂行が行えます。
そこで「重要ではない機能は作らない」という意識を持ち、必要な機能ばかりを定義するのではないく、「この機能は必要ではない」という要件まで定義しましょう。
ポイント5.利用者のフィードバックを早期に得る
基幹システム開発の基本として、機能要件に利用者の声を反映させて、開発を進めていきます。しかし、文書や口頭で利用者の要望をきいていても、出来上がったシステムが利用者の意見に沿ったものになるとは限りません。
なぜなら、開発後に要求漏れや要件変更が発覚することが多いためです。そこで、ある程度動作確認が取れたものが完成したら、早々に利用者にシステムを公開し、積極的にフィードバックを得ましょう。
おそらく、かなりの確率で要求漏れや要件変更が生じます。しかし、システム開発完了後に要求漏れや要件変更が生じた場合、莫大な修正工数がかかることを考えれば、早期にフィードバックを得ることが重要です。
ポイント6.繰り返しの作業は自動化する
繰り返し発生する作業に対しては、既存ツールや自作スクリプトを使って自動化することをおすすめします。コードのフレームワーク化と同じように、繰り返しの作業はすべてを一から行うことで、かなりの工数がかかってしまいます。これを短縮できれば、工数削減になり、開発期間短縮につながります。
従って、開発者は開発ツールへの豊富な知識や、スクリプトを自作するスキルを持っていることが望ましいでしょう。
ポイント7.エキスパートに相談する
開発者一人一人が心がけておきたいことが、少し考えてわからないことは早急に「エキスパートに相談する」ということです。基幹システム開発に携わっているメンバーの中には、「人に何かを聞くことが恥」と考えてしまう人が少なくありません。しかし、いくらか考えてもわからないこともあり、わからないまま開発を進めることで現状を悪化させます。それなれば、早急にエキスパートに相談し、問題を解決することが大切です。
基幹システム開発のプロジェクトリーダーは、そうした「相談しやすい環境」を整えるスキルも要求されます。
ポイント8.超高速開発ツールを導入する
日本情報システムユーザー協会の「ソフトウェアメトリックス調査2015」によれば、超高速開発の導入によって63%の企業が品質を向上させ、67%の企業がコストを削減し、72%の企業が工期を短縮したと回答しています。
参考:IMKKブログ「超高速開発の現状と基幹システムへの適用」
超高速開発とは、システム開発工数を大幅に削減するための手法はツールを指します。これを取り入れることで、開発期間が短縮しただけでなく、品質やコスト削減に繋がったという企業が多いというのです。
インテリジェントモデルが提供する超高速開発ツール「ODIP」は、GUIベースでのシステム設計に加え、大規模バッチ処理システムとしても活用でき、基幹システム開発の工数を大幅に削減します。
まとめ
ここで紹介した、基幹システム開発の工数削減ポイントは基本的なものばかりです。しかし、多くの開発者が見落としがちなポイントでもあります。基幹システム開発の際はここで紹介したポイントを徹底し、かつ超高速開発ツールの導入をご検討ください。開発期間の短縮だけでなく、品質向上、さらにコスト削減も実現します。