アプリケーション開発における最適な手法の選び方–前編
今回は「アプリケーション開発における最適な手法の選び方–前編」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
現代は、「あらゆるビジネスはソフトウェア会社である」という考え方が一般的です。これは、ソフトウェアにおける品質とCMMI(能力成熟度モデル統合)の父であるWatts S. Humphrey氏が、20年前に述べた言葉です。企業のデジタルトランスフォーメーション(DX)の普及や新型コロナウイルス感染症などによる社会環境の急激な変化により、ビジネスにおけるスピードは加速しており、より柔軟で迅速な対応が求められています。
そうした現状においてアプリケーションを作成しようとすれば、開発チームや外注に頼り過ぎると、納品までに「3~6カ月かかる」と言われ、また実際に利用する現場の業務に関する知識が十分でないことにより、最大限に有効なものを作成することは困難です。人口減少に伴うITエンジニアの確保も大きな課題となっており、業務における課題やゴールを理解している現場に近い人材によるアプリケーション開発が注目されています。
今日のアプリケーション開発には、ハイコード(スクラッチ開発)、ローコード、ノーコード、さらにはパッケージ開発など多くの選択肢があり、それぞれの適性に合わせた手法を選択することが重要です。
前編では、ハイコード(スクラッチ開発)とパッケージ開発アプローチの長所と短所について紹介します。
ハイコードアセンブリーは、高度に熟練したコードの記述とデプロイが求められます。開発者は、JavaScript、C#、React、Angularなどのフレームワークやプログラミング言語、またはモバイルやネイティブアプリケーション向けに特別に設計されたフレームワークを活用します。
このアプローチは、コードのデプロイサイクルと密接に結び付いた「コード駆動型」エクスペリエンスに最適です。開発の自由度が高く、ビジネスアプリケーションからゲームまで、あらゆるタイプのソフトウェアの開発をサポートします。ハイコードを使用する場合、高度な計算アルゴリズムやシステム間のカスタマイズされたコネクターの実装に優れていますが、高度な専門性と高いスキルを持つ開発者が必要です。
また、自社の求める要件を全て搭載することができる上に、一般的に需要の高い機能が搭載されるパッケージソフトウェアと違い、自社に不要な機能が含まれることもありません。初期費用は高額になりますが、システムの改善や改良にも柔軟に対応できるため、運用、メンテナンス面ではパッケージ開発よりもコストが抑えられる場合もあります。
しかし、全ての開発にハイコードを用いると、新たな機能やイノベーションを生み出すといった、開発者がより価値のある仕事をするために必要な時間が奪われてしまう可能性があります。エンタープライズレベルの大規模なアプリケーション開発には数年かかることもあり、開発中に取り巻く状況が変わり、業務プロセスの変化とともに要件が変わってしまうというリスクもあります。ビジネスのスピードに合わせてスピーディーかつ柔軟に対応するといった面では、不利になります。開発期間が長くなればなるほど、開発コストが増大する点にも注意が必要です。
また、属人化の問題も挙げられます。業務が専門的かつ多忙であるといった理由から、特定の担当者のみが業務を行うことで、「その件については〇〇さんでないと分からない」といったことが発生したり、担当者が辞めてしまったりしたことでシステムがブラックボックス化し、業務に支障が出る事態も発生しかねません。特に、レガシーシステムを利用している企業では属人化の問題が発生しやすく、保守メンテナンスができない事態に陥り、業務に支障が出てしまう可能性もあります。