deha magazine / システム開発

システム開発

オフショア開発システム開発 2021/02/10

第三者検証の重要性とソフトウェアテストBPOの潮流

システム開発においてテストは非常に重要です。 そもそもシステム開発は、以下のような流れで進みます。 仕様の決定 設計 実装(実際にプログラミングを行う) テスト リリース 運用 一見、仕様の決定〜実装までが注目されがちですが、テストは開発工程の中でも比較的工数が大きい為、大切な項目になります。 今回は、そんな開発におけるテストについて第三者検証を行う重要性について解説をしていきたいと思います。 システム開発を効率よく行いたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば第三者検証がなぜ必要なのかが丸わかりですよ。 第三者検証の重要性とソフトウェアテストBPOの潮流 開発におけるテストは、大きく分けて2種類存在します。 1つは単体テストで、もう1つは統合テストです。 単体テストは機能ごとに行うテストで、開発者側で実施することが多いです。 仮のデータでテストすることも多く、予定していた機能が正しく動くことを確認します。 統合テストは、複数の機能を連結し、実際の動きに近い形で行うテストです。エンドユーザー視点で、動作の速度に問題がないか、使いにくくないかなどに関しても検証します。 単体テスト〜統合テストまで開発者自身が全て行うこともありますが、開発者が全てのテストを行うのは、あまりよくないです。 開発者はシステムのことを熟知しているが故に、「ここは大丈夫だろう」という思い込みや、ユーザー視点が疎かになってしまうことがあります。 テストは、システムの品質を担保する非常に大事な工程なので、本来であればQA(Quality Assurance、品質保証)チームをおくなどして、第三者検証を行うのが好ましいです。 QAチームを社内におくのが難しい場合、外部のテストベンダーにソフトウェアテストをアウトソーシングすることも可能です。 テストをアウトソーシングする、第三者検証サービスという選択肢 外部にテストを依頼する際は、第三者検証サービスを活用するのはおすすめの選択肢の一つです。 第三者検証サービスは、一部のベンダー(開発会社)が提供しているサービスで、テストへの専門的な知見を持ったチームが、第三者視点から客観的に対象のシステムをテストしてくれるサービスです。 第三者検証サービスを活用するメリットは、以下の3点です。 自社にQAチームを用意しなくて良い点 自社のエンジニアに、開発に集中してもらえる点 テストへの専門的な知見があるため開発者が見落としがちなバグを発見できる点 国内のIT人材の不足が叫ばれていますが、自社でエンジニアを雇用しようとすると、人件費が高くつきがちです。 せっかく自社でエンジニアを雇っている場合でも、テストに多く工数を割いてしまえば、その分開発期間がのびてしまいます。 第三者検証サービスを用いることで、開発期間を短縮し、むしろコストを抑えることができるかもしれません。 また優れた第三者検証サービスを用いることで、システムの品質を格段に向上させることができるでしょう。 第三者検証のメリット 開発者ではなく、第三者がテストを行うのには、以下のようなメリットがあります。 先入観なしで、テストに臨ことができる エンドユーザー視点でテストを実施できる 客観的な視点からバグを見つけることができる 開発者は、開発に専念できる 開発と並行してテストを行うことができる 開発者も人間なので、どんなに努力したとしても、熟知したシステムを客観的にテストするのは難しいです。 QAチームやテストベンダーといった第三者をおくことで、エンドユーザーに近い視点でテストを行うことができます。 また第三者に検証をしてもらうことで、その間、開発者はプログラミングやドキュメント作成といった開発業務に専念することができます。 第三者検証サービスの選び方 第三者検証サービスを提供しているベンダーは、近年増えてきています。 国内だけでなく、オフショア開発会社でも、提供している場合があり、第三者検証サービスの選び方も重要になってきています。 テストベンダーごとの特性を理解する 開発会社ごとに得意なシステムが異なるのと同様に、テストベンダーごとに得意とする分野は異なります。 例えば、フロントエンドのテストの場合、ウェブサイトのレイアウト崩れや、リンク切れなどの確認が必要です。 またスマホアプリのテストであれば、使い心地の確認や、速度の確認といったエンドユーザー視点のことだけでなく、プッシュ通知のテスト、各画面遷移のテストなどスマホ特有の箇所が存在しますし、業務システムであれば業務に対して知識がある方が正確なテストができます。 フロントエンドのテストが得意なテストベンダーに業務システムのテストを依頼すると満足いくサービスが受けられないかもしれませんし、スマホアプリのテストを業務システムが得意なテストベンダーに依頼しても同様です。 自社のシステムにあったテストベンダーを探すようにしましょう。 効率的なテストを行ってくれる […]

