top of page

日本で一般的なソフトウェア開発手法は複数の深刻な問題があり、そのため、バグの頻発、脆弱なセキュリティ、開発・運用コストの数倍から数十倍に増大、などの問題が頻発しています。Aquarete (アクアリート) は、多国籍の優秀な開発チームとともに、それらの問題とは無縁の高品質な設計と実装によって、費用倍増を起こさないウェブ・スマホアプリ開発を提供します。

高品質 + 低価格
ウェブ・スマホアプリ開発

​各サービスをタップして説明を表示

​開発可能なアプリの種類

マルチプラットフォームアプリケーションイメージ

Aquarete は、クロスプラットフォーム アプリケーションの開発を専門としており、弊社のアプリはiOS、Android、Web、Windows、macOS、Linux で優れたパフォーマンスとシームレスなユーザー体験を提供します。各プロジェクトの特定の要件に基づいてテクノロジを慎重に選択し、クライアントに最適なものを提供します。クロスプラットフォーム開発における当社の専門知識により、特に中長期で莫大なコスト削減が見込まれ、市場投入までの時間が短縮され、ユーザー リーチが拡大すると同時に、セキュリティ、信頼性、保守性などの高い技術基準が維持されます。

icon_flutter.png

クロスプラットフォーム
アプリ開発サービス

Aquareteが国内トップクラスの開発を提供できる理由

​より詳しい解説と解決方法はここをクリック!

Aquareteはこれらの問題を解決できます

​ほとんどのIT関係者が日本のソフトウェアの品質の低さとその原因の認識をできていない環境において、弊社代表は日本のIT業界の様々な問題をエンジニア兼リーダーとして長年分析して、解決策を実行して成果を出してきました。前述の当社のガイドラインに従うことにより、Aquareteはここにあげた日本特有のソフトウェア開発の問題とは無縁の、極めて品質が高いソフトウェア開発サービスを提供します。

​日本製ソフトウェアの技術的品質の低さの要因

日本のソフトウェアの技術的品質の低さの最大の要因は、非技術者のプロジェクトマネージャー(以下PM)が、間違った計画と間違った技術者の評価を行うためにおこっています。非技術者のPMはほとんどの場合、短期的に時間のかかる品質を上げる作業(単体テストの作成や技術調査やリファクタリングなど)を禁止し、依頼した機能の実装のスピードだけで開発者を評価します。そのため、開発者は技術的品質をほとんど無視して、最短で実装しようとするため、非技術者には理解できない様々な技術的品質はほとんど無視されて開発が行われます。

 

​​欧米にも非技術者のPMは存在しますが、彼らは自分たちが技術的な評価をする能力がないことを知っているので、ソフトウェアの非機能要件の評価や開発者の評価を行ないません。欧米で開発者の評価を行う主な人物は、アルゴリズム分析、アーキテクチャ指向の実装評価、テストコードの評価などが可能な他の開発者です。これにより、欧米のソフトウェア開発者は論理的根拠をもとに適切に能力を評価される傾向にあるため、高品質なソフトウェアを開発することが可能です。

​朱子学的価値観により問題の認識が広がらない

前述の日本の劣悪なソフトウェア開発の慣習は、大手外資系SIerの日本支社や、日本の大手SIerなどでも同様であり、代表の知る限りでは、一社の大手日本メーカーを除いて、20社以上の日本のソフトウェア開発現場に共通していました。日本のソフトウェア開発のレベルと開発者に対する倫理観は、業界最大手の企業を含めて欧米に比べて圧倒的に劣っています。

この問題は日本のIT業界全体に広がる深刻な問題であるにも関わらず、当事者を含め日本ではほとんど認知されていません。江戸時代前期から日本の価値観の根本にある朱子学の影響で、権威ある個人や集団に対しては、論理や証拠を無視して盲目的に肯定することを美徳とする価値観が日本では一般的です。そのため、ここにあげたIT業界の問題や権力の腐敗も、批判することは幼稚で愚かであるとされるため、これらの問題の認識を拒絶する人がほとんどです。​そのため、現在でもこれらの問題が解決する兆しはほとんど見られません。

これらIT業界の権力の腐敗とそれによる様々な悪影響を改善するには、日本で支配的な中世的で非論理的な判断基準を改め、包括的な論理的思考法の枠組みであるクリティカルシンキングとオープンコミュニケーションを重んじる、業界全体の価値観の転換が必要です。

