見出し画像

なぜ、ノーコード開発ではシステム開発より開発費を75%も削減できるのか?

こんにちは、企画担当の空野です。

弊社は、ノーコード開発とシステム開発の両方の企画、開発・運用まで行っており、その経験からノーコード開発に関する考え方をご紹介しています。

今回は、ノーコード開発ではシステム開発より開発費を75%も削減できる理由のご説明です。

というのも最近、お話した方から「ノーコードのメリットって何ですか?」と聞かれて、当たり前になり過ぎていた自分に気付かされました。

そもそもシステム開発も多くの人は知らず、ノーコード開発なんてもっと知りません。

そういったわけで、システム開発がなぜそれほど開発費が高くかかるのか。
そのシステム開発と比較して、なぜノーコード開発の開発費が安く、時間が早いのか説明したいと思います。

この記事に向いている方
・Webサービスやアプリの開発を考えたいと思っている企業様
・ノーコード開発に興味はあるが、色々心配でまだ様子見したい企業様

システム開発費の内訳

システム開発、ノーコード開発でも基本的な見積もり方法は一緒です。

とはいっても、見積もり方法にこれが正解というのはなく、下記の3つのタイプがあります。

見積もりの3つの方法
・類推(トップダウン)見積もり
・ボトムアップ見積もり
・パラメトリック見積もり

ここでは、見積もりの方法を詳しく説明したいわけではないので、さらっと説明します。

類推(トップダウン)見積もりとは、過去の事例から予測する方法です。弊社では大雑把に見積もりする時に使っています。
ただ、過去事例がない開発では精度は低くなるのが欠点です。

ボトムアップ見積もりとは、小さな作業単位に分解して、必要な工数を積み上げる方法です。弊社も利用していますが、システム開発会社で一番使われている見積もり方法だそうです。

パラメトリック見積もりとは、過去のデータと関連する変数から見積もる方法です。ファンクションポイント法やLOC法などが有名です。過去のデータが少なければ、効果を発揮しません。

多くの会社で見積もりに苦労していますが、なぜ見積もりが難しいのか?
それは見積もりに与える要因が多いためです。
例えば、要件の変更や開発環境、エンジニアのレベルなど様々な要因があります。

長くなってしまうので、見積もりに関して詳しく知りたい方は、下部で挙げているサイトをご覧ください。

ちなみに弊社では、システム開発もノーコード開発もボトムアップ見積もり方法で見積もりをしています。
案件規模にもよると思いますが、弊社の案件規模だと、画面イメージを作り、お客様とイメージを共有しながら機能の認識合わせするのが一番精度が高くなるため、こちらを採用しています。

上記のような見積もり方法から開発費を算出するわけですが、ざっくりいうと開発費は下記の式で表す事ができます。

画像2

開発費の方程式=単価 ✕ 工数 ✕ バッファー

それぞれ分解しながら、システム開発のノーコード開発の開発費を比較していきます。
前提として、同じようなアプリを開発する場合として進めていきます。

①単価の違い

単価とは、PMやエンジニアなど、1ヶ月の月単価の事になります。
意外かもしれませんが、始めの頃はノーコード開発の単価の方が安くなると思いますが、将来的にはノーコード開発もシステム開発と同様の単価になると思っています。

ちなみに、システム開発の単価は平均100万円です。
どうやってこの金額が決まるかというと、基本的には需要(求める数)と供給(提供できる数)です。

今、PMやエンジニアがかなり不足していて、需要>供給の状態であるため、単価は100万円を超え始めており、開発費も高くなっています。
需要と供給のバランスが崩れており、経験が少ないエンジニアでも単価が高くなるいびつな状況が続いています。この状況は2、3年は続くと思われます。

一方で、ノーコード開発、ノーコードエンジニアの需要も伸びますが、ノーコードエンジニアはシステムエンジニアより学習コストが低く、目指しやすいため供給(ノーコードエンジニアになる人)が上回ってくるはずです。
しかし、実際にノーコード開発をした実感として、ノーコードエンジニアも簡単ではありません。

もちろんノーコードでの開発は簡単なのですが、簡単だからこそ、ノーコードエンジニアに求められるのは、開発できる事だけでなく、顧客とのコミュニケーション、企画・マーケやデザインなど、開発だけでなく開発と別のスキルも必要となります。