WEBアプリ開発システム開発 2021/01/26

定番?WEBアプリ開発でJavaScriptを技術選定する3つの理由【スマホアプリも人気】

WEBアプリ開発ではJavaScriptとの相性がとても良いです。 WEBアプリ開発でのプログラミング言語といえば、PHP、Ruby、Python、Java、JavaScriptとさまざまな種類があります。 なぜその中でもJavaScriptがおすすめなのでしょうか。 この記事ではWEBアプリ開発でJavaScriptを技術選定する3つの理由について紹介していきます。 WEBアプリ開発をしたい方 プログラミング言語を勉強中の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばWEBアプリ開発における、JavaScriptのメリットが丸わかりですよ。 WEBアプリとは? ウェブブラウザからアクセスすることができ、オンライン上で様々な処理を行うシステムをWEBアプリケーション(以下WEBアプリ)と呼びます。例えば以下のようなサービスです。 チャットワークやスカイプなどのチャットサービス TwitterやFacebookなどのSNSサービス Gmailなどのメールサービス メルカリなどのフリマサービス WEBアプリには、エンドユーザーにとって、以下のようなメリットがあります。 端末に縛られず利用できる クライアントアプリをインストールせずに利用できる toC向けのシステムを検討中であれば、WEBアプリの開発はかなり有力な選択肢と言えるでしょう。 Javascriptとは JavaScriptとは、WEB(ブラウザ)上で複雑な機能を実装する為のプログラミング言語です。 WEB上のコンテンツに構造と意味を与える(段落や見出しの定義、画像の挿入等)HTMLと違い、Javascriptは動的にコンテンツを更新する等多くのことを実現することができます。 <Javascriptで実現できる表現の例> 入力フォームの設置 ポップアップを出現させる 画像を拡大表示する 最新のランキング表示 現在、JavaScriptは、ほとんどのWebサイトで使われいますが、その他にもWebアプリ開発やスマホアプリ開発、ゲーム開発など様々なシーンで活躍しているのです。 WEBアプリ開発でJavaScriptを技術選定する理由 WEBアプリ開発でJavaScriptを技術選定する理由は以下の3点です。 フロントエンド、バックエンドの両方で使える iOS・Androidのネイティブアプリの開発にも使える 国内外でトレンドになりつつある 一つずつみていきます。 【理由1】フロントエンド、バックエンド両方で使えるから WEBアプリの開発には、ブラウザに表示される画面を作るフロントエンド開発と、サーバー上での処理を作成するバックエンド(サーバーサイド)開発の両方が必要です。 通常、フロントエンド開発とバックエンド開発では、使われる技術が大きく異なります。 フロントエンドでは、画面の骨組みを作成するHTML、画面の装飾を行うCSS、画面に動きをつけるJavaScriptの3つが主に使われます。 一方バックエンドでは、Java、PHP、Python、Ruby、Perlなど、サーバーサイド言語と呼ばれる技術が使われることが多いです。 JavaScriptは元々、ブラウザ上で動作する、画面に動きをつけるためだけのプログラミング言語でしたが、近年、Node.jsという技術が有名になり立ち位置が変わってきました。 Node.jsは、サーバー上でJavaScriptを実行するための環境で、Node.jsを使えば、JavaScriptだけでフロントエンド開発・バックエンド開発の両方を行うことができます。 フロントエンドとバックエンドが別の言語で書かれている場合、それぞれ別の技術をもったエンジニアを探す必要がありますが、JavaScriptであれば、フロントエンド・バックエンドを同じチームで作ることが可能になります。 【理由2】iOS・Androidのネイティブアプリの開発にも使えるから WEBアプリは、PC・スマホ問わずウェブブラウザがあればアクセス可能ですが、スマホからの操作性を高めるにはネイティブアプリの導入が有効です。 ネイティブアプリとは、アプリ独自で画面を持っているスマホアプリのことです。 ネイティブアプリであれば、画面を構成するための情報をサーバーからもらう必要がないため、ブラウザで動かしたときより早い速度で表示することができます。 JavaScriptは、スマホアプリの開発を行うことも可能です。 JavaScriptのフレームワークの一つである、Reactには、React Naitiveというネイティブアプリを開発するための技術があります。 React NaitiveはFacebook社が提供している技術で、同じソースコードでiOS/Android両方を開発できるというのが特徴です。これをクロスプラットフォームと呼びます。 通常ネイティブアプリを開発する際は、iOSはSwift、AndroidはAndroid JavaかKotlinという風に、別のプログラミング言語で作る必要があります。そのため、iOS、Androdiの両方で展開しようと思ったら、二倍の工数がかかるのが普通です。 ですが、React Nativeであれば、同じソースからiOS/Androidの両方のアプリをビルドできるので、大幅に工数を削減することができます。 またiOSエンジニア・Androidエンジニアをそれぞれ登用する手間もなくなります。 […]

