私は、5年以上にわたってほとんどソロでソフトウェアプロジェクトに取り組んできました。始めは混乱でした(私が取り組んでいる3番目または4番目の開発者です)が、混乱は少なくなりましたが、まだ非常に混乱しています。それを制御できるようになるまでの進行速度は氷河期であり、私はそれが現在の状態に落胆し始めていると感じています。
プロジェクトの詳細:これは、ほぼ完全にVisual Basic Classic(VB6)で記述された販売プログラムで、MySQLバックエンドとレポートエンジンがC#で記述されています。C#レポートモジュールは、作業するのが楽しいです。過去数年で書かれたばかりで、Crystal Reports 9ですべてのレポートが作成されました(はい、まだ依存しているレポートがいくつかあります)。
ただし、実際のプログラム自体は完全な災害です。LOCの合計は90,000ほどではなく、コメントの行数は10,000になります(ほとんどはドキュメントではなく、コメントアウトされた古いコードです)。158個のフォームファイルと80個のモジュールファイル。プログラムの一部の機能は単純に非推奨になり、(場合によっては)関連するコードをプログラムから削除せずにそのように表記されるため、それらのどれだけが実際に使用されているのかわかりません。実際に生産的に使用されているのはコードの50%だけだと思います。
あいまいなクライアントが依存している何かを壊しているかどうかわからないという理由だけで、多くのコードに触れることを恐れています。コード全体に地雷が散らばっているようなものです。
プロジェクトには実際には構造がありません。私がこれまで改革する忍耐を持っていたいくつかの場所を除いて、それはオブジェクト指向ではありません。フォーム上のデータを取得する必要がある場合は、データベースオブジェクトをインスタンス化し、関数内でクエリを宣言し、それを実行して、データセットで必要な処理を行います。
プロジェクトの作業を開始したとき、使用中のソース管理はありませんでした。私が取り組んでいる他の人々にそれを使用するように奨励しようとしましたが、私は新しい人であり、人々にSubversionを使用させるための私の試みは失敗しました。同社の主任開発者はここ数年でようやく水銀のバグを発見し、すべての開発者が現在すべてのプロジェクトでソース管理を使用していることを確認しました。
プロジェクトの改革にフルタイムで取り組むことができた場合、まともな進歩を遂げることができ、おそらくプロジェクトを完全に改造するのにどれくらいかかるかを見積もることさえできると思いますが、それは積極的に使用されています火を消す、バグを修正する、機能を追加するなどのように常に求められます。
では、どうすればこのプロジェクトを実際に修正し始めることができますか?別の言語でVB6を使用してみませんか?空き時間にプログラムを書き直してみてください。またはこれは完全に絶望的ですか?
更新
この投稿の後、私は熱心にプロジェクトに戻りましたが、そのようなゆっくりした進歩を見た後、数ヶ月以内に絶望に陥りました。それから、このサイクルを来年かそこらでさらに2、3回繰り返しました。
それから別の仕事に移りました。vb6の長年の経験と、他のテクノロジーの周辺経験だけでしたが、検索は難しく、途中で多くの拒否に直面しました(1年間で約12件のインタビュー)。この状況にある他の人への私のアドバイスは、この要素だけを残すことを検討することです。このような行き止まりの位置にとどまることによってあなたのキャリアに与えるダメージを考えてください。