日本のソフトウェアの技術的品質の低さが生む莫大な損失

多くの日本製ソフトウェアは、セキュリティ、保守性、拡張性、堅牢性といった技術的品質(非機能要件)が欧米と比べて著しく低く、その結果、機能追加やアップデート、リファクタリングなどの開発作業が極めて困難になっています。数多ある品質の低さを示す事例の中でも、最も劣悪な例として、公にリリースするソフトウェアに必須の単体テストなどのテストコードが存在しないソフトウェアが非常に多くあるということが挙げられます。テストコードが存在しないソフトウェアは、ほぼ全ての評価項目が非常に低い粗悪品です。この実態を欧米の開発者と共有すると全員が驚愕し、この問題の深刻さについて深く同意します。

 

技術的品質の低いソフトウェアの開発・運用は、たとえ世界トップクラスのエンジニアであっても多大な困難と時間を要し、品質の高いものと比較して、作業時間が数倍、数十倍、場合によっては数百倍にもなります。開発費や保守費が莫大になるだけでなく、セキュリティが脆弱になったり、開発・運用の継続が困難になることもよくあります。

​30年間エンジニアが潰され続けたので深刻な人手不足

PMの指示によって、技術的品質が低く開発が困難になったソフトウェアの開発において、開発スピードが遅くなり費用が増大したり、リグレッションによりバグが頻繁に発生する場合、その最大の責任はPMにありますが、日本では各作業を担当する開発者へ責任を転嫁されます。PMから開発遅延の責任を押し付けられ、「仕事ができない」とレッテルを貼られた技術者は、社内で見下されるようになり、その結果として精神的に追い詰められることは日本の開発現場で頻繁に起こっています。弊社代表の過去の同僚エンジニアの約7割が精神疾患を経験しており、うつ病で退職していく人々も数多く目にしてきました。

 

多くのIT企業の経営陣以下の非技術者のマネージャー達は、この問題をマネジメントの問題と認識せず、「エンジニア個人の能力がなく弱いため潰れた」として、エンジニアが潰れれば、新たに雇えばいいという考えで、開発者を雇っては潰してというサイクルを繰り返してきました。2010年代に労働時間などは大きく改善したものの、現在でも非技術者のPMにより作成された劣悪な計画と評価に振り回されて、不当な扱いを受け苦しむエンジニアはとても多いです。過去30年間、多くの日本のIT企業でこのような狂った状況が続いた結果、現在の日本ではエンジニアが深刻に不足しており、開発能力が元々低いIT業界全体の競争力をさらに低下させる重大な要因となっています。

Image by Meriç Dağlı

​日本のソフトウェア開発の問題

Flutter開発の利点

​開発・運用費用が半額

Flutter で開発すると、iOS と Android 用に別々のネイティブ アプリを作成する場合と比べて開発コストを 50% 削減できます。このコスト削減は、プラットフォームの数が増えるほど顕著になります。コードベースが 1 つになると、メンテナンス コストも大幅に削減されるため、ビジネスでリソースをより効率的に割り当て、イノベーションに集中できるようになります。

市場投入までの時間を短縮

Flutter 開発によるコストの 50% 削減は、同時にネイティブ コード開発と比較して開発時間の 50% 削減でもあります。ネイティブ開発を個別に行うと 6 ~ 12 か月かかるプロジェクトも、Flutter を使用すると 3 ~ 6 か月で完了できるため、ビジネスをより早く市場に投入し、顧客のニーズに迅速に対応できるようになります。

高性能

React Native や Cordova などの他のクロスプラットフォーム フレームワークと比較して、Flutter はネイティブ コードに直接コンパイルされるため、iOS、Android、デスクトップ プラットフォームでより高いパフォーマンスが保証されます。その結果、読み込み時間が短縮され、ユーザー インタラクションがスムーズになり、ユーザー エンゲージメントが向上し、直帰率が下がり、最終的には顧客を維持する優れたユーザー エクスペリエンスが実現します。

​共通のUI

Flutter は、iOS、Android、Web、デスクトップの各プラットフォームで一貫したユーザー エクスペリエンスを保証します。プラットフォームごとに開発する場合、統一性はなくUIは各OSに依存します。この統一性により、ユーザーはさまざまなデバイスで一貫した体験を享受でき、ユーザー満足度とユーザー維持率が向上します。この一貫性により、アプリとブランドの評判が向上し、顧客ロイヤルティが促進が期待されます。

紫色の携帯ケース