React Nativeシステム開発 2020/11/04

Expo✕React Nativeの環境構築を行う【React Native入門】

React NativeはJavaScriptのコードのみでiOSとAndroid両方のアプリを開発することができます。JavaScriptの経験はあるが、アプリ開発の経験は無いというエンジニアにはとても便利なツールと言われています。 この記事ではReact Nativeを使ってアプリ開発を行っていく方向けに、Expoを利用した環境構築の仕方を紹介していきます。 Expoを利用することで簡単にReact Nativeの環境開発が可能ですよ。 合わせて読みたい>>【Mac編】ReactNativeを使って環境構築をする方法は?【JavaScriptのコードのみでアプリ開発】 React Nativeでの開発に興味がある方 JavaScriptを勉強していた方 React Nativeの環境構築を知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばReact Nativeの環境構築の方法がわかります。

React Nativeシステム開発 2020/10/26

React Nativeでアプリ開発!外注時のポイントとは?

スマートフォンやタブレットの普及が世界中で進んでいく中で、重要な要素の1つがアプリケーションです。Webアプリ、ネイティブアプリ、ハイブリッドアプリ等が存在し、商品やサービスを提供する企業はどんなアプリを開発するのがよいかを検討します。 そんな中、企業側のニーズに応えるために、コストや納期、エンジニアの確保などさまざまなメリットが見込めるクロスプラットフォームを採用するシステム開発会社が増えています。 そこで今回は外注先の選定、「React Native」による開発を外注する際のポイントをご紹介します。 「React Native」が気になる方 アプリ開発をしたい方 これらに当てはまる方におすすめの記事となっています。これを読めばアプリ開発を外注する際に注意すべきポイントも丸わかりですよ。 外注先の候補を選ぶ 外注先を探す方法として「取引先からの紹介」「システム開発のマッチングサイト(発注ナビなど)」「社員・知人の紹介」などが多くなっています。 最近ではフリーランスのエンジニアに外注をする方法も増えてきており、「クラウドワークス」や「ランサーズ」といったクラウドソーシングのサービスを利用する企業も増えています。 また最近ではオフショア開発という選択をする企業も増えています。 言語・文化の課題はありますが、国内での開発よりもオフショア開発の方がコストや納期についてもメリットが大きいことも注目される要因です。 最新の技術に対するスキルが高い国も多く、橋渡し役のブリッジSEを活用することでコミュニケーションも円滑になり、需要が増えています。 外注先を選択する 外注先の候補の絞り込みができたらヒアリング・打ち合わせを繰り返し、プレゼンと見積金額、納期などを複数社から受け、コンペを行います。 自社で提供したいアプリケーションの仕様通りに開発ができる会社か、納品・運用開始後のサポート体制は万全か、などあらゆる項目を協議し外注先を決定します。 過去に外注の実績があるシステム開発会社であれば自社の業務やサービスを理解し、開発をした実績があるので新たに探す外注先よりもスムーズにアプリケーション開発が進められます。 どのクロスプラットフォームで開発する? 発注側は顧客にどんなアプリケーションを提供し、商品やサービスを販売するかを考えます。 ここでもコストや納期の課題が出てきますが、クロスプラットフォーム開発であれば課題をクリアすることができます。クロスプラットフォーム開発とはWindowsやmacOSなど異なるプラットフォーム上で、同じ仕様のアプリケーションを動作させるプログラムのことです。 単一のプログラムで複数の動作環境に対応できるので、コストを抑えることができるのですね。 クロスプラットフォーム開発に対応するシステム開発会社も増えているので、どのフレームワークを使用するのかを考えるのも重要です。 自社のサービスや社内の業務フローにマッチするフレームワークを選定し、外注するシステム開発会社がどのフレームワークに対応できるか、その中でもどのフレームワークが得意か、を見極める必要があります。 「React Native」でのアプリ開発を外注 ここ数年で人気があるのはGoogle社の「Flutter」とFacebook社の「React Native」、そしてMicrosoft社の「Xamarin」です。 中でも「React Native」は1つのコードでiOS、Android、Webの3つのプラットフォームに対応したアプリケーションを開発できるため、システム開発会社も「React Native」での開発対応ができるよう、エンジニアの採用や教育・育成を行っています。 合わせて読みたい>>【徹底比較】React Native対 Flutter【アプリ開発に必要な5つのポイント】 「React Native」をどの開発会社に依頼するべき? 「React Native」を扱うシステム開発会社を探す際に、どこの国の会社・エンジニアに発注するかを決める必要があります。 当然ですが、母国語が同じ国に発注するのが一番スムーズですが、同じ母国語でシステム開発会社やエンジニアが多くいるとは限りません。 Facebookを見てみると、「React Native Developer Community」グループの登録者数は約87,000人です。それに対し「React Native Japan」グループの登録者数は約650人となっています。(リンク先のコミュニティサイト「Connpass」には約2,300人の登録があります) 「React Native Vietnam」グループを見てみると登録者数は約19,000人と日本よりも多く、この数字だけですべてを判断することはできませんが、「React Native」を扱えるエンジニアが多いことが推測できます。 DEHA SOLUTIONSには日本語、英語対応が可能で、「React Native」での開発ができるエンジニアが多数在籍しています。 「React Native」を使用したアプリケーションのオフショア開発を検討したい、という方は是非DEHA SOLUTIONSまでお問い合わせください。 […]

