deha magazine / システム開発

システム開発

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

Performance Optimization_WEBのページ表示速度改善方法

WEBページにおいてパフォーマンスの表示速度を上げることはとても重要です。 Googleの調査したデータによると、ページの表示が3秒以上掛かったサイトに対して待たずに離脱してしまうユーザーの割合は53%以上とのこと。 この記事ではそんな重要な要素であるページ表示速度について、改善するためのいくつかの方法ををご紹介したいと思います。 WEBページをお持ちの方 パフォーマンスを向上させる方法を知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばあなたのサイトの離脱率を下げる方法が分かりますよ。

Laravelシステム開発 2020/07/20

Heroku+Laravel+MySQLを独自ドメインで公開する

PHPの人気のフレームワークLaravelではWebサイトの管理画面を開発することができます。 開発の手順に関しては以下の記事にて具体的に紹介をしていきました。 Laravel(API)とNuxt.jsの連携を行う【Laravel6+Nuxt.jsで作る管理画面】 CookieによるAPI経由のユーザー認証機能を作る【Laravel6とNuxt.jsで作る管理画面】 Nuxt.js+VuetifyとLaravelでCRUDを作る これらは、開発後にデプロイして利用可能な状態にしていく必要があります。 そこで本記事でHeroku+Laravel、こちらの記事でFirebase+Nuxt.jsのデプロイについて解説していきます。 Laravelを使って構築をしたい方 Webサイト構築の具体的な手法が知りたい方 これらに当てはまる方におすすめの記事となっています。このシリーズを読めばLaravel6とNuxt.jsで管理画面を作成することができますよ。

アジャイル開発オフショア開発システム開発 2020/07/16

【今さら聞けない!】スクラム開発の体制とは?開発チームの役割とあるべき姿