当社のモバイルアプリ開発サービスでは、Flutterを利用して開発することで、iOSとAndroidを個別に開発する場合に比べて、開発およびメンテナンスの時間とコストを半分に削減し、ネイティブアプリに近いパフォーマンスを実現します。さらに、同じコードベースを拡張してWebアプリやデスクトップアプリを作成することも可能で、ビジネスニーズに応じた統合されたソリューションを提供します。

モバイルアプリ開発

データクラウド

高度な機能を備えた Web アプリケーションの場合、軽量で高性能なソリューションとして React を使用します。Webアプリに高度な機能が必要でない場合で、モバイル アプリと Web アプリの両方を含むプロジェクトでは、Web フロントエンドとして Flutter を使用して、開発と保守のコストを削減しながら、一貫したユーザー エクスペリエンスを確保します。

ウェブアプリ開発

キーボード

当社のデスクトップアプリ開発サービスでは、Flutterフレームワークを活用して、Windows、macOS、Linux向けの強力で効率的なアプリケーションを作成します。単一のコードベースを利用することで、3つのプラットフォーム全てに対応するソフトウェアを開発でき、モバイルやウェブアプリの追加のコストも低く抑えることができます。お客様の特定のビジネス要件に合わせたカスタムソリューションを提供し、豊かなユーザー体験と強力なパフォーマンスを実現します。

デスクトップアプリ開発

6596.jpg

当社のバックエンド開発は、信頼性、スケーラビリティ、およびパフォーマンスに焦点を当てています。バックエンドプロセスの管理には、Node.jsやDjangoを使用して柔軟性を持たせ、高パフォーマンスが求められる場合にはGoLangを使用します。データベースには、データの一貫性と信頼性のためにRDBを、高トラフィックおよび迅速なアクセスが必要な場合にはNoSQLを使用しています。また、FirebaseとAWSを使用してスケーラビリティとセキュリティを確保し、認証、ストレージ、サーバーレス機能を効率的に管理することで、クライアントのニーズに合った信頼性の高いソリューションを提供しています。

バックエンド開発

無料コンサルティング申込

問い合わせ種別

お問い合わせ

Aquarete は
あなたのビジョンを現実に変えることができます。

一緒に素晴らしい製品を作りましょう!

ウォーターフォールとアジャイルの融合

ウォーターフォール手法とアジャイル手法の違いの弱点を打ち消すために、私たちはそれらを戦略的に融合し、弱点を最小限に抑え、強みを強化するための重要な要素を選択します。

ウォーターフォール手法から:

  • 包括的な初期計画: 全体的な計画や設計のないアジャイル開発でよく起こる、スプリント フェーズ中に発覚する大きな構造上のエラーを最小限に抑えるために、UI/UX と技術アーキテクチャ選定など全体的な基本設計を事前に作成することに重点を置きます。

アジャイル開発手法から:

  • 反復的な開発サイクル: すべての初期計画は不完全であり、継続的な調整と変更が必要です。スプリント計画で初期の計画とその時点までに判明した事を踏まえた短期的な計画をたて、常に変化に合わせて柔軟に開発を進めることができます。

  • 顧客の関与の向上: 全てのスプリント計画に商品の方針を決めるプロダクトオーナーが参加し、その時点でのアプリの状態の分析から、次の短期的開発内容の方針を決めるため、ウォーターフォールよりもプロダクトオーナーの意思がより反映されたアプリになります。

  • 開発ドキュメントの削減: 開発ドキュメントは知識の伝達とメンテナンスに不可欠ですが、ソフトウェアの最新バージョンとドキュメントの内容を一致させるためのコストを削減するには、そのドキュメントの量を最小限に抑えることが重要です。

​2つのプロジェクトマネジメント手法の比較

ウォーターフォール手法は、1. 包括的な計画と設計、2. 実装、3. テスト、4. デプロイ、5. メンテナンスという順にステップを踏む開発アプローチです。1956年に生み出され、数十年にわたり使用されてきた管理手法です。その強みは、プロジェクト開始時に詳細な計画と設計を行うことで、全体的なプロジェクトスケジュールとコスト見積もりを作成でき、作業のやり直しを減らしてコスト削減につながる点にあります。このアプローチは、安定した、よく理解された要件を持つプロジェクトや、変更が望ましくない、または起こりにくい環境(規制や安全性が重要なプロジェクトなど)に適しています。

 