React Nativeシステム開発スマホアプリ開発 2020/10/20

はじめてでもわかる!React Nativeの開発環境の整え方

「React Native」はクロスプラットフォームに対応したアプリケーションフレームワークで、iOS、Androidどちらのアプリケーション開発にも利用できます。 「React Native」の経験がない場合、必要な情報をインターネットで調べたり、書籍を探したり、研修の一環で習得するなど、さまざまな方法で準備を進める必要があります。 そこでこの記事ではプログラミングに初めて取り組む方にもわかりやすく、「React Native」での開発環境に必要なものやどんな開発環境が適しているかをご紹介します。 JavaScriptを勉強していた方 アプリ開発を行いたい方 これから「React Native」を利用したい方 これらに当てはまる方におすすめの記事となっています。これを読めばReact Nativeでの構築を始める前にどんな準備が必要なのかが丸わかりですよ。 準備するもの①マシンスペック まず当然ですが開発するパソコンのマシンスペックは高いに越したことはありません。さまざまな処理をするためCPUは最新のものを用意し、メモリは多く積んでおくことをオススメします。 準備するもの②スマートフォン iOSまたはAndroidのスマートフォンの実機を使用してアプリケーションを検証します。 しかし、その都度スマートフォンを取り出し、アプリケーションをインストール・更新するのは手間になるので、エミュレーター上で検証をし、最終段階の検証で実機を使用する方法もあります。 準備するもの③ブラウザ そして開発環境に必要な大切なものがブラウザです。「React Native」の場合は「Google Chrome」が推奨されています。デバッグなどでも使用する場合があります。 準備するもの④開発環境(Windowsの場合) OSは「Windows10 Pro」または「Windows10 Home」を前提とします。インストールの順番は以下の1から6が基本となりますが、個人個人の環境によって前後する場合がありますので注意してください。 Chocolatey パッケージ管理ソフト「Chocolatey」を導入することで、各種ツールをスムーズにインストール・設定することができます。 公式サイト Node.js サーバーサイドのJavaScript実行環境である「Node.js」がビルドで必要となります。頻繁にバージョンアップされるため、その時に必要なバージョンを確認してから導入しましょう。 公式サイト Python 「React Native」のビルドシステムは「Python」が採用されています。 公式サイト 「React Native CLI」 or 「Expo」 「React Native」で開発するためにはアプリケーションツールである「React Native CLI」または「Expo」が必要です。「 Expo」はネイティブな機能を使えないことがあり、「React Native CLI」は「Xcode」の知識が必要です。必要に応じてどちらのアプリケーションツールを使用するかご検討ください。 合わせて読みたい>>Expo✕React Nativeの環境構築を行う【React Native入門】 JDK 「JDK(Java Development Kit)」はJavaの開発ツールがセットになっているパッケージです。 公式サイト […]