そして複合の能力を必要とするノーコードエンジニアであれば、従来のエンジニアよりも高単価になる可能性すらあります。

そういう意味も含め、将来的には同等の単価に落ち着く認識です。(将来的にはノーコードの普及により、システムエンジニアの需要が落ち、優秀なノーコードエンジニアの価値が上がってくるかと思います)

②工数の違い

開発費や速度の差が一番生まれるのがこの工数です。
システム開発=プログラミング(実装)だと思っている方も多いかもしれませんが、実際は下記の開発プロセスと割合になります。 

■工数の式
工数 = 要件定義+設計+実装+テスト
工数の割合
<※参考:一般社団法人 日本情報システム・ユーザー協会の調査>
要件定義:設計:実装:運用テスト = 20%:25%:30%:25%
<弊社:アジャイル開発>
要件定義:設計:実装:運用テスト = 20%:10%:40%:30%

日本情報システムユーザー協会の割合は、組み込みやウォータフォール開発と言われる開発が多いようで(参考にはなりますが)、アプリやWEBサービスだとアジャイル開発が多く、かつノーコード開発だとほぼアジャイル開発で開発されるはずです。
アジャイル開発の開発割合はネットで見つからなかったのですが、弊社例だと要件定義:設計:実装:運用テスト=20%:10%:40%:30%くらいなのでそちらで話を進めます。

20%占める要件定義は、ノーコード開発であってもそこまで変わりません。設計もそこまで変わりませんが、API設計なども考えなくても良いので80%くらいには減ります。
大きく変わるのは、実装そしてテストです。

実装とテストで大きく時間を使うのが下記の3つです。

①コードの実装時間
②バグ、リファクタリング対応時間
③認識違いによる修正時間

この3つがノーコード開発の場合に、大幅に削減できます。

①コードの実装時間
ノーコード開発の場合、コードの実装時間は10分の1以下に減らせます。(使うノーコードツールにもよりますが)

減る理由は、ノーコード開発ではコードを書く必要がなく、部品の組み合わせで機能を実装できるので、実装に悩む時間、書く時間が極端に減るからです。
かつ、そもそも実装を必要としない箇所があり、環境構築等の手間もありません。
例えば、スマホアプリだと、サーバ側と画面側の実装をそれぞれ行う必要があります。
ノーコード開発であれば、画面側だけでサーバ側も一緒に開発できるので、極端な話ですが実装は半分で済みます。

②バグ、リファクタリング対応時間
ノーコード開発の場合は、バグ、リファクタリング対応時間は10分の1以下に減らせます。

そもそも、どうしてバグがでるんだと疑問に思う人もいるかと思います。

なぜバグがでるのか。
一言でいえば、人は判断を間違えるからです。

コードを書く時には、書き方の選択肢が無数に存在します。
どう書くか、何を書くか、その選択肢の積み重ねが機能になるわけですが、その積み重ねで、すべて正しい判断をし続けられる人はほぼいません。

一文字でも、分岐の条件が一箇所でも間違えるだけでバクになるのです。

しかも、動くコードを書ければいいわけでもなく、バクがなく、拡張しやすいコードが求められるので、エンジニアの能力差は大きくなります。

俗に10倍以上の差があるとよく言われますが、今までエンジニアを沢山見てきましたが、その差は十分にあります。

例えば、グーグルの上級副社長アラン・ユースタス氏「一流のエンジニアは平均的なエンジニアの300倍の価値がある」とも言っています。
ビル・ゲイツ氏も「優秀なソフトウェア・プログラマーは平均的なプログラマーの10,000倍の価値がある。」とも言っているくらいです。

そして世の中には能力が中低のエンジニアの方が多く、そんなエンジニアが一から書けば、その開発過程で多くのバグが混入されるのは普通です。

だから、バグがある前提で、テストやソースの品質をあげるリファクタリング(ソースの改善)が必要となります。

つまり、このバグ、リファクタリング対応時間というのが、開発では切り離せない存在なのです。

それがノーコード開発ではどうか?

バグが多く混入されるプログラミングを必要としないのがノーコード開発です。
つまり、間違える判断が少なくなるので、必然的にバグは少なくなります。

