目次
システム開発を依頼する前に押さえておきたい基礎知識とは?
企業のDX(デジタル・トランスフォーメーション)化が求められる現代社会において、システム開発に関する基礎知識はビジネスの効率化や競争力向上に欠かせない素養となりつつあります。 またその重要性を理解し、システム開発やプログラミングを学び始める人は年々増加傾向にあります。
システム開発を依頼・発注するのは大きな決断にもなります。そのため、企業にお勤めの総務担当・購買担当、調達担当、事業企画担当の方からすると、一通りの基礎知識を学ぶ必要を感じている方も多いはずです。しかしながら、何からどのように手を付けたら良いのかよく分からない…と思ったことはありませんか。
今回の「システム開発を依頼する前に知っておきたい基礎知識 」シリーズでは、システム開発プロジェクトを上手く成功させるために必要な基礎知識を学べる設計としています。
第2回目の本記事では、さまざまな業界業種向けにDX支援を行う弊社のDX/ITコンサルタントが、システム開発を外注する前に知っておきたい基礎知識を要約し、その内容について解説します。
今回は「ソフトウェア環境」と、「アプリケーションの種類」、そして「システム依頼前に押さえておくべき7つの要素」について説明していきます。
—————————————————————————————————————
システム開発の依頼・発注をご検討中の方へ
システム開発やスマホアプリの開発、MVPの作成、新規事業の立ち上げ、自社DX化の推進に関するお悩みは課題はありませんか?
弊社は、”ただお客様の要望通りに開発する”だけではなく、お客様のビジネスに最適な解決策を探求し、提案する、「ビジネス」×「技術力」×「デザイン」の三位一体型のシステム開発事業・スマホアプリ開発事業・DXコンサルティング事業を手掛ける会社です。自社のDX化やIT全般に関するお困りごとがありましたら、「GeNEEへのお問合せ」からお気軽にご連絡ください。
GeNEEの会社概要 GeNEEの提供サービス一覧 GeNEEの開発実績
—————————————————————————————————————
前回のおさらい
企業のDX化が進む中、システム開発の基礎知識はビジネスの効率化や競争力向上に必要となっています。本記事では、システムとは特定の目的を達成するための「パーツの集合体」で、ソフトウェアとハードウェアの2つの要素から構成されていることや、ソフトウェアはコンピュータが特定のタスクを実行するための指示を与えるプログラムやデータのことを指し、ハードウェアは物理的な装置や機器を指すこと、企業が使用するシステムは主に3種類に分けることができ、基幹系システム、情報系システム、業務システムということを解説しました。今回は、「ソフトウェア環境とは?」「アプリの主な種類」「発注前に考えておくべき7つの要素」を合わせて解説します。
関連記事:システム開発を外注する前に知っておきたい基礎知識 その①
【「システムとは?」「ソフトウェア/ハードウェア/プログラム」の基本を解説!】
—————————————————————————————————————
ソフトウェア環境とは?
ソフトウェア環境とは?
ソフトウェア環境(Software Environment)とは、コンピュータで何かをするために必要なプログラムやアプリケーションが動く「土台」のようなものです。ソフトウェアの定義の意味には、WindowsやMacのようなOS(オペレーティング・システム)や、Google ChromeやEdgeといったウェブブラウザ、Microsoft社が提供するWordやExcel、Powerpointなどのアプリケーションも含まれています。(この後、詳細をご説明しますが、WordやExcel、PowerpointはiPhone端末やAndroid端末で使用できるスマホアプリケーションとしてもリリースされています。)
外部の開発業者にシステム開発を依頼・発注する際、そのシステムがどのようなソフトウェア環境で運用されているのか、考慮する必要があります。ソフトウェア環境面を適切に評価・検証しないと、最終的にはユーザの利用環境下で適切に動作しない、または使い勝手の悪いソフトウェアが生まれてしまうからです。
アプリケーションには種類がある?
前節では、ソフトウェアの意味の中にアプリケーションが存在するとご説明しました。アプリケーションとは、特定の目的を実現するために開発され、OS(オペレーティング・システム)やMW(ミドルウェア)上で動作するものです。例えば、Microsoft社が手掛けるWordやExcel、Powerpointの他、ペイントやメモ帳もWindowsOSの上で動作していますので、アプリケーションの一つです。Apple社が提供するPC端末(Macなど)では、App StoreやKeynoteなどがMacOS上で動作しており、それらがアプリケーションに該当します。昨今ではさまざまな切り分け方や考え方がありますが、アプリケーションをさらに分類すると、デスクトップアプリケーション、スマホアプリケーション(別称として、ネイティブスマホアプリケーションとも呼ばれたりします。)、Webアプリケーションという分け方ができます。それぞれについて見ていきましょう。またアプリケーションはアプリという略語で表現されることが常であるため、この後はアプリという表現に統一して使用します。
- デスクトップアプリ:
- ユーザーのPC端末上に直接インストールすることで使用可能になります。インターネット接続がなくても動作し、パソコンのリソース(CPU、メモリ、ストレージなど)を直接利用できるため、高度な処理や大量のデータを扱うことが可能です。
- 代表的なアプリ: Microsoft Office(Word、Excel、PowerPoint)、Adobe Photoshop、AutoCAD、iTunesなど。
- スマホアプリ:
- iOSが搭載されたiPhone端末やAndroid端末などのモバイルデバイス向けに開発されるアプリです。スマートフォン画面(タッチスクリーン)の操作に最適化されているため、他のアプリと比べて端末連動機能に優位性を持っています。例えばですが、端末内に組み込まれているGPS(位置情報)、カメラ、端末決済、顔認証などはデバイス固有の機能で、それらをスマホアプリと上手く連動させることで、UI/UX(ユーザビリティ)の高いアプリを提供することが可能となります。また、Apple社やGoogle社の専用サーバを経由するプッシュ通知機能を利用してユーザーにさまざまなメッセージを直接投げかけることも可能です。後述するWebアプリからもプッシュ通知機能の組み込み自体は可能ですが、2023年夏季時点、Google Cromeブラウザを起動しないとプッシュ通知が配信されない、一部のブラウザ環境下のみに限定されている、ライセンス利用料等の兼ね合いによりプッシュ通知配信の都度料金が発生する、などの技術的課題・ビジネス的課題を抱えているのが実情です。
- 代表的なアプリ: Instagramアプリ、LINEアプリ(デスクトップアプリケーションも存在)、UberEatsアプリ、Pokémon GOアプリなど。
- Webアプリ:
- インターネットのブラウザを経由して使用できるアプリです。ユーザはインストール手続きを行うことなく、デバイスやOSを問わずにWebアプリの利用が可能です。(開発会社の目線では、PCとスマホ、タブレットのpx数に合わせて画面可開発(レスポンシブ対応)が必要です。)また、開発者は一部のソースコードをメンテナンスすることで、全てのユーザに対し新しいバージョンを提供することができます。
- 代表的なアプリ: Google Docs、Trello、Slack(スマホアプリも存在)、Zoom(スマホアプリも存在)など。
開発者の目線では、開発目的や事業構想、ペルソナのニーズ、市場動向等を複合的に勘案して最適な応用ソフトウェアを決定する必要がを選択します。
関連記事:業務アプリ開発とは。トレンドの開発言語を含めて解説
システム開発を依頼する前に考えておくべき点とは?
前節ではソフトウェア環境、そしてアプリの種類について詳しくご説明しました。また本節では一定のソフトウェア環境の下で動作する複合的なアプリケーション、システム開発を依頼する前に熟考すべき点を7つに絞り、解説していきます。
- ソフトウェア環境: 開発するシステムが動作する環境を明確にする必要があります。例えば、Windows、Linux、UNIXなどのソフトウェア環境を理解し、どのような環境下でどのようなアプリを動作させるべきか、検討する必要があります。
- 同時アクセスする人数: 開発するシステムに同時アクセス(接続)するユーザ数をあらかじめ予測し、想定値を算出した上でその負荷に耐えられるインフラ設計を意識する必要があります。
- データの保存場所: データベースの種類や、クラウドストレージ又はオンプレミスのサーバに保存するかなど、データの保存場所を考慮する必要があります。
- 操作するユーザーのスキルの想定: システムの利用者がどれくらいのITリテラシー(ITに対する知識・理解)を持っているのかを考慮し、それに合わせたユーザIF(インターフェース)、画面設計を意識する必要があります。
- 予算: 開発費用や、開発後の保守・運用・監視費用を考慮に入れる必要があります。
- 開発期間(タイムライン): プロジェクトの期間やマイルストーンを明確に設定し、開発者がそれを遵守できるか確認することが重要です。
- セキュリティ: データの機密性やシステムのセキュリティ要件を明確にし、開発者がそれを満たす能力があるか確認する必要があります。
関連記事:システム開発の工程と流れを徹底解説!具体的な開発モデルの種類と注意すべき点とは
まとめ
本記事では、システム開発の基礎知識と、システム開発を依頼する際に考慮すべき要素について解説しています。
ソフトウェア環境とは、コンピュータで何かをするために必要なプログラムやアプリケーションが動く「舞台」のようなもので、システム開発を外注する際には、そのシステムがどのようなソフトウェア環境で運用されるのかを事前に考慮する必要があります。
また、アプリケーションの種類に関しては、「デスクトップアプリ」と「スマホアプリ(ネイティブスマホアプリ)」、「Webアプリ」の3つをご紹介しました。昨今では、特定のアプリの中で動くミニアプリ(一例を取り上げると、LINEアプリの下で動くLINEミニアプリなど)が登場し、今後もアプリの種類や形態は変化していく可能性があります。これらのアプリは、その特性により異なる用途・状況を確認しながら最適なものがどれか判断・決定する必要があります。
さらに、システム開発を外注する前に考えておくべき7つの要素として、(1)ソフトウェア環境、(2)同時アクセスするユーザ数、(3)データベースの種類・データの格納先、(4)操作するユーザのITリテラシーの配慮、(5)開発予算、(6)開発期間(タイムライン)、(7)セキュリティについて触れました。これらの指標を基に適切な評価を行うことで、ユーザーが適切に操作できる、使い勝手の良いシステムの完成に近づくはずです。
システム開発、スマホアプリ開発、新規事業立ち上げ、DXコンサルティングなどでお困りごとがございましたら、ぜひ弊社・株式会社GeNEEへご相談ください。