ある時点で、プログラムが開発中です。機能は常に追加、削除、または変更されています。すべてのバージョンはプロトタイプにすぎません。ですから、その時点で非常にきれいなコードを書くことに時間を無駄にしないのは、何かがいつまで続くかわからないからです。もちろん、コードの品質を特定の標準に保つよう努めていますが、時間は常に問題です。
次に、プログラムが終了し、意思決定者が「それでいい」と言うところまで来ます。私はこの時点で動作するプロトタイプを持っていますが、内部のコードは開発フェーズの前後で少し面倒です。テスト/最終デバッグを開始することが期待されていますが、メンテナンスなどを容易にする適切なアーキテクチャを提供するために、なんらかの方法でクリーンアップおよび/または書き直すべきであると言っています。
ひとたびテストされ承認されたら、その時点で書き直すことは意味がありません。定期的に「完成した」プロトタイプを使用してそこに立ち、テスト中にバグが発生します。これは、開発プロセス全体の結果であるスマートでないコーディングの結果であることがわかります。私はテストの最中であり、バグ修正は書き直しになるでしょう...それは混乱です!
より良い/教科書的な方法があります、私は確信しています。しかし、私はすべてが教科書ではない実際の職場環境で働かなければなりません。
それでは、どのように作業中のプロトタイプを安定したコードベースを備えたリリースバージョンに移行するのですか?たぶん、開発が完了したと考えるべきではなく、実際にクリーンアップフェーズと見なすべきです...わかりません。ここで助けが必要です。
編集
いくつかのことを明確にしたいと思います。
私はコードをクリーンで読みやすいコードの前後ではなく、100%実行しています。しかし、私はまた、物事を成し遂げなければならず、コードの美しさをすべてきれいで輝くように夢見ることはできません。妥協点を見つけなければなりません。
多くの場合、新しい機能は実際に試してみて、このようなものを実装する意味があるかどうかを確認したいものです。(特にモバイルアプリでは、実際のデバイスで実際のルックアンドフィールを取得するため)最初の「見てみよう」の繰り返しで(imho)があまり多くの作業を正当化しないのは小さなものです。ただし、このtech.debtを支払うときに疑問が生じることがありますか?それがこの質問のすべてです。
機能の半分が1日後に削除されることがわかっている場合(今までの会社での十分な経験)、私の問題にアプローチする最善の方法は、それでもすべてをきれいに書くために余分な時間を費やすことであると信じることは本当に難しいと思いますそのほとんどはまもなく削除されます。物事が固まったら一度大きなクリーンアップをすれば時間を節約できると感じているので、私の質問です。