さらに、組み合わせる部品は、世界中の人たちが共通で利用しているため、その部品のバグは極端に少なくなります。

これによりノーコード開発の場合は、バグ、リファクタリング対応時間は10分の1以下になります。

ちなみに、ノーコード開発でも部品をどう組み合わせるかの判断は必要にはなります。
そのために、求められる能力はシステム開発と同様に、ロジカルシンキングです。

が、個人的にノーコード開発の方がより高次元であるラテラル・シンキング、クリティカル・シンキングの能力が必要だと思っています。
その理由、ノーコード開発で求められる能力に関しては、長くなるのでまた別の記事で書きたいと思います。

③認識違いによる対応時間
ノーコード開発の場合は、認識違いによる対応時間は10分の1以下に減らせます。

顧客・発注者、PM、エンジニアと欲しい物を説明する時に、多くの認識違いが発生します。

発注側が本当に必要とする要件について正しく理解かつ表現できるとは限りません。その有名な図が下記です。

画像1

では、なぜ認識違いが生まれるのか?
一番大きな原因は人は自分の考えを相手に正しく認識させられないからです。

話す側も頭の中の考えを正しく伝えられません。
聞く側も自分の解釈をいれて聞いてしまいます。
さらに人が多くなればなるほど、その解釈が増えるため、図のような全く違うものがうまれるわけです。

では、どうすれば少なくできるのか?

それは簡単で、実際に目に見えるものを見て触ってもらえば認識違いは少なくなります。
そのためには、目で見て触れるものをすぐに作れるノーコード開発が一番です。

あと、人が減れば認識違いも少なくなります。
ノーコードの実装が10分の1と言うことは、そのまま10分の1とはいいませんが、5~10分の1の人員になるので、認識違いは減ります。

まとめると工数全体の違いは、設計が約80%以下ほど、開発が約10%以下、テスト約10%以下になり、ノーコード開発の工数は約33%以下に減ることになります。

③バッファの違い

システム開発では上記に書いているように、不測の事態が発生しやすくそれに備えて、ある程度余裕、バッファをもたせる事が必要になります。
バッファがなければ、少しの遅れによってその後の工程に全てに影響を与え、更に遅れを生じる事になります。だからバッファが必要になります。

バッファの見積もりではSRSSや単純に工数の1.5倍(今回の計算ではこちらを利用)と乗せる場合もあります。
工数にかかる割合なので、工数が多くなればなるほど増えます。

システム開発の工数では、バッファが大きな割合を占めるとともに、バッファの見積もりと管理が重要になってきます。
この仕事を担うのがプロジェクト管理です。

ではプロジェクト管理とは何か?
プロジェクト管理の本質は「不確実性の管理」です。(リスク管理とも言われます)
不確実性の管理が上手く出来ないと、バッファを使い切る事になり遅延もするし、結果価値あるサービスにもなりません。

システム開発、ノーコード開発における不確実性は3つあります。

システム開発、ノーコード開発における3つの不確実性
・目的不確実
方法不確実性
通信不確実性
※「エンジニアリング組織論への招待」より。色々不確実性の考え方がありますが、一番しっくりきています

ざっくり説明すると
目的不確実とは、何を作ればマーケットに受け入れられるのかわからないこと。
方法不確実性は、どのように作っていくかわからないこと。
通信不確実性は、相手の事は分からないこと。

プロジェクト管理を監視だと勘違いしているPMが多いかもしれませんが、これら不確実性を管理する事がプロジェクト管理の仕事です。

その不確実性をどう最小限にするかは、こちらで書くと長くなり趣旨と異なるため詳しい話は巻末でご紹介した本やサイトをご覧ください。

ちなみに一言で言えば、通信不確実性(コミュニケーション不確実性と言われます)が全ての不確実性の増大や減少に影響を与えるので、不確実性を減少させるコミュニケーションができているかが重要だということです。

さて、長くなりましたが、ノーコード開発ではこのプロジェクト管理がとうなるか。

一番影響するのは、通信不確実性です。
まず、工数の所で記載したように工数が少なくなる、つまり工数が半分になれば、人もほぼ半数以下になります。
人の数が減れば必然的に認識違いは少なくなります。

