回答:
私も完璧主義者である傾向があるので、私は常に適用するという単純なルールがあります。そして完璧主義は平凡にあなたを導きます。
期限を設定します。その期限に出荷します。
持っていることから、あなたのソフトウェアを防ぐためにunfishinedそれが使用できなくなります不足している機能の状態を、この定義に使用して行わあなたが作る各機能のために。すべての手順が完了するまで、次の機能を開始しないでください。
マウスを1回クリックするだけでリリースを作成できると思います(ビルドスクリプトを使用)
私が答える前に(または実際に答えを提案する前に)、私は大規模なプロジェクトの経験があまりなく、読んだことを述べ、原因の1つであると信じるだけだと言わなければなりません。私はよく間違っているかもしれませんが、私が受け取るすべてのコメントからおそらく何かを学んだでしょう。^^
プロジェクトの進行中にコードを劣化させないことが重要な要素の1つだと思います。これは多くの方法で防ぐことができますが、そのうちのいくつかしか知りません。
リファクタリングに時間をかけすぎないでください。リファクタリングには時間がかかりますが、余分なパラメータを考慮してコードを書き直す必要がなかったという理由だけで、複雑な関数呼び出しを実行する必要はありません。より直感的で重複の少ないコードは、バグの数を減らします。
壊れた窓を修正:で実用的なプログラマー、私は壊れた窓として知られている現象をお読みください。著者は、建物が劣化するのと同じ方法でコードが劣化し始めると主張します:それは壊れた窓から始まります。コードでは、これは醜い修正、変数、関数の命名を意味します。一般的には単に悪いコードです。私はこれが当てはまることを発見しました。コードの基礎がしっかりしているとき、私はより良いコードを記述し、コーディングに満足しています。壊れたウィンドウが多すぎると、良いコードを書く努力をしたくないことがよくあります。したがって、壊れたウィンドウが表示された場合は、できるだけ早く修正してください。必要に応じてリファクタリングします。これにより、バグが少なくなり、不要な調整が行われます。
そして、ピエール303の答えを読むことを忘れないでください。
「多すぎる」調整と変更とは何ですか?ソフトウェアのメンテナンスには、ソフトウェアの初期開発よりもはるかに長い時間がかかる場合があります。何も問題はありません。整理するには、課題追跡を使用します。
とにかく、もちろん最初はできるだけ良いものにしたいと思うでしょう。そのため、テストに勝るものはありません。