システム開発内製化のポイントは技術選定と非機能要件定義
時代の移り変わりが早い現代では、システム開発の内製化をしたい企業が多くあります。しかし、多くの企業が内製化に難航しています。
まず、内製化とは一言で表せば「自社のシステムは自社でほぼ全て作る」ことです。100%作ることにこだわる必要はありません。要するにスピード感を持って、システムをニーズに合わせて修正・新規開発し、変化に適応することが目的です。
内製化のための採用と教育
まず内製化のためには自社でシステム開発ができる人材を用意する必要があります。そのため、新たに採用するか、社員を教育するか、または両方を行う必要があります。
ここで技術選定がポイントになってきます。技術選定とはシステム開発をする際にどんな技術でそのシステムを作るかを表しています。
そして、この技術選定次第で採用・教育の難易度が決まります。
例えば、以下のサービスを使えばテキストからスマホアプリを作ることができます。
もし作りたいシステムがテキストから作れるのであれば、採用も教育も不要です。プログラムが分からない担当者であっても内製化はできます。
しかし、作りたいシステムがプログラム言語を使って作られている場合、前提としてその言語が分かる人材を採用するか、教育する必要があります。
つまり、システムをどうやって作るか。技術選定次第で採用と教育の難易度が決まります。
非機能要件定義に注目した技術選定
作る技術は常識や慣習にとらわれず、できるだけ簡単なものを選択すべきです。その選定がうまくいけば、採用と教育のコストが激減するからです。
では具体的にどんなシステムを作るか詳細を定義する必要があります。これが要件定義です。そして、要件定義には機能要件と非機能要件の2種類があります。
機能要件
システムにどんな機能が備わっているかを整理したものです。これはシステムニーズを理解している担当者であれば正確に列挙が可能です。
非機能要件
機能以外の要件です。具体的には以下が挙げられます。
可用性
性能・拡張性
運用・保守性
移行性
セキュリティ
技術選定をする際は2段階で決定することになります。まず機能要件で選定します。その技術やサービスがやりたい機能を備えているかチェックします。その次に非機能要件を満たしているかをチェックします。
非機能要件が満たしているかのチェックは、その技術やサービスが出しているドキュメントやレポートをしっかり読む必要があります。また、記載されていないこともあるため、その場合はサービスのサポートに問い合わせたり、営業と話したりする必要があります。
初期フェーズのシステムは機能要件重視で良い理由
しかし、初期費500万円以下で新しくシステムを開発するなどのケースの場合は非機能要件は無視して良いことがほとんどです。
なぜなら、非機能要件定義は「利用者が増えるほど厳しい要件になっていくから」です。
例えば、Googleの検索サイトにアクセスできなくなったことはありますか?多くの人が1回も経験ないでしょう。これは利用者が数億人のため非常に高い非機能要件が要求されているためです。
では、Googleと同じ非機能要件を自社に設定する必要はありますか?それは無いでしょう。非機能要件を満たしていないことによる障害による損害と、機能要件を満たしていないことによる損害の天秤にかけるべきです。
初期フェーズの多くはむしろ必要な機能を揃えることができずに、システム自体にニーズが無く失敗することがほとんどです。そのため、非機能要件をある程度犠牲にして良いとさえ考えています。
そして、システムに人がついてきた段階で徐々に非機能要件の要求を上げて、それに変わるシステムにリプレイスしていくのが良い流れだと考えてます。
とにかく重要なことは、簡単にシステムを開発する技術を選ぶことです。その意思決定で今後のシステムにまつわるコストは大きく変動するからです。
この記事が気に入ったらサポートをしてみませんか?