воскресенье, 11 марта 2012 г.

Советы программистам-новичкам. Цена “заплатки”

Известная ситуация. К вам прибегает менеджер и говорит, что срочно надо исправить ошибку в программе, или набросать новый функционал. Или это может быть заказчик. Не важно. Отправная точка- вы решаете угодить менеджеру, решив ЕГО проблему заплаткой в программе. В текущей ситуации это проще всего: ЕГО проблему можно решить быстро, к удовольствию менеджера. К сожалению, потом переделать все по-нормальному у вас, скорее всего, времени не будет. Появятся новые задачи.

Через некоторое время, как всегда неожиданно, в самый неподходящий момент, выясниться, что эта заплатка сбила с толку другого программиста- у него работало и перестало. Он потратит кучу времени, чтобы найти и выкорчевать эту заплатку. Хуже, если заплатка замаскирует проблему в одном месте, а в другом- ошибка, полностью не прикрытая заплаткой,  будет продолжать “жить”, и даже портить данные. Вас могут вслух и не обматерить, но за спиной вас обзовут “говнокодером”. Оправдаться не получится. Что в итоге получается? Цена заплатки- ваша репутация.

Препарируем ситуацию. У менеджера сложилась ситуация, требующая срочного исправления некой ошибки. Пока это проблема менеджера. Он озадачивает вас. Пока это все еще его проблема. Вы решаете по-быстрому залатать код и решаете ЕГО проблему. Он довольный убегает. Он проблему решил. А вот вы себе создали проблему ценою в вашу репутацию. Вопрос: Оно вам надо? Вы получили за это повышение по службе? Вряд ли. К вам сложилось хорошее отношение со стороны начальства, как к быстрому, исполнительному сотруднику? Краткосрочно- да, долгосрочно- нет.

Как надо было поступать в этом случае? Менеджер пусть САМ решает свою проблему по-быстрому. У него, наверняка, найдутся организационные методы решения. Вы заявку приняли и коренным образом устраняете проблему- никаких заплаток. Как правило, попутно еще несколько багов раскопаете. Ваша репутация будет складываться как вдумчивого, серьезного программиста.

Еще раз подумайте: цена заплатки- ваша репутация.