システム開発 2020/10/06

Flexboxの概要

Flexboxはご存知でしょうか。 Fexboxはサイズが動的なデータの場合でも、コンテナー内のより効率的なレイアウト、配置、およびアイテムとスペースの分配の提供を目的としています。Flexboxは柔軟性があり、フロートやpositionを使用せずにレスポンシブレイアウトを簡単に設計できます。 水平方向の位置のあるテキスト、コンテンツのブロックと別のブロックを中央に整列させる必要がある 中央に整列のためCSSトリックを利用するが、全画面または動的データが表示されない状態になる サードパーティのライブラリを利用せずに、レスポンシブインターフェースの設計が大変 など、FexboxならPhotoshopから画像を書き出す際に起こりがちな問題を解決することができますよ。 IT人材が不足している事業者様 floatを使用したレイアウトを行っていた方 Flexbox について詳しく知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばFlexboxの使い方や概要を知ることができます。

React Nativeシステム開発 2020/09/25

【徹底比較】React Native対 Flutter【アプリ開発に必要な5つのポイント】

スマートフォンが普及し、さまざまな技術が進化する中で、クロスプラットフォーム開発は開発期間の短縮やコスト削減などのメリットが多くあるため、開発会社・エンジニアにとってなくてはならない存在となっています。 そんなクロスプラットフォームの中で、特に多く利用されているのが「React Native(リアクト・ネイティブ)」と「Flutter(フラッター)」です。 「React Native」はJavascriptを取得して入ればアプリの開発が可能。一方、「Flutter」はDartで開発を行います。 どちらも共通しているのはiOSアプリとAndroidアプリに同じコードベースを使用できるクロスプラットフォームであるということです。ただし、それぞれ独自の特徴があり、メリット・デメリットがあります。 そこで今回は「React Native」と「Flutter」を5つのポイントに絞って比較します。 モバイルアプリの開発・運用のコストパフォーマンスを高めたい方 「React Native」や「Flutter」が気になっている方 「React Native」や「Flutter」の違いを知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めば「React Native」や「Flutter」のどちらを使って開発を行うべきかがわかりますよ。