スクラム開発では、チームや個人に役割を設けワンチームとなり開発を行います。 この記事では、そんなスクラム開発の体制を徹底解説していきます。 オフショア開発にスクラム開発を取り入れたいと思っている方に必見の記事となっています。 これを読めば スクラム開発の開発チームとは何か? スクラム開発のチームの役割は何か? の疑問が解決できますよ。 開発チームとは 開発チームは、各スプリントの終了時にリリース判断可能な「完成」したプロダクトインクリメントを届けることのできる専門家で構成されています。 「完成」したインクリメントは、スプリントレビューに必要になります。インクリメントを作成できるのは、開発チームのメンバーだけになります。 開発チームは、自分たちの作業を構成・管理するために、組織から体制と権限を与えられています。その相乗効果によって、開発チーム全体の効率と効果が最適化されます。 その開発チームのうち、開発以外の細かな調整はスクラムマスターやプロダクトオーナーが行います。 開発チームの作業内容 スクラムの活動では「プロダクトインクリメント」を生み出すために必要な作業を直接実行します。 スプリント中、開発チームは製品のプロダクトバックログアイテムの設計、開発、テスト、および製品のプロダクトインクリメントへの統合を実行します。 これを行うために、開発チームの計画立て、管理、および相互通信の手段を自己組織で決定し、すべてのスプリントに完了したプロダクトインクリメントを最後に転送する必要があります。 ここからはその詳しい方法について解説していきます。 スプリントの計画を立てる 開発チームは、各スプリントの最初の計画に参加し、スクラムマスターの指定を通じてプロダクトオーナーと協力し、スプリントの目標を設定します。 スプリント目標の設定以降、チームは優先順位を再調整し、その目標を達成するためのタスクを実行計画を立てます。 開発チームで必要な進捗確認  スプリントの実施中は、各スプリントの目標を達成するために、開発チームの役割の進捗を交換する毎日のスクラムに参加し、残りのジョブの完成計画を修正する必要があります。 チームメンバーの誰かがこのイベントに参加できない場合、チーム全体で情報が不足している可能性があり、全体像の一部が不足している恐れがあります。それにつれて、各スプリント、あるいはプロジェクトの全体の目標が達成できない恐れもあります。 グルーミングプロダクトバックログ(製品開発カテゴリを明確化) 各スプリントでは、開発チームは次のスプリントに向けて作業の準備をするために、プロダクトオーナーとの相談の時間の必要です。 相談のほとんどは製品の残りの要求を明確化、追加するためです。 そのため、各要求の情報を作成、修正、追加します。優先度に基づいてアイテムを見積もり、再配置します。 各スプリントの開発チームは、スプリント全体の時間の最大10%をこのタスクの実行に費やしています。 スプリントレビューとスプリントレトロスペクティブ 各スプリントの最後に、開発チームはスプリントレビュー(製品レビュー)およびスプリントレトロスペクティブ(ワークフローの改善)という、2つの検査と適応イベントに参加します。  スプリントのレビューでは、開発チーム、スクラムマスター、プロダクトオーナー、およびその他の利害関係者は、プロダクトオーナーから招待され、チームがスプリントで完了したプロダクトインクリメントについての試行、評価、フィードバックを提供します。  スプリントレトロスペクティブでは、スクラムマスターの調整の下で、開発チームがプロダクトオーナーとともに、チームでのコラボレーション方法および作業プロセスの検査と適応について商談し、プロダクトインクリメントをより早く、より多い価値を転送できるよう、または製品の質をより高めるよう、良い技術を探します。 開発チームの規模 開発チームの最適な規模は、柔軟性を維持できるほど小さく、スプリント中に重要な作業を完了するのに十分な大きさです。 メンバーが3人未満の場合、開発チームはやり取りが少なくなり、生産性が低下します。 そのような小さな開発チームは、スプリント中にスキルの制限を経験する可能性があり、開発チームは最終製品の段階的な仕上げを提供できなくなる可能性があります。 メンバーが9人を超えると、調整が必要になります。 大規模な開発チームは非常に多くの複雑化を引き起こし、実験プロセスの有用性を低下させます。 プロダクトオーナーとスクラムマスターの役割は、スプリントバックログの作業を行っていない限り、開発チームには含まれません。 開発チームのあるべき姿は「自己組織化」と「連結機能を持つチーム」 自己組織化 自己組織化とは、チームが生産プロセスを導き、決定を下す能力と権限を持っていることを意味します。 つまり、チームがツール、テクニック、および仕事を完了するための方法の選択肢、全てを制御できることも意味します。 同時に、チームメンバーの関与と責任は、コマンド・コントロールモデルで編成されているチームよりもはるかに高くなります。 スクラムの開発チームの自己組織的な性質は、以下のような点です。 チームに管理職はいない。チーム管理を担当する個人は一人もいない。 開発チームは、各スプリントを作成するプロダクトバックログの各項目の数を自己的に選択して決定する。 開発チームは、各項目のワークロードを自己推定する。 開発チームは、自身の作業の進捗状況を監視する。 すべてのジョブは、個人に割り当てられることなく、チーム集団によって「所有」される。したがって、結果が良いか悪いかにかかわらず、その責任は一人にではなく、チーム全体に与える。 連結機能を持つチーム 連結機能を持つチームとは、外部からの支援なしに、ジョブ全体を完了し、各スプリントの終わりに転送可能なプロダクトインクリメントを生み出すために必要なすべてのスキルを完全に備えていることを意味します。 これは、それぞれのメンバーがすべてのスキルをもっている必要があるという意味ではなく、特定の数のスキルしか持っていないが、お互いを補完し、チームが必要なすべてのスキルを持つという意味です。 連結機能を持つことで、チームが動作し、完全な生産ユニットとなり、生産性と製品品質を向上させることができます。これにより、チームは外部から待つことなく、迅速に意思決定を行えます。 開発チームでは、各メンバーが、テスター、プログラマー、設計の専門家、データベースの専門家などの特定の職種を持っていないません。すべて「開発者」と呼びます。 […]

Laravelシステム開発 2020/07/14

【拡張性・保守性バツグン】Laravelのリポジトリパターンとは【Repository】

