私は多くの場所で、製品を開発するときは、プロジェクトを開発するときとは異なるアプローチを取る必要があることを読んだことがあります(「契約」作業を考えてください)。
いくつかの違いは次のとおりです。
1)明確なユーザーは存在しませんが、「ユーザーベース」です。
2)最小限の市場性のある機能セットを開発する必要があります。
3)決まった締め切りがないことが多いので、スケジュールを監視する必要があります。製品が長時間稼働する可能性があります(またはスコープクリープのため)。
両方の経験を持つ人がいるのか、彼らが知っている違いに何らかのインプットを提供できるのかと思っていました。また、誰かが違いに対処する方法についてのヒント/良いリファレンスを提供できれば、私は最も感謝します。
いくつかの重要な違い:
質問に記載されている違いは、実際には製品とプロジェクトの本質的な違いではないと思います。たとえば、完全な機能セットを備えた製品の発売を想像できます。プロジェクトには、広くゆるく定義された「ユーザーベース」がある場合があります。また、製品とプロジェクトの両方で、スケジュール/スコープのクリープに問題が発生する可能性があります:-)
これはリンゴとオレンジです。一方が他方を除外しているかのように比較はありません。製品の利益のためにプロジェクトに取り組むことができます。
製品を構築する品質は1と2に重点を置いていますが、3は正確ではありません。製品であるという理由だけで、スコープのクリープが許容範囲内である、または危険性が低いという意味ではありません。製品の作業を決定するとき、スケジュールのニーズを満たし、コストを管理することが重要であるため、実行可能な機能開発を1つ以上のプロジェクトに適合させる必要があります。
問題の事実は、「ソフトウェア製品」が一部マーケティング用語であることです。適切な品質の実用的なソフトウェアがあれば、それをブランド化し、宣伝し、それを多くの顧客に販売することができます。
ソフトウェア設計が関係するのは、さまざまな顧客向けのカスタマイズ可能な機能セットの巧妙な融合であり、単一の顧客を獲得するためのカスタム開発の必要性を可能な限り最小限に抑えるようなソフトウェア製品を作ります。これは非常に難しい作業です。
あなたの組織が製品作業がスコープのクリープとフローティング期限を許容できるものにするという言い訳を使用している場合、彼らは単に言い訳をしているだけです。
プロジェクトを計画するときは、次のことを考慮する必要があります。
一方、製品を計画するには、次のことを考慮する必要があります。
1。一般的な機能:製品の不可欠なコンポーネント、製品が存在しない特性。
2。期待される機能:ターゲットのお客様が一般的に想定または期待する機能
。その他の機能:製品の強度と価値を高める機能
4。潜在的な機能:製品を一意かつ明確にすることを目的とした機能であり、それにより顧客維持に貢献します。
Y2Kを処理する新しいバージョンをリリースしたとき、私は小さなソフトウェア会社で働いていました。私にとって最大の違いは、ユーザーとその環境の制御と一貫性です。
誰かがまだあなたの時間を支払っており、彼らがあなたのアプリを持っていないためにビジネスや生産性を失う可能性があるので、時間の需要はそれほど異なるとは思いません(そもそも彼らがそれを購入しているのはなぜですか? )。無料のソーシャルアプリを作成し、借用したお金を使用している場合、投資家は製品を後日よりも早く見たいと考えています。
3つのポイントすべてがプロジェクトにも適用できます。これは、実際の例を視覚化するのに役立ちます。大企業(プロジェクト)向けの内部課金システムの開発と、広く販売する(製品)課金システムの作成です。
いくつかの違い:
1)プロジェクトで「十分に良い」で満足できます。製品の品質に対する期待が高まっています。
2)1つの製品で、より多くのハードウェアおよびソフトウェア構成に対応する必要があります。
3)ユーザーは、製品を離れている可能性が高くなります。使用状況データを取得することは困難ですが、不可能ではありません。
4)製品を使用すると、統合を他の誰かに任せる可能性が高くなります。