web-dev-qa-db-ja.com

プロトタイプはいつアルファソフトウェアになりますか?

紙のプロトタイプ、またはAxureのようなもので構築されたプロトタイプのフェーズを超えた後、HTML、CSS、およびJavaScriptで迅速かつダーティなWebプロトタイプを構築することがよくあります。これまでのところ、他のプロトタイプと同じアプローチをとっていますが、これらはテストされ、ユーザーのフィードバックを得るために使用され、最終的には破棄されることを意図しています。

ただし、最近、これらのプロトタイプに基本的に実行可能な製品になるまで機能を継続的に追加するために、お客様から複数の機会がありました。通常、UXプロセスで使い捨てプロトタイプからアルファソフトウェアに移行する必要があるのはいつですか。

30
gotohales

質問への答えがneverであることを願っています。

プロトタイプはテスト用です。最も「ハッキー」なアプローチを使用して構築され、最短の時間で、コンセプトが実行可能かどうかに関する最初のフィードバックを取得します。

アルファは、実際のユーザーに与えるものです。これはバージョンであり、成功した場合は、ビルドしてベータ版になり、最終的には製品を公開します。私はあなたのアルファがあなたが構築できる十分にしっかりした基礎の上に構築されることを望みます。

ハックなプロトタイプは通常非常に貧弱な基盤を提供します。適切なフレームワークに基づいたプロトタイプがある場合(非常にまれであり、より低Fiのプロトタイプで問題を解決できるかどうか疑問に思います)、MVPのすべての機能が完了し、開発者が十分な安定性を持っていると感じたときX個のアルファクライアントをサポートします。そして、クライアントなどからのバグを処理するための計画を立てています...ソフトウェアのアルファテストを開始してもかまいません。

それ以外の場合...プロトタイプはプロトタイプのままにして、アルファを最初から適切に構築してください。

複数のプロトタイプを見た設計者からの2セントは、実際の製品コードになり、その不安定な基盤の上に構築しようとするチームの悪夢になりました。

77
nightning

ウェブサイト関連のプロジェクトで主に自営業/フリーランスで作業している場合、それが(稼働中の)プロトタイプか(バギー)アルファ版かは、開発者/デザイナーの決定だと思います。プロトタイプが公開されることは決してありませんが、アルファ版はおそらく公開されます。これら2つの間に線を引くのは難しいですが、私にとって、またはWebプロジェクトの場合、「オンラインになっている」と言った瞬間です。

または、ソフトウェアリリースライフサークルを見つけることができるので引用します wikipediaで –しかし、私自身の言葉では、アルファバージョンはソフトウェアの(最初の)バージョンです–プロトタイプがその前に来ます。

7
tillinberlin

夜間とは異なり、質問の答えがalwaysであることを願っています。

詳細設計について

プロトタイプを使用したユーザーテストで使用したのと理想的に同じである完全に仕様化された設計ではない場合、開発者に提供可能な設計で他に何を提供しますか?

私の経験では、デザイン、つまり解釈の場所に石を残しておくと、開発者はあらゆる種類のソリューションを考え出すことができます。

そして、テストでプロトタイプA.01を使用し、その後、設計A.05を開発者に提供する場合、2つの間のギャップはテストされません。

間違いなく、初期のプロトタイプは多くの場合、主要な設計上の課題に限定されますが、後期のプロトタイプは、私の見解では、できるだけ実物に近いはずです。

現代のコード化されたプロトタイプ

多くの設計が過剰な相互作用(およびアニメーション)を伴う今日の時代には、機能的なプロトタイプがますます重要になっています。個人的には、一部のデザインのインタラクティブな要件により、これらを静的ドキュメントで綴ることはまったく意味がありません。インタラクティブプロトタイプ(実際のウェブサイト)で「これはどのように機能するか」というデザインを提供し、インタラクティブプロトタイプで表示できない(または明確でない)ものをデザインドキュメントに綴る場合があります(たとえば、「並べ替え」 「アクティブ」とは、投稿と返信の両方の最新のタイムスタンプを意味します」)。

デプロイされたプロトタイプ