Laravelシステム開発 2020/09/23

Laravel+PHPUnitで認証付きAPIのテストを行う

PHPの人気のフレームワークLaravelではWebサイトの管理画面を開発することができます。 開発の手順に関しては以下の記事にて具体的に紹介をしていきました。 Laravel(API)とNuxt.jsの連携を行う【Laravel6+Nuxt.jsで作る管理画面】 CookieによるAPI経由のユーザー認証機能を作る【Laravel6とNuxt.jsで作る管理画面】 Nuxt.js+VuetifyとLaravelでCRUDを作る さらに開発後のデプロイの手順は以下で解説していきました。 Heroku+Laravel+MySQLを独自ドメインで公開する Nuxt.jsをSSRモードでHerokuにデプロイして公開する この記事ではPHPUnitでLaravelのAPIテストをする方法について解説しています。 Laravelを使って構築をしたい方 Webサイト構築の具体的な手法が知りたい方 におすすめの記事となっています。これを読めばいよいよLaravelで開発した管理画面をリリースする準備ができますよ。

React Nativeシステム開発 2020/09/01

【感動】React Nativeならアプリ開発が効率化!?【クロスプラットフォーム対応】

スマートフォンやタブレットの普及が進み、私達の生活やビジネスにはなくてはならない存在となりました。 アプリを開発する側にとって、プラットフォームをどうするか、というのはとても重要なポイントです。 iOSとAndroidの2種類をそれぞれ開発するか、Webアプリで開発するか、あるいはハイブリッドアプリを開発するか、などの選択肢があります。 合わせて読みたい>>「Webアプリ」と「ネイティブアプリ」のメリット・デメリット この記事ではアプリ開発をスムーズにできる「React Native」をご紹介します。「React Native」ならクロスプラットフォーム対応であり、JavaScriptでの開発ができるだけでなく、修正対応もスムーズに行えます。 React Nativeについて詳しく知りたい方 アプリ開発を行いたい方 JavaScriptのスキルがある方 これらに当てはまる方におすすめの記事となっています。これを読めばアプリ開発の手助けになる「React Native」について丸わかりですよ。

Laravelシステム開発 2020/08/24

Nuxt.jsをSSRモードでHerokuにデプロイして公開する

PHPの人気のフレームワークLaravelではWebサイトの管理画面を開発することができます。 開発の手順に関しては以下の記事にて具体的に紹介をしていきました。 Laravel(API)とNuxt.jsの連携を行う【Laravel6+Nuxt.jsで作る管理画面】 CookieによるAPI経由のユーザー認証機能を作る【Laravel6とNuxt.jsで作る管理画面】 Nuxt.js+VuetifyとLaravelでCRUDを作る また、Heroku+Laravel+MySQLを独自ドメイン(SSL)で公開する【Laravel6+Nuxt.jsで作る管理画面】の記事で、HerokuにLaravelを独自ドメイン(SSL)でデプロイする手順を解説していきました。 この記事ではNuxt.jsをデプロイして、管理画面を公開して使うことが出来るようにする方法をご紹介! Laravelを使って構築をしたい方 Webサイト構築の具体的な手法が知りたい方 これらに当てはまる方におすすめの記事となっています。このシリーズを読めばLaravel6とNuxt.jsで管理画面を作成することができますよ。

オフショア開発ガイド

オフショア開発のご相談や お見積りはこちらから

CONTACT