一言で言えば、私はWebアプリケーション開発用のプロセス/テクノロジースタックを見つけようとしています。これは、プロトタイプを作成するのが簡単/高速/柔軟ですが、堅牢な本番プラットフォームへの明確なアップグレードパスがあります。
以下に長い説明をお詫び申し上げますが、問題は技術とプロセスの間にあり、それを表現する簡単で短い方法を見つけることができません。そして、はい、私は「良い主観、悪い主観」の記事を読みました。
現在、Java EEをすべての打撃とホイッスル(アジャイル、継続的インテグレーション、問題追跡、単体テスト、休止状態/スプリング/ストライプ/ jqueryスタック...)で使用しています。また、GUIモックアップ(kudosからBalsamiqモックアップ)の作成およびその後のHTML静的ページのプロトタイプと並行して機能を収集する柔軟なプロジェクト定義/分析プロセスを使用します。開発中は、クライアントのレビューを含む中間ビルドを頻繁に行います。したがって、テストフェーズに入ると、機能はターゲットの90%になり、必要なのはバグ修正と最終的な堅牢性の向上だけです。
従来のクライアント、つまり銀行や製薬会社にとって、上記のプロセス/テクノロジースタックは魅力のように機能します。
しかし最近、私たちはインターネットのスタートアップのために開発しています。この場合、プロセスはまったく異なります。いくつかの基本的なモックアップから始めて、最初の非常に生のプロトタイプが作成されます(多くの静的ページとコアシナリオをカバーするいくつかの基本的な機能)。次に、本格的なアプリケーションの開発を開始します。
ここで重要なステップです!アプリケーションが公開されると、マーケティング/ビジネス担当者は初期の鳥からフィードバックを受け取り、競争を観察し、結論を出し、アプリケーションを変更したいと考えます。多くの! しかし、この時点ではもうプロトタイプモードではなく、何百もの単体テストが組み込まれた、堅牢で本番品質のJava EEアプリケーションがあります。進化させることはできますが、簡単でもアジャイルでもありません。
1)プロセス側では、利用可能なすべての視覚的および形式的なツールを使用して仕様を明確にしようとしましたが、無駄でした。市場が話す前に誰も仕様を修正することはできません。
2)RubyOnRailsやPHPなどのより「柔軟な」環境を試しました。
2.a)プロダクショングレードの品質については、Java EEと比較してまだ少し週のようです(はい、最も重要なサービス/アプリのいくつかはPHPで書かれていることを私は知っています)
2.b)「柔軟な」方法で使用すると、プロトタイピングには最適ですが、生産品質を上げるのが難しいコードを取得できます。
2.c)すべてのベストプラクティス(階層化、単体テストなど)を実装すると、複雑さは、すでに持っている標準のJavaEEの複雑さに匹敵するようになります。
3)アプリを公開するときは、洗練された堅牢なものである必要があるため、簡単にプロトタイプを作成することはできません。
4)使い捨てのプロトタイプを作成することを提案した場合、クライアントはそれを使い捨てと見なすことを拒否し、生産品質に戻すように要求します(最初から開発にお金を払うつもりはありません)。
したがって、基本的には、「品質」(意図する構造、堅牢性)をプロセスの早い段階で、必要がなく、変更や柔軟性の妨げになっているときに配置します。
何か案は?