しかし、ウォーターフォール手法は柔軟性に欠けるため、プロセスの後半で発生する変更に対応するのが難しいです。さらに、詳細なドキュメントを維持することにはコストがかかり、コスト削減のために記録が更新されずに残されることから、ドキュメントと実際のソフトウェアの間に不整合が生じるリスクが一般的です。この不整合は時間が経つにつれて大きくなり、特に元の開発者が退社した場合、さらなる開発が困難になる問題を引き起こします。アジャイル手法の台頭にもかかわらず、ウォーターフォール手法は、予測可能なスケジュール、包括的なドキュメント、および広範なテストが必要な大規模プロジェクト(オペレーティングシステムや大手銀行システムなど)には依然として適した選択肢です。

アジャイル手法は、計画、実装、テストを1〜4週間の短期間のサイクル(スプリント)で繰り返すことで、製品を徐々に完成させていく反復的なアプローチです。この手法は、ウォーターフォールのような伝統的手法の硬直性に対応するために開発され、チームが変化に迅速に適応できるようにします。アジャイルの強みには、継続的な顧客関与、柔軟性、迅速な提供があり、要求が頻繁に変わるプロジェクト(ウェブアプリケーション、ブラウザ、サービスなど)に最適です。アジャイルは、チームが開発中に調整を行い、製品が顧客のニーズやフィードバックに応じて進化することを保証します。この柔軟性により、顧客満足度が向上し、ユーザーの期待により合った製品が生まれます。また、アジャイルの反復的なアプローチは、問題の早期発見と解決を促進し、全体的な品質を向上させます。The Standish Groupの2015年のCHAOS Reportによると、全ての規模の開発プロジェクトの平均の成功率は、アジャイルプロジェクトは39%で、ウォーターフォールプロジェクトの成功率11%を大きく上回っています。

しかし、アジャイルにはウォーターフォールと比較していくつかの弱点もあります。包括的な初期計画がないため、全体的なスケジュールやコストの予測が難しく、予算が不確実なままになることが多いです。詳細な設計がないと、基本的なアーキテクチャの考慮が欠けることがあり、後にシステムのスケールや統合に課題が生じることがあります。また、アジャイルプロジェクトはスコープの膨張(スコープクリープ)のリスクに直面し、継続的な変更が要件の無秩序な増加を引き起こす可能性があります。

ハイブリッド プロジェクト マネジメント

フェーズ2:
開発 / スプリント

開発フェーズは1−4週間のスプリントと呼ばれる期間に分かれています。スプリントは、前回のスプリントまでで作成された状態のアプリに対して、顧客からのフィードバックを受け、次のスプリントの作業内容を決定します。

1. スプリント計画

スプリント計画では、チームがユーザーストーリーを精査し、優先順位をつけ、作業量を見積もり、管理可能なタスクに分割します。この結果、ユーザーストーリーに基づいたスプリントバックログが作成され、スプリント全体を通してチームを導き、プロジェクトのロードマップに整合します。プロダクトオーナーからの定期的なインプットにより、計画が最も価値のある機能に焦点を当てていることが保証されます。

2. デイリースクラム

デイリースクラムは毎日行われる短く集中したミーティングで、通常15分程度です。チームメンバーは、前回のミーティングからの進捗状況、当日の計画、および作業に影響を与える可能性のある障害を議論します。

3. コーディング

コーディングは、ユーザーストーリーを動作するソフトウェアに変換する作業で、定められたコーディングスタンダードおよびベストプラクティスに従います。コーディングプロセス全体で、コードコメントやAPI説明などの基本的なドキュメントが最新の状態に維持されます。

4. テストコード作成

単体テストと結合テストはテストコードを作成して行うことで、作成されたコンポーネントが正しく動作することを確認し、バグが発生した場合は自動的に検出します。その重要性にもかかわらず、非技術者のマネージャーはテストコード作成を無駄な作業と断定し禁止することが多いですが、ソフトウェアの信頼性、保守性、および全体的な品質を保証するのに必須のプロセスです。

5. 品質保証

品質保証(QA)では、完了した機能を徹底的にテストし、基準を満たしていることを確認します。これには、機能テスト、性能テスト、セキュリティテスト、ユーザビリティテスト、互換性テスト、回帰テストが含まれ、新しい変更が既存の機能に問題を引き起こさないことを確認します。

走る男

フェーズ1:
計画とセットアップ

目標策定、基本設計、インフラや開発環境の準備など開発の基盤を整えます。

