私は本当に鈍くなります...
- この仕事の開発者を担当していますか?
- あなたはプロジェクトリーダーですか?
- 開発者はプロジェクトにどのくらいの「ステーク」を保持しますか?
- 書き換えのビジネス上の正当性は何ですか?
- 完全に役に立たず、回復不能にするコードベースについてはどうですか?
あなたは、あなたが仕事を始めたばかりであると述べましたが、あなたはすでにその状況のマスターであるように見えます。おそらく私はあなたの質問の意図を誤解しているかもしれませんが、あなたは多くの問題を抱えている仕事に就き、コードが壊れている唯一の方法である最も簡単な結論に飛びついたという印象を受けます書き直しますが、それを行うために雇用主の費用を本当に考慮しましたか?
既存のコードベースでは、状態がどれほど貧弱であっても、所有者は通常、コードが表す製品にかなりの投資をします。コードベースに関連する直接コストと間接コストの両方があり、コード資産の価値を下げるリスクがあるため、ソフトウェア開発者として書き直しが最後にしたいことがよくあります。尽力。
例として、Windowsのオペレーティングシステムを取り上げます。新しいバージョンが作成されるたびに、以前のバージョンから引き継がれた大きなコードの塊がありました。場合によっては、ライブラリとAPI全体がOSの複数の世代に渡って前方にドラッグされます。どうして?開発者は、これらの要素が機能し、テストされ、セキュリティとメモリの問題を防ぐためにパッチが適用され、修正されていること、そしてその状態に入るのに莫大な費用がかかっていることを知っています。メンテナンスコストが比較的高くても、最初から作業を開始するためのコストは常に高くなりますが、Microsoftの場合のように、銀行には数十億の銀行があります必要に応じて最初から始められるようにしますが、そうしません t投資からのリターンを最大化するため。あなたの雇用主は、プロジェクトに投入する現金が数十億ドルあるということを除けば、マイクロソフトと同じです。
そのため、このコードは混乱し、会社のさまざまな分野の間にコミュニケーションと境界の問題があるように聞こえます。これについてあなたや同僚は何ができますか?
1つの選択肢は、チームがこれまでと同じように継続し、将来の奇跡を期待することです。おそらく良い考えではなく、あなたの欲求不満とストレスを増やすだけでしょう。
より良いオプションは、単純にこじって仕事をすることですが、この一環として、最も脆弱であると思われるコード領域をサポートするテストを追加し、それらがより安定するまでリファクタリングする機会を探します。会社の投資を改善するという説得力のある議論をするだけで、すべてを捨てるのではなく、時間を節約できます。
さらに優れたオプションは、チームとして編成され、チームがコードベースを改善するための時間をスケジュールするための柔軟性を高めることができるように、十分な年配の人を確保することです。会社の忙しさやスケジュールの厳しさは気にしませんが、1つか2つの改善を行うために使用できるアクティビティには、時折「だまし」があります。ただし、他のタスクを完了しながら改善を行うことができればさらに良いでしょう。それが私なら、ソフトウェア開発者が読む標準的な本のいくつかのコンセプトをマネージャーに紹介し、それらを紹介します。 きれいなコードおそらくあなたのチームが最も必要とするものです。コードを改善する方法についていくつかの種を植え、あなたが何を意味するかのいくつかの例を提供します。特に技術的負債の概念を説明できる場合、優れたマネージャーはコードに漸進的な改善を加えることの価値を理解します。チームリーダーまたはマネージャーがコードを改善するための優れたビジネスケースを作成できるように支援してください。そうすれば、コードに基づいて行動するより良いモチベーションが得られます。
「コードが乱雑だ」と言うだけでも十分ではありません。同僚に常にきれいなコーディングを練習するように促し、きれいなコーディング手法を使用して、少しずつ片付けを促す必要があります。新しい仕事に就くたびに、小さなポスターを印刷して、オフィスの壁に掛けます。「常に、あなたが見つけたよりも少しだけ美しいコードを残すよう努めています」と書かれています。そのすぐ隣に、「ユリは金メッキする必要はありません」という別のコメントを追加します。どちらも、私が見つけたものを常に改善するよう努めるべきであるが、ある問題を別の問題と単純に金メッキすることを避けなければならないことを思い出させてくれます。大量の書き換えは、しばしば間違った理由で行われるため、最悪の種類の「金メッキ」です。まったく新しい製品バージョンがいつか正当化される可能性がありますが、