- コラム
【超高速開発とWeb Performer】第2回:超高速開発は魔法のツールではない
執筆:Web Performerマーケティング担当 T.S.
第1回目は「超高速開発」について、開発現場の課題から紐解き、その課題に対する究極の解決策として「超高速開発」があることを論じました。
※今回初めて読まれる方は下記URLより第1回目のコラムをご覧ください
- 第1回:超高速開発とは
- 1.スクラッチ開発前提で作成した設計書のままツールで構築
- 2.既存のクライアントサーバシステムをWebアプリケーションに現行仕様のまま移行
- 3.ツールの特性を無視したシステム開発
- ①開発工数の削減:生産性向上
- ②属人化の排除:可読性向上(保守性向上)
- ③安定した品質:信頼性向上
- 保守契約の関係で時間的な余裕がない
- 既存システムの画面レイアウト、操作性、処理スピードをそのまま踏襲
- 適した案件とは
ユーザが実現したいことをヒアリングし、ツールで提供している標準機能を利用した代替案を提示する - 適さない案件とは
ツールの標準機能では構築できない要件が前提となっている案件 - ※1「超高速開発」とは、設計情報をリポジトリに保持し、その情報を利用して開発プラットフォームによるシステム構築・テストの自動化により開発工程の短縮化を図り、付加価値の高い工程にリソースを集中させるための取り組み。
- ※2ノンプログラミングをベースにしている超高速開発ツールを想定しています
- アプリケーション開発基盤
めまぐるしく変化するビジネス環境に迅速かつ柔軟に対応して、業務効率向上とコスト削減とともに、ビジネス部門などの利用者へ使い易く視覚的にも優れたユーザ画面をタイムリーに提供して、企業競争力アップを図りビジネス成果に直結させるITシステムを提供したい。これらの企業ニーズに応える洗練されたリッチなユーザインターフェイスを高速で実現できるアプリケーション開発基盤の重要性は、ますます高まっています。
アプリケーションの開発をスピードアップし、高品質を実現することで、企業の競争力をアップして開発とメンテナンスコストを削減する高速開発ソリューションをご提供します。最先端のHTML5やJAVAによる自動コード生成によってマルチデバイス、マルチプラットフォームへの対応を素早く実現します。 - WebPerformer
WebPerformerは、Webシステムを素早く開発できるローコード開発プラットフォームです。
直感的な開発、素早いリリース、自動生成による品質の均一化などにより開発期間が短縮でき、システムを利用するビジネス部門と開発部門との共創型開発を実現し、ビジネス環境の変化にも柔軟に対応したシステム構築が可能となります。
第2回目のテーマは「超高速開発は魔法のツールではない」です。
前回「究極の解決策」と明記しておきながら何言ってるの?と思われるかもしれませんが、超高速開発を実現するうえで、必要な考え方や注意すべきことをきちんと理解することは重要なことですし、なによりも上手に使っていただきたいという思いから、こんなタイトルにしてみました。
前回のコラムで超高速開発について定義※1した通り、超高速開発はシステム開発の効率化を考慮した取組であり、この取組に欠かせないのが、システム構築やテストに利用する超高速開発ツール(以下ツール)です。
そもそも超高速に開発ができるということは、今までプログラマーがシステム設計書に従って自由にコーディングしていた部分を、ツールが代行することになるので、そこには機能的な制約は必ず存在します。機能的な制約もなく、全てのシステム要件に対応できる「魔法のツール」は存在しないと断言できます。(あったら教えてほしいぐらいです)
制約は選択するツールによって違いはありますが、できることとできないこと、得意な機能と不得意な機能は必ず存在します。ツールを使う以上、ツールが持っているポテンシャルを最大限に引き出すことが重要であり、逆にできない(不得意な)部分にまで無理やり使うことは、望ましくありません。
山登りに例えるなら、富士山に登るための標準装備と体力があれば富士山には登れますが、それだけではエベレストには登れません。これはツールの世界でも同じことなのです。(例えが分かりにくかったらごめんなさい)
よくある失敗例
ここでよくある失敗例をあげてみます。
1.スクラッチ開発前提で作成した設計書のままツールで構築
このケースでよくあるのは、要件定義と基本設計まで完了した時点で再見積もりをしたら、要件定義前に見積もった概算金額を大幅に上回ってしまい、なんとか当初の見積もり額に収めるべく「藁にもすがる思い」でツールを採用するケースです。
この場合、設計書の内容がツールを無視した内容となっているので、標準機能では対応できない部分については、代替手段を検討する必要があります。こういったケースの場合、大幅に設計書の内容を変更することは時すでに遅しというケースも多く、できる限り設計書はそのままにして、ツール側で代替手段を模索することが必要になります。
一般的にツールは便宜上、拡張やカスタマイズと称して、自作したプログラムを追加する機能を提供しているものです。(勿論Web Performerにもあります)
これは業務要件上、どうしても実現しなければならない機能に対して、救済処置的な位置づけ※2として提供しているからです。
こうした機能があるからといって、その機能に大部分を頼ることは得策ではありません。前回のコラムでもお伝えした通り、超高速開発を導入するメリットは以下の通りです。
そこにプログラミング工程を持ち込むという事は、①~③のメリットを削ぐことになるからです。
2.既存のクライアントサーバシステムをWebアプリケーションに現行仕様のまま移行
前述「1.スクラッチ開発前提・・・」の派生的な例ですが、ここ最近既存のクライアントサーバシステムをWeb化するための手段として、ツールの利用を検討されるケースが増加しています。
勿論再構築案件として、Webアプリケーションの特性を考慮しつつ、ツールの標準機能をベースにした再設計が可能であれば、ツールを使うメリットを活かした超高速開発は十分に可能です。問題となるのは以下のケースです。
ご想像の通りこのような案件をスクラッチ開発で検討すると、莫大な開発費や時間が必要になります。そもそもクライアントサーバシステムとWebアプリケーションでは、システムアーキテクチャーが違うので、現行仕様のまま移行することがどれほど難しいかは、自明のことと思います。
特にひと昔前に流行ったクライアントサーバシステム用のソフトには、サードパーティ製のオプションツールが充実しているケースが多く、開発者はそれを使うことでリッチな入力操作やビジュアル的に優れた画面を簡単に実現できていました。それと同じものをWebアプリケーションとして実現させるためには、スクリプトの自作や有償・無償のライブラリを探すなど多くの時間と労力、場合によっては追加的な費用を要します。
ツールだったらなんとかなると安易に考えて導入しても、ツールで対応できない部分は、結局拡張やカスタマイズに依存することになり、結果的に納期遅延や予算オーバーに陥るものです。
あくまでも、既存のシステムを「そのまま踏襲」することを想定した例であり、全ての案件に当てはまるとは限りませんが、失敗する可能性の高い例としては押さえておきたいケースです。
3.ツールの特性を無視したシステム開発
このケースでよくあるのは、特にプログラミングスキルの高い企業に見受けられるのですが、ツールを選定するときに、拡張やカスタマイズがあることを前提に、標準機能としてなにが出来て、なにが出来ないかをあまり検討せずに導入するケースです。
この場合も結果的に自作のプログラムを作成することが多くなり、さらにはスキルの高さゆえにツールが推奨していない使い方を独自に模索することで属人性が高くなるために、ツールを導入するメリットが削がれるばかりでなく、その後のツールのバージョンアップにも影響します。
超高速開発に適した案件を見極める
ツールを導入するうえで重要なことは、超高速開発に適した案件かを見極めて、ツールが提供する標準機能をベースに推奨する開発手法に従うことです。
適した案件であれば、それは迷わずツールで構築するべきですが、全てではないにしても一部適さない機能が存在する案件はよくあることです。だからと言って、それだけでスクラッチ開発など他の方法を選択するのも、ツールが進化している現状ではもったいない話です。
端的にいえば適さない案件を「適した案件」にすることができればいいのです。私が推奨している手法は以下の通りです。
“ユーザが実現したいことをヒアリングし、ツールで提供している標準機能を利用した代替案を提示する”
できればサンプルを作成して代替案の有効性を評価してもらうことが重要です。ツールの標準機能でサンプルを構築すれば、スクラッチ開発よりは断然早く作ることができるため、そのメリットを活かして代替案でも問題ないことを早期に確認できれば、超高速開発を導入するメリットを認識してもらうきっかけにもなり、適した案件にすることは可能だと思います。
魔法のツールは存在しない
冒頭でも述べましたが「魔法のツール」は存在しません。しかしツールは使い方次第でスクラッチ開発にはない様々なメリットを、開発現場にもたらすのも事実です。
そのためには、システムを構築する側(IT部門)はツールの標準機能と推奨している開発手法を正しく理解し、システムを利用する側(ユーザ部門)にツールを導入するメリットを共有することが重要だと思います。
超高速開発によって、業務のエキスパートであるユーザ部門と、システム開発のエキスパートであるIT部門それぞれの専門性を活かし、両部門が参画する「共創型」開発を実現することで、急激な社会環境の変化にも柔軟に対応したシステム構築が可能になると考えます。
次回は当社が自信をもって提供する「Web Performer」について、オフィシャルページには掲載していない情報を交えて、公開できるギリギリの範囲でお伝えできればと思っています。
関連するソリューション・製品