また、ノーコードエンジニアがMTGに参加することで、認識違いを減らせるようになってきます。
システム開発だと、役割分担が明確かつ専門職であることで、基本は参加しません。
それが、ノーコードエンジニアでは、実装・テスト部分が軽減するので、要件定義、デザイン領域など範囲拡大ができるのです(逆にするべきです)。
むしろ、ノーコード開発の魅力は、ここから生まれると思っています。

次に、方法不確実性も減ります。
そもそもなぜ、方法不確実性が増加するのか?
これは上で書きましたが、エンジニアの能力差が著しく、開発できる機能や品質が変わってくるからです。
それによって、エンジニアによってやってみないと分からない事が増大するわけです。
つまり、未経験の機能と、能力が分からないメンバーが多ければ多いほど、方法不確実性は高まります。
(一般的な受託会社では、基本同じ事はしていないはずなので、頻繁に起こっているはずです。挑戦していないなら別ですが)

それが、ノーコード開発の場合はどうか?
システム開発よりは能力差が出ません。
これも上で書きましたが、システム開発だと一から判断し続ける事が求められますが、ノーコードだと部品の組み合わせで判断が少なくなるからです。
あと、バグも少なるので方法不確実性は減少します。

最後、目的不確実も減ります。
市場に出してみないと分からない事の解決策は、市場に早く出してフィードバックを得る事が一番の解決策です。
なので、要件の変更が発生した時の修正時間がノーコード開発の場合は、簡単に開発できるので減少します。

ということで、3つの不確実性が減少することで、弊社の場合ですがバッファにかかる費用は70%削減(1.15倍)ができます。

まとめ 

上で書いた事を例としてまとめると下記の表になります。

キャプチャ

システム開発と比べて、ノーコード開発だと計算すると75%以上の削減が可能になります。
開発費が減るということは同じように時間も減る可能性もあります。(ここは完全に比例しません。月5人で働いていた分、月2人にしても時間は変わらないからです)

つまり、今まで600万円ほどかかっていた開発は、150万円ほどの開発費で作れるようになるわけです。

これだけのメリットがあるのに、ノーコード開発でできるサービスを、システム開発でやるのは勿体ない。

※開発スタイルや内容、使うノーコードツールによっても変動するため、一概に75%減とはいえません。実際に要件・設計に時間がかかる場合は50%減の時もありますし、要件・設計が簡単で開発がメインの場合は90%減くらいでる場合もあります。

ということで、ノーコードのメリットを享受するためには、まずノーコード開発でできないかを検討し、それからシステム開発を選択する。
それが今後のITサービスの開発に求められるようになるはずです。

最後までお読み頂いてありがとうございます。

ノーコード部について

わたしたちノーコード部では、ノーコードでのアプリ開発依頼を承っています。
開発の速さや費用を抑えられる事ももちろん、サービス企画の提案から、コンセプトに沿ったデザインを提供いたします。
・ちょっとしたオリジナルアプリが欲しいけど、大きな予算はかけられない
・アイデアはあるけど、どういうアプリがいいか分からない
・大手企業のPoCやベンチャーのMVPとして、サービスリリースをしたい
など、他にも気になる事などありましたら下記からお気軽にお問い合わせください!

ノーコード部HP(WebFlowで作成)
https://nocode.c3reve.co.jp/

運営会社:シースリーレーヴ株式会社(Wixで作成)
https://www.c3reve.co.jp/

■参考

ソフトウェア開発見積もりガイドブック
https://www.ipa.go.jp/files/000005108.pdf

エンタプライズ系事業/見積もり手法
https://www.ipa.go.jp/sec/softwareengineering/std/ent01-c.html

システム開発やアプリ開発の見積もり方法を知る。「ボトムアップ」「パラメトリック」とは?
https://onetech.jp/blog/what-is-the-estimation-method-for-system-development-7221

システム開発費の内訳は?ITコストの謎
https://xtech.nikkei.com/atcl/nxt/column/18/00441/091800001/?P=3

プロジェクトのコスト見積り技法ーパラメトリック見積り(ファンクションポイント法、COCOMO法、プログラムステップ法など)、ボトムアップ見積り、類推見積り三点見積り、
https://qiita.com/lymansouka2017/items/1a815f609d47efa43179

この記事が気に入ったらサポートをしてみませんか?