Я работаю над программным проектом в основном соло более 5 лет. Для начала это был беспорядок (я - третий или четвертый разработчик, который работает над этим), и хотя теперь он не такой беспорядок, он все еще невероятно дезорганизован. Уровень прогресса в установлении контроля над ним является ледниковым, и я начинаю чувствовать себя подавленным из-за состояния, в котором он находится. Как мне действительно начать это исправлять?
Особенности проекта: Это программа продаж, написанная почти полностью на Visual Basic Classic (VB6) с серверной частью MySQL и механизмом отчетности, написанным на C #. С модулем отчетности C # приятно работать, он только что был написан в последние пару лет, и до этого все отчеты были сделаны в Crystal Reports 9 (да, у нас все еще есть некоторые отчеты, которые полагаются на него).
Сама программа, однако, является полной катастрофой. Всего не совсем 90 тыс. LOC и около 10 тыс. Комментариев (в основном это не документация, а старый закомментированный код). 158 файлов форм и 80 файлов модулей. Я понятия не имею, сколько из них фактически используется, потому что некоторые функции программы просто устарели и (иногда) отмечены как таковые без удаления связанного кода из программы. Я предполагаю, что только 50% кода находится в реальном продуктивном использовании.
Я боюсь трогать большую часть кода только потому, что я не уверен, что я ломаю что-то, на что полагается один неясный клиент, это случалось чаще, чем я могу сосчитать. Как будто в кодексе заложены мины.
В проекте нет никакой структуры. Он не является объектно-ориентированным, за исключением тех немногих мест, где у меня хватило терпения реформироваться. Если вам нужно получить данные в форме, вы создаете экземпляр объекта базы данных, объявляете свой запрос прямо в функции, выполняете его и делаете то, что вы будете делать с набором данных.
Когда я начал работать над проектом, не было никакого исходного контроля. Я пытался поощрять других людей, над которыми я работал, использовать его, но я был новичком, и мои попытки заставить людей использовать Subversion почти не увенчались успехом. В последние пару лет ведущий разработчик компании, наконец, обнаружил ртутную ошибку, и он позаботился о том, чтобы все разработчики теперь использовали контроль исходного кода во всех проектах, так что, по крайней мере, это некоторый прогресс.
Я думаю, что если бы я смог работать над реформированием проекта на полную ставку, я смог бы добиться приличного прогресса и, возможно, даже оценить, сколько времени мне понадобится, чтобы полностью перестроить проект, но он активно используется, и я постоянно просят тушить пожары, исправлять ошибки, добавлять функции и т. д. и т. д.
Итак, как мне начать действительно исправлять этот проект? Попробуйте инструмент VB6 с другим языком? Попробуйте переписать программу в свободное время? Или это совершенно безнадежно?
Обновить
После этого поста я вернулся к проекту с новым рвением, но через несколько месяцев после такого медленного прогресса впал в безнадежность. Затем я повторил этот цикл еще 2 или 3 раза в течение следующего года или около того.
С тех пор я перешел на другую работу. Хотя после стольких лет использования vb6 и только периферийного опыта с другими технологиями поиск был трудным, и я столкнулся с множеством отклонений (около дюжины интервью в течение года). Мой совет другим в этой ситуации - подумать о том, чтобы уйти в одиночку. Подумайте об ущербе, который вы можете нанести своей карьере, оставаясь в тупиковом положении, как это.