IT開発
はじめに
弊社では、「速く、軽く、セキュアに」をモットーに、Jamstack ¶1 、SPA ¶2 、サーバレスアーキテクチャでの開発に積極的に取り組んでおります。これらの技術によって、システムのスループットが改善し、保守が容易となり、セキュリティリスクが減るのは事実です。 しかしながら、これらの技術はオールインワンではなく、システム特性によって、適用シーンを判断する必要があります。従って、より広範囲に適用可能な、従来の、APサーバ上で動作する、Java(Spring)、PHP(Laravel)など、基本技術を利用した開発も、重要と考えております。
¶1 Jamstack:JavaScript、APIs、Markup を利用し、開発者が事前にSSG(静的サイトジェネレータ)でビルドした静的コンテンツを、クライアントがCDN経由で受け取る、というサーバレスな方式。従来のWordPress等を利用したLAMPスタック方式に比べて、パフォーマンス、セキュリティ、コスト、スケーリングの点で優れている。
¶2 SPA:Single Page Application の略で、ひとつの静的なHTMLページとJavaScriptで構成され、クライアントサイドが、(通常は非同期の)APIを使ってデータを取得し、ブラウザ側でレンダリングを行なう。SEO的には弱点があるが、画面遷移が滑らかで、パフォーマンスも良い。
開発範囲
弊社では、要件定義 ~ 開発 ~ データ移行 ~ 運用・保守の各工程に渡り、様々なシステムに対応した開発が可能です。
但し、現在のところ、人的リソースに限りがありますので、プロジェクトの一部や小規模なプロジェクトに絞った開発とさせていただいております。
開発言語とフレームワーク
¶ 実績及び習得度:◎ 実績有り ○ 旧Ver.実績有り若しくは習得浅い △ 実績無し
対応言語 | 実績及び習得度 ¶ | 備考 |
---|---|---|
Java | ◎ | |
JavaScript(Node.js) | ◎ | |
TypeScript | △ | |
HTML5 | ◎ | |
Python | △ | |
PHP | △ | |
VBA | ○ | |
C(++) | △ | |
Delphi | ○ | |
COBOL | ○ |
対応フレームワーク | 実績及び習得度 ¶ | 備考 |
---|---|---|
Spring Boot | ◎ | |
Vue.js | ◎ | |
Express | △ | |
Django | △ | |
Laravel | △ | |
AWS Lambda | ○ | |
AWS API Gateway | ○ |
開発スタイル
ウォーターフォール型、アジャイル型のいずれのスタイルにも対応可能です。 AWSのCI/CDサービス(CodePipelin、CodeCommit、CodeBuild、CoeDeploy)を使うことで、安全で素早いディプロイ方式を構成できます。
コミュニケーションツール
以下のようなツールを使用して、ステークホルダーの方々とコミュニケーションを図ります。 これらのツールの管理機能を適切に利用することで、プロジェクトのスケジュールと進捗状況、課題と対応状況などが、役割に応じてリアルタイムに把握・通知できるようになります。 さらに、個人の役割に応じた閲覧・編集権限を設定して、きめ細かなセキュリティの確保を実施します。
ツール名 | 利用目的 |
---|---|
JIRA | カンバンやスクラム等のアジャイル管理 |
Redmine | 課題管理、バグ管理 |
公的なメールの応答 | |
Slack | チーム内のスピーディなメッセージ応答 |
Zoom | Web会議 |
Skype | Web会議、IP電話 |
Google Workspace | ドキュメントの保存・共有・管理 |
AWS Workspaces | 〃 |
GitHub、AWS CodeCommit | 成果物のバージョン管理 |
品質管理
品質は、コスト(テスト時間)に比例(厳密にはGompertz曲線)して向上します。従って、弊社では、品質目標を定め、それに応じたコスト(テスト時間)が妥当かどうかをお客様にご納得いただくことが重要と考えております。
もう一つの重要な観点として、システムをサブシステムに分割したとき、各サブシステムの品質目標をどのように配分するかということです。
品質管理の手法としては、古典的なQC7つ道具、新QC7つ道具、信頼度成長曲線等ありますが、まずは、品質データ(バグ数等)を定量化することが重要と考えております。テスト工程においては、定量化を行ないながら作業を実施します。それによって、その後のPDCAにより、さらなる品質向上を図ることができます。システムは一度作ったら完了ではなく、品質改善活動を伴いながら、機能拡張やセキュリティ向上を実施してゆくものと考えています。
弊社で扱うことのできるツールとしては、以下のようなものがあります。
- Selenium
- JUnit
- Jest(利用実績無し)
- JMeter