PHPの人気のフレームワークLaravelを活用すると短期間でWebアプリケーションを作ることができます。 そのLaravelではリポジトリパターンを活用することで、チームでソースの開発・保守がしやすくなったり、データの構築などで変更が生じる場合にソースの変更がしやすいなどと言ったメリットがあります。 この記事ではそんなリポジトリパターンについて、どう言ったものなのか・どのように実装するのかを徹底解説していきます。 これらに当てはまる方におすすめの記事となっています。これを読めばRepositoryデザインパターンについて、どのように活用していけばいいかがわかりますよ。

システム開発 2020/07/06

OpenCVのHomographyについての説明

OpenCVのHomographyは、2つの画像間の画像編集、画像合成、動きの計算、回転、シフトなどを簡単に行う計算方法です。 この記事ではそんなホモグラフィの基本的な計算方法や、実際にOpenCVでどのように書いていけばいいのかなどを紹介しています。 OpenCVが気になる方 ホモグラフィについて知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばホモグラフィの活用方法が分かりますよ。

システム開発 2020/06/19

OpenCVを使ったブロブ検知の概要

ブロブとは塊を意味し、似た特徴を持った画像内の領域のことを指します。 OpenCVを利用すればこのブロブを簡単に検知することができます。 この記事では、そんなブロブの検知方法について具体的に紹介していきます。 Open CVの活用方法が知りたい方 ブロブ検知の方法を知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばブロブ検知の方法が分かりますよ。

システム開発 2020/06/12

一般的なシステム統合プロトコルについて

システムを設定する時、Low Couplingと High Cohesionを満たすことを確保するように、システムを小さなモデルに分けることが多いです。 または、システムを小さなサービスを分けて組み合わせることも多いです。 これにより、システムのスケーリングが簡単になり、システムのフォールトトレラントも確保することができます。 しかし、上記のようにシステムを分割すると、統合に関する問題が発生してしまうことも…。 システムを一緒にスムーズに稼働するためには、適切な組み合わせを選択するべきです。この記事ではそんな適切なシステム統合プロトコルについて紹介していきます。 適切なシステム統合プロトコルについて知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム統合プログラムについて丸わかりですよ。

システム開発スマホアプリ開発 2020/06/08

スマートデバイス向けネイティブアプリには「Java」が最適?

スマートフォン・タブレットなどのスマートデバイス向けにネイティブアプリを開発する場合は、「Java」を使用するのが最適です。 「Java」は強固なセキュリティで処理速度の速いので、大量に配布・インストールされるスマートデバイス向けのネイティブアプリの開発と相性が良いのです。 この記事ではそんなスマートデバイス向けにネイティブアプリ開発と「Java」の関係性についてシェアしていきます。 ネイティブアプリ開発を行いたい方 社内のIT人材が不足している方 どんな開発言語がアプリ開発に向いているか知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めば「Java」を利用するメリットが分かりますよ。

Laravelシステム開発 2020/06/05

DEHAで一番最初にLaravelの資格を取得した開発者!トアンをご紹介致します

今回は弊社で働く開発者のトアンを紹介致します。 彼はスクラムマスターとして働いていて、資格の取得にも熱心な開発者です。彼の仕事への想いや入社の動機をインタビューしたのでご覧下さい。 スクラムマスターがどのような働き方をしているのか知りたい方 システムエンジニアになりたいと思っている方 ベトナムオフショアの雰囲気を知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばDEHAで働く雰囲気やスクラムマスターの働き方が分かりますよ。

PHPシステム開発 2020/05/20

本番環境(プロダクション環境)へのデプロイをスムーズにする方法  (パート2)

本番環境のデプロイをスムーズにするために注意すべきことがあります。 例えばバックアップや自動展開ツールを使用するなど…。 この記事ではそんな本番環境へのデプロイをスムーズにする方法について解説していきます。 PHPを使って構築をしたい方 Webサイト構築の具体的な手法が知りたい方 これらに当てはまる方におすすめの記事となっています。この記事を読めば、ソフトウエア開発の際に本番環境のデプロイで苦労することが無くなりますよ。 ちなみに、準備編に関してはこちらの記事で解説をしています。

オフショア開発ガイド

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

CONTACT