開発における最も重要な教訓の1つは、いつ停止するかを知ることです。
通常起こることは、開発者が機能を追加することです。その結果、より多くのアイデアが生まれます。したがって、より多くの機能が追加されます。つまり、あなたが言ったように、プロジェクトがベーパーウェアになる方法の1つです。開発者はプロジェクトを「完成した」とは決して見なさないため、リリースされません。
習得したい習慣は、リリース/バージョンを「完成した」プロジェクトとして考えることをやめることです。むしろ、開発を長期的なプロセスと見なしてください。リリースは、いつかあなたがプログラムに期待するものへの道に沿ったマイルストーンと考えてください。したがって、リリース/バージョンは、長期的なプロセスにある場所のスナップショットに過ぎません...十分に検討され、テストされたスナップショットです。
実際にできることは、座って次のリリースを指定することです。徹底的に徹底する必要はありません。次のリリースに不可欠だと思われる3〜5個の新しい主要機能を書き留めてください。(機能の実際の数はアプリの種類によって異なる場合がありますが、バグの修正やGUIの軽微な変更はカウントされません)これらに取り組みます。他のアイデアを思いついた場合は、それで構いません...次のリリースでメモを作成して実装するだけです。これらの3〜5個の項目を完了すると、リリースのベータ版の準備が整います。
新しいアプリケーションを開始するとき、私は通常、アプリケーションの最終的な「ビジョン」について考えます。それは、私にとって、アプリのバージョン3で欲しいものです。そのベンチマークで、私は固体バージョン1を作るもののアイデアを持っています-ちょうど基本。
概要:
各リリースは、プロジェクトの完成した「ビジョン」である必要はありません。そのビジョンに向けたマイルストーンです。