ノーコードこそ設計が重要な理由 - 見落としがちな6つの設計ステップ
はじめに
最近、ノーコードツールを使用した業務アプリ開発を担当する部署に異動になり、ユーザー企業様の業務をヒアリングしながらノーコードツールに実装してDXを提供する役割となりました。立ち上がったばかりの部署ということもあり、開発の進め方も手探り状態です。
「ノーコードだからサクッと楽々開発できるだろう」と思っていましたが、実際にやってみると、ことはそう簡単ではありませんでした。今回は、その経験から学んだノーコード開発における設計の重要性と、実践的な設計ステップについて共有したいと思います。
ノーコード開発の理想と現実
理想:「とりまサクッと作ってみますか」
ノーコードツールの最大の魅力は、コーディング不要で素早くアプリケーションを構築できることです。要件定義もそこそこに「とりあえずサクッと作ってみましょう」となりがちです。
現実:サクッと作れない罠
しかし実際は、とりあえずツールを触り始めて、あーでもないこーでもないとごちゃごちゃいじくりまわしているうちに日が暮れる…なんてことがよくあります。設計を飛ばしたプロジェクトは迷走しがちですし、「アジャイルだから」とドキュメントを何も残さないのも後々困ります。
なぜ設計が必要なのか
ノーコードだからといって設計を飛ばすと、ゴールが不明確で開発が迷走したり、特定ツールに依存しすぎて将来の変更が困難になったり、ドキュメントがないせいで引き継ぎで苦労したり…といった問題が起きます。
特にER図のような、ツールに依存しない設計ドキュメントを残しておけば、将来ツールを変更する際にも役立ちます。
従来のシステム開発ステップのおさらい
ノーコード開発に最適化した設計ステップを考える前に、まず従来のシステム開発のステップを振り返ってみましょう。
要件定義
システムが「何をすべきか」を明確にする工程です:
- ユーザーの業務と抱えている業務課題を理解
- 機能要件・非機能要件の整理
- 業務要件(ビジネスルール、業務フロー)の把握
- 制約条件(予算、スケジュール、技術的制約)の確認
外部設計
システムの「外から見た仕様」を設計する工程です:
- ユーザーとシステムとの境界、インターフェースを設計
- 画面設計、帳票設計
- インターフェース設計
- データベース論理設計
内部設計
システムの「内部構造」を設計する工程です:
- モジュール設計
- データベース物理設計
- サーバー、ネットワーク設計
- セキュリティ設計、エラー処理設計
- テスト設計、運用設計
ポイント: ノーコードでは内部設計の多くは考慮しなくてよいはずです。ただし、テーブル性能を考慮した非正規化のような調整は必要になることがあります。
ノーコード開発に最適化した6つの設計ステップ
ウォーターフォール開発のようにガチガチに仕様書を作って進めるのは、ノーコードのメリットを殺してしまいます。一方で、アジャイル開発だからといってドキュメントを書かないのはアンチパターンです。
そこで、開発スピードと品質のバランスを意識した、最小限のドキュメントで進める設計ステップを提案します。
1. データ概念設計
目的
管理すべきデータとその関係性を整理する
作業項目
- エンティティの洗い出し
- エンティティ間の関係性の整理
- データのライフサイクル定義
- データフローの把握
成果物
- ER図
- 状態遷移図
- ユビキタス言語
業務分析の中で「管理すべき情報」や「業務で扱うモノ・概念」を洗い出し、それらの関係性を整理します。作成したER図のままノーコードツールで表現することはおそらく不可能ですが、「本来こうあるべき」という概念整理をしておくことが重要です。これにより、ノーコードに落とし込む際の妥協点を探りやすくなります。
また、ユーザーが業務で日頃使っている用語は、第三者から見ると不思議な言葉だったり、往々にして揺れがあったりします。ユビキタス言語として整理して辞書を作るのも良いでしょう。
2. 業務設計
目的
ユーザーが実行する業務を理解する
作業項目
- ユーザー役割の定義
- 各役割の業務の洗い出し
- 業務の実行頻度・優先度整理
- 業務間の依存関係の把握
成果物
- スイムレーン図
ユーザーが日々実施している業務は、我々から見ると複雑怪奇なフローで行われていることが多々あります。現状を理解して課題を整理せずして、あるべき理想の姿を描くことはできません。いわゆるAs-Is/To-Be分析です。
業務の流れを図解するにはスイムレーン図がわかりやすいです。業務フローの中でシステムに置き換えられるところが、ノーコードツールで表現する部分になります。
3. UI設計
目的
ユーザーとシステムの接点を設計する
作業項目
- 画面構成の概要設計(ワイヤーフレーム)
- 情報の配置・優先順位
- 操作フロー設計
- ナビゲーション設計
成果物
- ラフなワイヤーフレーム
- アクティビティ図
画面に何がどこに表示されていると使いやすいかを整理しておくと、開発段階で迷走しなくて済みます。ノーコードツールのことは一旦忘れて設計し、後からツールの制約と妥協点を探るようにすると、ちょうどいいところに着地できます。
4. ツール選定
目的
要件に最適なツールの選定
評価項目
- UI実現可能性: UI設計をどれほど再現できるか
- データ設計実現可能性: データ概念設計をどれほど実現できるか
ここまで行ってきた設計を踏まえて、どのノーコードツールだと自然に実現できるかを検証します。今まで使用したことのないツールでも、最適だと思えるなら積極的に提案してみましょう。
5. データ物理設計
目的
選定したツールでのデータベース詳細設計・構築
作業項目
- テーブル・フィールド詳細定義
- リレーション・ロールアップ設計
- フォーミュラ・計算ロジック設計
- データ制約・バリデーション設計
- オートメーション設計
- 基本的なデータ投入・テスト
成果物
- データベース構築完了
設計段階で作成したER図、状態遷移図、スイムレーン図を参考に、ノーコード上でデータとアルゴリズムを表現します。
RDBではベストプラクティスといえる綺麗に正規化されたテーブル構成だとしても、ノーコードツール上だとオーバースペックな実装で使いにくかったりします。複数のテーブルをあえて一つにするなど、非正規化をすると案外使い勝手が良くなったりします。
6. 実装設計
目的
選定したツール上でのUI詳細設計・構築
作業項目
- ビュー・フィルター詳細設計
- フォーム・入力画面の詳細設計
- ダッシュボード・レポート設計
- ナビゲーション・操作フロー調整
- 権限設定
成果物
- 各画面・ビューの構築完了
- ユーザー受け入れテスト
- 操作マニュアル
UI設計で作成したワイヤーフレームを参考に、ノーコード上で画面を作成します。ここは案外そのまま実装できるかもしれません。ノーコードだと余白の細かい調整ができないので、ツールの特性をうまく利用するなど、ツールと相談しながら使いやすいデザインを探ってみてください。
ポイント:ツール依存とツール非依存の区別
ここで重要なのは、ステップ1〜3はツールに依存しない抽象度の高い設計だということです。ER図やスイムレーン図は、どんなノーコードツールを使うことになっても共通で使える概念です。仮に将来ツールを変更することになっても、これらのドキュメントはそのまま活かせます。
一方でステップ5〜6は選定したツールに強く依存します。実際の開発では、プロトタイプを作りながら5と6を行ったり来たりして、徐々に実装を詰めていくことになるでしょう。でも、ステップ1〜3で方向性とゴールが見えているから迷子にならずに済むのです。
ノーコードにおける設計の必要性と投資価値
ここでもう一度ノーコード開発における設計の必要性とその投資価値について整理してみます。
なぜノーコードだからこそ設計が重要なのか
実装の見通しを立てないままノーコードを触り始めるとかえって時間がかかるということは記事の冒頭で述べました。しかしそれならホワイトボードに雑な絵を描くだけでも十分良さそうにも思えます。ワイヤーフレームはそれでもいいと思いますが、ER図やスイムレーン図などはきちんと清書するべきだと思います。ここでその理由を書きます。
まず、通常のコード開発では、クラス定義や実装コードを読めば、そのシステムがどんなエンティティを扱い、どんな振る舞いをするのかが読み取れます。コード自体が一種の設計ドキュメントとして機能するわけです。
一方、ノーコードツールでは、すべてがGUIの裏側に隠蔽されています。画面上のフォームやビューを見ても、その裏にあるデータモデルやビジネスロジックの本質は見えてきません。複雑な自動化フローも、ツール独自のUIで表現されているため、初見では何をしているのか理解しづらいことがよくあります。
さらに、ノーコード開発ではコードレビューのプロセスがないため、システムの全体像をよく理解していないエンジニアが悪手となる実装をしてしまう可能性が、通常の開発よりも起こりやすくなります。コードであれば差分が明確でレビューしやすいですが、GUIベースの変更は影響範囲が見えづらいのです。
だからこそ、ER図やUML、スイムレーン図といった標準的な設計ドキュメントが「翻訳機」の役割を果たします。ツール固有の実装と、ビジネスロジックの本質をつなぐ架け橋となり、同時にチーム内での共通理解を促進する基準点となるのです。
長期的視点で見た設計投資のROI
設計に時間をかけることの費用対効果を疑問視する声もあるでしょう。しかし、システムのライフサイクル全体で考えると、その投資価値は明白です。
業務システムは一度作ったら5年、10年、時には15年以上使われ続けます。開発期間が1〜3ヶ月だとすると、運用期間は開発期間の20倍から180倍にもなります。初期設計に3日追加投資したとしても、その効果は10年以上にわたって続くのです。
また、開発時は1〜3名の小規模チームでも、長期運用の間には引き継ぎ、機能追加、他システムとの連携などで、累計10〜20名のエンジニアが関わることになるでしょう。設計ドキュメントがあれば、毎回ゼロから調査する必要がなくなり、引き継ぎコストを大幅に削減できます。
DXがもたらす連鎖効果への備え
最初は「請求書管理を楽にしたい」という小さな要望から始まったシステムでも、運用していくうちに様々な発展を遂げます。
データが可視化されることで経営判断の材料となり、業務分析からボトルネックが発見され、新たな改善提案が生まれます。さらには他システムとのデータ連携、BIツールの導入、将来的にはAIを使った需要予測まで、可能性は無限に広がります。
このような発展を支えるのが、最初に作った設計ドキュメントです。きちんとしたER図があれば、新しいデータ項目の追加も、他システムとの連携も、スムーズに設計できます。最初の設計図が、将来のデータ基盤の礎となるのです。
プロジェクト規模に応じた設計投資の目安
とはいえ、すべてのプロジェクトで同じレベルの設計が必要なわけではありません。目安として:
1〜2週間の小規模プロジェクトでは、ホワイトボードでのラフスケッチ程度でも十分でしょう。ただし、写真を撮って保存しておくことは忘れずに。
1〜3ヶ月の中規模プロジェクトでは、今回提案した6つのステップをフルで実施する価値があります。設計に3〜5日かけても、手戻りを1回防げれば元が取れます。
3ヶ月以上の大規模プロジェクトや、複数部署にまたがるシステムでは、より詳細なドキュメント化も検討すべきです。
設計なしで進めた場合、データ構造の変更で2〜3日の手戻り、UI全面改修で1週間、最悪の場合はツール変更でゼロから作り直しという事態も起こりえます。それを考えれば、初期設計への投資は決して高くはないはずです。
まとめ
異動してからコードを書く機会はめっきり減りましたが、逆に設計する機会は増えたように思います。ノーコードツールの仕様や制約にイラつく悩まされることもありますが、業務分析→設計→プロトタイプ作成→検証のサイクルがスピーディに回せるところは学びが多く、将来にも活かせるスキルだと思います。
ノーコード開発は確かに素早い開発を可能にしますが、それは「設計が不要」という意味ではありません。むしろ、適切な設計によって、ノーコードの持つスピードというメリットを最大限に活かすことができます。
みなさんも、ノーコード開発を行う際は、ぜひこの6つのステップを参考にしてみてください。質とスピードを両立した開発ができるはずです。
Discussion