とあるStartupに勤めるエンジニアの技術ブログ

Salesforce、テスト関係の技術ブログなどを書く予定

ノーコード/ローコード開発時代における技術選定

はじめに

先日のテラスカイ横山さん、TAOドライブ米井さんとの収録で、Salesforceでのノーコード/ローコード開発とプロコード開発の技術選定の基準について話しました。

migration.fm

とても複雑な問題であり、その場はあまり深く踏み込まずに終わりました。その後、独りで掘り下げて考えてみたので、私なりにエッセンスをまとめたいと思います。

 

技術選定基準

技術選定するために必要なことはなんでしょうか?
今回はノーコード/ローコードで開発すべきか、プロコードで開発すべきか、どちらにすればよいかを判断するための基準が必要だと考えました。

 

私が考えた技術選定の基準は下記の3つになります。

  1. 価値 Value
  2. 複雑さ Complexity
  3. 技術力 Technical Capabilities

 以下では、それぞれについて説明していきます。

価値 Value

まずは、システム化する対象である業務の「価値」です。

価値の高い業務はプロコードで開発すべし、というわけではありません。業務要件を満たすことができれば、ノーコード/ローコードで開発しても問題ありません。業務の価値が高いとその性質上、使い勝手のよい機能で実現することが求められます。反対に、業務の価値が低ければ使い勝手の面で妥協しやすい面があります。

 

具体的には、プロコード開発では一括で処理する機能が作れても、ノーコード/ローコード開発ではひとつずつ処理する機能しか作れないことがあります。一括処理ができず操作手順が多くなれば操作に時間がかかってしまったり、ミスを誘発してしまったりします。

 重要な業務であれば、このようにユーザーの負担が重くなる妥協はしにくくなります。このようなケースでは、使い勝手を考慮してプロコードで業務機能を開発すべきでしょう。

 逆に、価値の低い業務、利用頻度がそれほど高くなく時間をかけて対応できるような業務では多少の使い勝手を犠牲にしてもノーコード/ローコードで開発したほうが費用対効果が良いと判断できます。

 

つまり、システム化する対象業務にどれくらいの価値があり、コストをかけて開発してよいか、が技術選定のひとつの基準となることが分かります。

 

複雑さ Complexity

次に、システム化する対象となる業務の「複雑さ」です。

現時点ではノーコード/ローコードによる開発には限界があり、画面や処理の複雑さによって実現できないことがあります。

 

具体的には、勤怠の残業計算のように複雑な条件があるものは、ノーコード/ローコードでは開発しきれません。これはノーコード/ローコードでは主にGUIでロジックを構築していくため、複雑な処理を実装することに向いていないためです。簡単なロジックであれば手軽に実装できてしまうノーコード/ローコードの限界です。

そのほかにも複雑な表形式の画面、ダイアログボックスを駆使するような画面などは作成できません(次第に機能が拡充されてきているため、複雑な画面も開発できるようになってきています)。

 

以上のように、業務や機能の複雑さによってはノーコード/ローコード開発では実装できないことがあります。今後、そのため、将来にわたってどの程度の複雑さを持つ機能となるか見極めることが重要な基準となります。

 

技術力 Technical Capabilities

最後に、システムを開発・運用する組織の「技術力」です。

組織の技術力としてはシステムインテグレーターのように外部から調達する技術力も含めて考えます。外部の開発会社を活用するためにも技術力が必要です。自社に活用するための能力を持っていない場合には技術力があるとは言えないこともあります。

 

この技術力が技術選定の基準になる理由としては、自社のレベルに合った技術を利用すべきだと考えるためです。例えば、開発する機能が自社にフィットしきらない可能性があります。システムでできること、できないことを理解しきれず、開発会社の都合が良いように開発されてしまい、やりたかったことを実現しきれないことがあります。また、今後の開発・保守をタイムリーに実施するためには自社メンバーが開発・保守できることが重要です。

 

以上のようにビジネスを迅速に成長させるために、自社が保有する技術力に合わせた技術選定が重要になります。

 

夜も眠れない問題

技術選定に迷わせる問題として、時間による変化があります。

最初はパイロット的に事業を始めると業務としても価値は低い状態から始まります。時間が経過し事業が成長してくると業務の価値複雑さが増してきます。事業の成長に合わせてシステムを成長させていく必要があります。

システムを成長させるためには適切なタイミングでノーコード/ローコードからプロコードに切り替える、いつでも機能追加できるように保守性を維持する、などソフトウェア・エンジニアリングが重要です。つまり、組織として技術力がなければシステムを成長させていくことができません。

 

このように今回挙げた基準はそれぞれ関係しており、かつ将来をある程度予測した上で事業やエンジニアリング組織をどのようにデザインするかに影響します。自社の将来像や今後の戦略に関わる問題となるため、技術選定は非常に悩ましい、難しい問題だと言えます。

 

まとめ

ノーコード/ローコード開発時代における技術選定の基準として、価値複雑さ技術力の3つご紹介しました。それぞれの状態によって選択すべき技術が変わってきます。これらの状態を見極めた上でノーコード/ローコードで開発するか、プロコードで開発するか選択することが大切です。

 

技術選定に必要な基準がここで挙げたものだけではないと思います。目先の利便性や開発スピード、コストだけに惑わされず、自社の未来に合った技術を選定できるようになる一助になれば幸いです。

 

この記事は、 note.com に投稿した記事の転載になります。

note.com