1. プロジェクト計画

計画段階では、お客様の目標と初期要件を聞き取り、予算以内で要件を満たす機能の仕様をお客様と決めていきます。この初期の仕様書は開発中に変更箇所が出ることがほとんどですが、アジャイル開発手法により、開発が進んでも柔軟に、プロジェクトをお客様のビジョンに合わせることができます。

2. UI/UXデザイン

当社の UI/UX デザイナーはお客様のプロダクトオーナーと緊密に連携し、ユーザーの利便性を向上させ、アプリの評価を上げるさまざまな機能をプロトタイプで試作して、取捨選択し、ユーザーにとって直感的で機能的なデザインに改良していきます。

3. 開発基盤の設定

お客様のアプリケーション向けに、スケーラブルで安全なアーキテクチャの青写真の作成と開発環境構築をします。システム構造を定義し、適切なテクノロジーを選択することで、さまざまなリスクを最小限に抑え、効率的な開発の基盤を整えます。

プロトタイプデザイナー

1. デプロイ

デプロイフェーズでは、サーバーの設定、データベースのセットアップ、プラットフォーム固有の要件を処理しながら、アプリを市場にリリースします。ローンチを監視し、問題が発生した場合には迅速に対処します。

2. メンテナンスとサポート

デプロイ後、パフォーマンスの監視、バグ修正、定期的なアップデートなど、継続的なサポートを提供し、アプリを競争力のある状態に保ち、ユーザーのニーズに合わせ改善していきます。

フェーズ3:
デプロイとメンテナンス

スムーズな立ち上げを保証し、継続的なメンテナンスとサポートを提供します。

モバイル顧客

ソフトウェア開発ライフサイクル

技術的ガイドライン

  • CEOを含む開発部門の全リーダーは、深い知識と経験を持ったソフトウェア開発者であり、常に開発者としてプロジェクトに参加できる能力を有しています。

  • 開発者は全員、英語での開発調査や学習に長年の経験があります。

  • 開発のベストプラクティスやツールは、新しいものを積極的に取り入れ、最適な組み合わせを追求しながら、常に更新を続けます。

  • 各言語、フレームワーク、ツールには習熟度が存在するため、社内で使用する技術は最適なものに限定し、種類を増やしすぎないように管理します。開発者は各フレームワークやツールに関する基本知識を早期に習得し、高度な知識は必要に応じて学習します。習熟度は定期的にチェックされます。

  • 基本的なアルゴリズム分析とよく使用されるデータ構造の理解は、すべての開発者に求められる必須スキルです。

  • 全開発者は、使用しているアーキテクチャ、モジュール化やDIなどの疎結合、各種テストの知識と実装能力を持っています。

  • ほぼ全てのビジネスロジックには必ずテストコードが書かれます。これにより、機能開発、リファクタリング、バグフィックスがスムーズに進行し、エンジニアがストレスなく作業を進めることが可能になります。

非技術的ガイドライン

  • 全社員は、学歴、職歴、年齢、性別、人種に関わらず、公平かつ公正に職務能力が評価されます。

  • すべての計画や評価において、物事の是非は権威によってきまらず、批判的思考に基づき、客観性と証拠を重視した論理的な意見を採用します。

  • オープンなコミュニケーションを奨励し、全員が自由に意見を述べることを推奨します。自己中心的な理由を除き、目上の人に対する反論や議論も歓迎されます。

  • いかなるハラスメントも許容せず、いじめやパワハラなどを徹底的に排除します。オープンコミュニケーションを推進する上で、ハラスメントの脅威を取り除く必要があります。たとえ会社にとって重要なスキルを持つ人物であっても、他者へのハラスメントがあれば必ず罰します。これは、いじめが隠蔽されることが常態化している日本企業では非常に稀な姿勢です。

Mount Fuji

Aquareteの開発チームは、創設間もないにもかかわらず、中規模以下のソフトウェアであれば、大企業を含むほとんどの日本の開発チームを凌駕する開発力を誇ります。当社は下記のガイドラインに基づいて開発チームの能力を管理して開発を進めるため、日本のソフトウェア開発でよく見られる、誰にも解決策がわからない混沌として制御不能な開発状況に陥ることはありません。

下記のガイドラインにより、開発者が心身ともに健康で充実した生活を送ることと、品質の高いのソフトウェアを生み出し顧客やユーザーに素晴らしい体験を提供することの両方を実現します。

bottom of page