IT システム開発における失敗の多くは、仕様や要件を早い段階で 見える化 していないことに起因しています。実際の運用に必要な仕様や性能、使い勝手 が曖昧なまま、開発を進めることには大きなリスクがつきまといます。
何度も会議を重ね、仕様書や要件定義書を作成したのに、いざ稼働してみたら、「あれがない、これがない」、「必要なデータがすぐに出てこない」、「想定した性能が出ない」等、問題が頻出して開発プロジェクトが炎上、誰も使わなくなっていく・・・というパターンです。
IT の重要性が叫ばれて20年、大手企業の巨大開発案件から中小零細企業の小規模案件まで、IT システム投資の失敗という話がいまだに後を絶ちません。
「日経コンピュータ」が2003年から5年毎に行っている「ITプロジェクト実態調査2018」においても、いまだ半数のプロジェクトで何らかの問題を抱えている現状が報告(※日経コンピュータ2018年3月号【 約半数の47.2%が「失敗」】)されています。
どうすれば良いのでしょうか?
少し考えてみましょう。問題の多くが、「現場軽視」と「要件定義の不備」に集約されることがわかっています。しかし、現場は実務に忙しくて協力を得にくい、逆にシステム担当は実務を詳細に把握出来ていない、ある業務は特定の人しかわからない・・・ 。きめ細かい対応をしている実務が多い。暗黙知 に頼って、業務が 属人化 しやすい。良くも悪くも現場が強い日本企業にありがちな状況です。
こうした状況を解決する方法として注目されているのが、プロトタイプ です。早い段階でプロトタイプをリリースして、具体的な操作性や画面構成を確認しながら改善サイクルを回すことで、実践的な仕様検討を可能にするものです。
一般的にプロトタイプとは、原型や基本型、初期モデルや試作品などを意味する言葉です。近年、IT システムが高度化・複雑化するにつれて、仕様や要件を書類で定義することが難しくなっています。
プロトタイプはいわば動く仕様書 としても使え、実際に使うユーザーからの意見や要望を早い段階で反映することができるなど多くのメリットがあります。
仕様書や要件定義書といった書類ベースで進めるのではなく、プロトタイプを作りながら実際の画面内容や構成、使い勝手にフォーカスすることが出来るのです。こうした考え方は アジャイル開発 と呼ばれて、普及が進んでいます。従来型の開発手法である ウォータフォール開発 との比較で、アジャイル開発について考えてみましょう。
ウォーターフォール開発は上図のように、上流工程から下流工程に滝のように流れ落ちていくことからウォーターフォール開発と呼ばれています。ビジネスが単純明快な時代は主流の開発手法でしたが、現代の複雑・多様化した状況に対応出来なくなってきました。
工程にも多様な分類がありますが、おおむね以下のように考えることができます。
(1)調査・分析
(2)企画・立案
(3)設計・デザイン
(4)開発・実装
(5)検証・テスト
(6)運用・保守
仮に全工程を6ヶ月として考えてみましょう。4〜5か月後の検証・テスト工程で、リリース間近に仕様上の不備が見つかるとどうなるでしょうか。この段階で後戻りするには、多くの工程で見直しが必要になり、設計変更や修正作業が必要になり、リリースが間に合わなくなり、追加コストも必要になります。仕様を見落としていたのは誰なのか。責任の押し付け合いが始まり、IT ベンダーとの間でトラブルになる事例も少なくありません。
アジャイル開発では上図のように、短期間で開発工程サイクルを回しながら進めていきます。
全工程を6ヶ月とすると、アジャイルの場合は最初の1〜2ヶ月から動くソフトを共有して、改善サイクルを回していくことになります。評価・改善・機能追加を行う機会を何度も持つことが可能なのです。
ウォーターフォールとの比較で、特にポイントとなるのが 評価・改善 です。検証・テスト は仕様書通りに動いているかの確認でしかありません。現場の業務担当者がテスト段階で画面を見て、○○の場合はどうすれば・・、□□の選択枝がない・・、△△も一緒に表示されると便利なんだが・・・と気付いても、ウォーターフォール開発の検証・テスト段階では仕様の追加、変更はもう出来ないのです。
一方のアジャイル開発では、(6)評価・改善 の機会を何度も持つことが出来るので、画面構成、仕様、必要な項目等の確認モレが起こりにくく、漸進的に機能や使い勝手を向上させていくことができます。
(1)調査・分析
(2)企画・立案
(3)設計・デザイン
(4)開発・実装
(5)検証・テスト
(6)評価・改善
(7)運用・保守
プロトタイプを多くの人が使うことで、業務上の課題や特性、各業務の関連性など、思わぬ知見が得られることがあります。この際、業務を見直して共通化しようとか、各業務の連携性、共通性を高めようといった業務改革につながる場合もあります。
プロトタイプ開発は上手に活用すれば、組織の風通しを良くして、活性化につながるなど、奥深く、幅広く、多様なメリットが得られる可能性があるのです。
少し技術的な話になりますが、実際のプロトタイプ開発、アジャイル開発はどのように行うのか見てみましょう。ハードウェアの開発を伴うもの、タブレット・スマホでの操作が中心となるものなど、コアとなる課題により開発手法にも様々なアプローチがあります。ここでは一般的な業務ソフト開発における技術・手法について、以下の3つのポイントをご紹介します。
(1)開発環境とデータベース
(2)クラウド
(3)オープン系の業界標準技術
(1)開発環境とデータベース:アプリケーションを迅速に開発するための開発環境を、RAD(Rapid Application Development) と呼びます。近年、RADとして再評価されているのが FileMaker プラットフォームです。FileMaker は、Apple の子会社である Claris 社によって開発・販売されてきた、30年以上の歴史を持つデータベースソフトです。
従来型データベースのRDB(Relational Database)では事前に入念な設計を行う必要があります。一方、FileMaker は柔軟な設計が可能で変更にも強く、直感的に理解しやすいカード型データベースとして親しまれてきました。ユーザーが自分自身で開発することが出来るデータベースとして支持されてきたのです。
現在では、macOS/Windows、サーバーアプリケーション、ランタイム版のバンドルアプリケーション、iOS アプリ、スクリプトやAPIなどの開発機能も備えた総合開発プラットホームへと進化しました。高度なデータベース開発と運用が行えるようになった現在、柔軟なデータベース設計と操作性に優れたユーザーインターフェースにより、本格的なアプリケーションを迅速に構築することができるようになったのです。
※ただし、後述するベンダーロックイン問題、運用環境とスケーラビリティ、ライセンス料、データのマスタ管理、オープン系技術活用の利点等も考慮して、オープン系技術とオープン系データベース( MariaDB 等)を活用・連携させることも視野に入れておきます。
(2)クラウド:クラウドを活用すればサーバー環境を数時間で構築して、すぐに稼働させることができます。ハードの見積をとって購買手続きをして、機器の納品を待って、環境を構築して、セットアップするという時間が大幅に短縮されます。また、スペックが過剰ならダウングレードすれば良いし、性能が不足するならスケールアップも容易です。開発スピードを重視するプロトタイプ開発、アジャイル開発において、クラウド活用は強力なツールの一つとなります。
クラウドの代名詞とも言える AWS が多くの点で優れていますが、Microroft Azure にも利点もあります。ベンダーロックイン問題も考慮して、適材適所で AWS と Azure を使い分けることも必要です。
(3)オープン系の業界標準技術:近年はオープンソースソフトや業界標準技術を活用したライブラリ等がたいへん充実しています。オープン系の技術を活用することで素早い開発が可能になるとともに、開発したソフトウェア資産が無駄になることも少なくなります。
例えば、フロントエンドのユーザーインターフェイス構築、BI(Business Intelligence)で活用することの多いチャート表現などには優れたライブラリも多く、情報も豊富なので、HTML / CSS / JavaScript といった業界標準技術を活用することが効果的です。
一方のプロプライエタリ系技術(企業が商品として展開している技術)は、その企業・ベンダーに固有の学習コストが必要になります。ベンダーへの依存性、いわゆるベンダーロックインのリスクも高まります。
プロプライエタリ系技術では、企業側の都合でサポートが終了してしまえば、過去に開発したソフトウェア資産まで無駄になってしまいます。市場シェアを独占した企業がライセンス料を大幅に値上げする現象も起きています。IT資産を守り、システムの自由度を高める上で、オープン系技術を活用することは重要な要素となります。
ENWIT は、1995年創業のソフトハウスです。1990年代のパソコン黎明期から変化の激しい IT 業界において、多くの ゼロ→イチ案件 を手がけてきました。いわば、何もないところから新しい技術を使ってプロトタイプを開発し、評価・検証・改善して、システムを本稼働させるまで、30 年近くにわたり行ってきたわけです。
大手ソフトハウス、出版社、映像制作会社、通信会社、建設業、製造業等の多様な業種の顧客向けソフトを始め、自社で企画販売するサービスのシステム、自社のバックエンド業務で使うシステムなど、多数のシステム開発と周辺業務を経験してきました。
そうした開発ノウハウを含め、初期のプロトタイプ・試作品から本稼働するシステムの運用・保守まで、 ワンストップ で提供出来ることが ENWIT の特徴です。プロトタイプの運用、業務でのテスト利用等を行い、機能追加や改善をしていきます。
データベースのバックアップ、データ更新、サーバーの運用管理、従量制で予算化が難しいクラウドの利用料金の管理を含めたクラウドの運用・保守代行等、関連する諸業務をトータルに支援いたしますので、貴社 IT ご担当者の負担を軽減することが出来ます。
また、貴社内で管理出来るように開発者を育成されたい場合は、開発技術に関する講習等を実施することも行っています。元になるアプリケーションやサンプルをENWITで開発した後、保守作業は貴社内で行えるように支援することも可能です。
具体的に取り組みたいシステムや解決したい課題のある方は、ENWIT のプロトタイプ開発サービスをご活用ください。
ENWIT は、小規模な開発会社としてのフットワークを活かして、大手ベンダーが手がけない最先端の技術活用、ニッチ分野、実務的に細やかな業務システムなど、以下のように多様なシステムを開発してきました。
開発事例
営業管理・BIシステム:基幹業務システム(ERP:Enterprise Resource Planning) からエクスポートしたCSV を読み込み、顧客毎・担当者毎、前年同月比較等、売上・受注・受注残の集計を自動化するとともに、チャートで可視化するシステム
在庫と発注点管理システム:在庫遷移、入出庫数をチャートで可視化し、発注点と発注数の最適化を図るシステム
ラベル発行システム:ERPからエクスポートしたCSVを読み込み、一定の出荷ルールに基づいて出荷用のラベルを印刷するシステム
住宅プレゼンシステム:外装・内装等の仕様を対話形式で選択していくだけで簡易見積を生成し、選択した仕様データをCADソフトと連携させてCGパースを含むプレゼン資料を出力する
図面管理システム:ファイルサーバーに置いた図面にメタ情報を付与するデータベースシステム。図面の検索結果では、プレビューをサムネール形式でインタラクティブに拡大・縮小しながら確認出来る
加工見積支援システム:板材や棒材などの加工において、体積と重量、比重、重量単価、加工方法毎の加工時間など、ビジュアル化された選択枝から見積を作成する
油圧制御機器の加工支援システム:建設現場で使用する油圧制御の加工機器において、無線化した複数の計測機器からデータをリアルタイムで取得し、チャート化することでオペレーターの加工操作を支援するシステム
複数拠点のデータ可視化システム:広域に渡る複数の拠点から計測機器データを取得、クラウド上に集約して、集計・計算してビジュアル的に現在の状態を可視化するシステム
マルチメディア百科事典:テキスト、写真、動画、音声、インタラクティブメディアから構成される百科事典
図鑑のコンテンツ管理アプリ:エンウィットの自社プロダクトとして、Apple App Store / Google Play でアプリを販売しており、写真、音声、テキストをデータベース化して管理し、各プラットホームに最適化した形式、JSON/SQL/XML等に書き出すコンテンツ管理システム
作品管理システム:美術館の収蔵作品を管理するコンテンツ管理データベースシステム