開発者としての時間を費やしてきた私は、最近ワイヤーフレームを完全に捨てて、過度のスケッチからHTML、CSS、AngularJSを使用したプロトタイプの作業に直接移行しました。バックエンドはすべて実際のシステムをシミュレートするスタブですが、フロントエンドは、少なくともかなりのケースで、実際のシステムにコピーして貼り付けることができます。

ただし、夜間の説明で述べたように、これらのプロトタイプでは速度が重要であるため、プロトタイプは期待どおりに動作しますが、ほとんどの場合、コードはかなり汚れています(正しくコーディングするのに時間を費やす必要はなく、機能するだけで十分です)。そのため、追加のリファクタリング作業がしばしば必要になります。

4
Izhaki

これはソフトウェアの方法論に依存すると思います。これはどういうわけか私にeXtremeプログラミング(XP)を思い出させます。そこでは、最も単純なソリューションから始めて、短い開発サイクルを通して新しい機能を追加し続けます。

このような方法論に従っている場合は、主な機能が含まれているときに移行できます。

以前の回答に同意することはできますが、これが常に可能であるとは限りません。実際のクライアントプロジェクトの多くでは、要件の完全かつ限定的なリストがありません。多くの場合、顧客は多くのことについて非常に限られた知識しか持っていません。したがって、拡張(または縮小さえ)できる実装する機能の動的なリストがあります。要約:

  • プロトタイプ:クライアントに提示できるシンプルな概念実証。
  • アルファ:すべて(またはほとんど)の主要機能が実装されています。
  • ベータ:すべての機能が実装されました。
  • リリース:ベータ版+お客様の承認。これは、顧客によるテストが成功したことを意味します。

注:この方法論に従っている場合は、実装するすべての機能をテストします。

出典: http://en.wikipedia.org/wiki/Extreme_programming

2
FranMowinckel

tl; dr

はい

バージョン管理システム

セマンティックバージョンは、最終製品へのステップのバージョン/名前を付ける多くの方法の1つにすぎません。そしてalphaSemantic Versionアイデアの一部にすぎません。他のシステムでは、Alphaバージョンのようなものはありません。

一部のバージョン番号システムは、単にインターフェースの変更にラベルを付けることを目指していますが、人間の経験にはこれ以外の多くのものがあります。バージョンは単なる数字の場合もありますが、実際に必要なのは詩の場合もあります。

引用: 感傷的なバージョン管理

(ある)バージョン管理

現在、すべてのソフトウェア製品はVCSを使用する必要があります バージョン管理システム 最初から。これにより、開発者と設計者は迅速に反復し、異なるブランチに個別の要素を保持し、バリアントA.1からバリアントA.23にパーツをマージして、違いを示すことができます。 「プロトタイプ」がバージョン管理されている限り、それはすでに最終製品の一部です。

ヒント:たとえばGitは、孤立したブランチまたはサブツリーに分割して、それらを分割することができます。

ワークフローが変更されました-あなたのツールキットも

Yeoman のような最新のツールを使用すると、ジェネレーターを使用してすばやくbootstrap yourApplicationを使用できます)。ウェブフロントエンドのprototypesの例です。実際にあるものから始めます。 GruntGulp 、- Robo およびスキッププロトタイピング段階を支援し、生産で使用する足場に直接ジャンプする他のタスクランナー。

結論

もし誰かがnoを受け取った場合、彼らは1998年スタイルのツールキットで立ち往生しているだけです。足場アプリケーションは今何が起こっているかです。モックするのはデータベースだけです。そしてそれでも、あなたは Mock frameworks を得ました。

2
kaiser

プロップタイプは各ページのデータを構成していると思いますが、多くの場合、異なるページのデータは互いに関連していません。例えば。それは、実際には使用できないように概念を示しています。

しかし、アルファはデータがsavedであることを許可し、次に起動するときに、保存されたデータを使用します。

多くの場合、プロトタイプはすべての概念を表示しようとしているため、アルファはプロトタイプよりも「機能が少ない」でしょうが、アルファには、だれでもそれを使用できるようにするために最も必要なページがあります。

0
Ian

プロトタイプ:一部の機能がまだない/不完全なデモ/テストバージョン

Alpha:すべての機能が完了

ベータ:すべての機能が完了、既知のバグなし

(少なくとも理論的には;))

0
Roman Reiner