Это надо поправить
«Это место нужно будет доработать». «У клиента изменились требования». «Похоже, нам это не понадобится, надо убрать».
Большинство этих фраз будет преследовать вас постоянно. Требования клиентов будут меняться, реализованные функции не будут устраивать руководство, зеленый на главной странице сайта будет недостаточно зеленым, а алгоритм хеширования – недостаточно хешировать. Иными словами, однажды к вам придет человек и скажет: то, что вы выстрадали потом и кровью, больше не нужно. И это будет больно.
Дело в том, что если вы действительно любите разработку (я очень надеюсь на это), то, создавая что-то новое (проект, код, функцию), вы не просто пишете на экране буковки в определенной последовательности. Вы вкладываете в код часть своей любви к этому ремеслу, часть себя. Насколько болезненным может быть момент, когда вас просят убить эту часть? Стереть, будто ее и не было, либо переписать так, что вас там уже не останется? Иногда это бывает ОЧЕНЬ болезненно.
Возможно, вы считаете себя монументом спокойствия и подобные просьбы для вас – как с гуся вода. Я не хочу вас расстраивать, но это дело времени. Однажды у вас появится любимый проект, лучший алгоритм или самый прекрасный код, который вы написали, и вас попросят его «поправить».
В самой просьбе исправить код нет ничего особенного. Наверняка вы и сами просили кого-то об этом или участвовали в open source проекте, где авторов каждый день просят что-то изменить. Однако все меняется, когда речь идет о ВАШЕМ коде. О том, в который вы вложили столько сил, времени, личного опыта, энергии.
И… вы должны с этим смириться. Да, вам придется что-то поправить в коде, отказаться от каких-то своих решений и переписать их. Не относитесь к этому как к сомнениям в вашем профессионализме. Не относитесь к этому как к личному оскорблению. Постарайтесь взглянуть на проблему со стороны. Если у вас качается стул, потому что одна ножка подломилась, что вы предпочтете: починить его или продолжать сидеть, рискуя упасть и облиться кофе? Если вам перестали нравиться обои, будете терпеть их день за днем или поменяете на такие, которые вас радуют?
Да, ваш код важен для вас. Однако просьба изменить его – это не просьба забыть о нем, сделать вид, что его не существовало. Вы сделали его максимально качественно, но теперь он должен приобрести другую форму. Скорее всего, он станет только лучше – кому, как не вам, знать, что с ним сделать, чтобы он стал лучше. Не поддавайтесь унынию, если приходится удалять прекрасное, на ваш взгляд, решение. Да, придется пересмотреть его, но, возможно, именно тогда вы увидите еще лучшее решение.
Если требований об изменении кода слишком много или ваш клиент не может спокойно спать, пока не внесет хотя бы одно замечание по реализованным функциям, найдите себе отдушину. Заведите свой pet project, где только вы будете решать, как он будет выглядеть и каким правилам подчиняться.
Тезисы
■ Однажды вас обязательно попросят изменить то, что вы создавали с любовью.
■ Ваш код – это не вы сами; пока есть вы сами, вы напишете код еще лучше.
■ Если ваш код постоянно подвергается нападкам, найдите себе отдушину.
Задание
Попробуйте понять, насколько болезненны для вас просьбы изменить или убрать ваш код. Как сильно вас задевает необходимость пересмотреть свои решения? Если считаете, что ваша реакция на такие просьбы неадекватна, поработайте над этим. Участвуйте в код-ревью, учитесь воспринимать просьбы об исправлениях не как попытку усомниться в вашем профессионализме, а как шанс сделать код еще лучше.
История из жизни
Мне было очень тяжело принимать исправления в своем коде, я долгое время воспринимал это именно как личную критику, раз за разом попадая в эту ловушку. Даже когда мне казалось, что я перешагнул через эту слабость, она снова давала о себе знать. Спасло меня то, что такое отношение никак мне не помогало. Мне все равно приходилось исправлять код, но каждый раз это стоило мне немалой нервотрепки. И я стал относиться к этому более прагматично, разделяя работу и связанный с ней стресс. Работа должна оставаться работой, а ваши эмоции – только вашими; эти пласты жизни определенно не стоит смешивать в очень горький коктейль.
Специалист широкого профиля
Разработка программного обеспечения многогранна. И чем больше развивается IT-индустрия, тем больше новых областей в ней появляется. Каждая область одновременно и похожа на другие, и представляет собой нечто совершенно особенное, со своими правилами, секретами и решениями. Разработка сетевого программного обеспечения чем-то похожа на создание игр, разработка драйверов – на программирование для встраиваемых систем. Однако чем дольше вы работаете в какой-нибудь специфичной области, тем больше отличий будете замечать.
Выбор направления работы полностью зависит от вас. Да, вначале вы, вероятно, будете заниматься всем подряд, чтобы получить базовый опыт, привыкнуть к разработке, индустрии, познакомиться с ее основными принципами и законами. Возможно, вам повезло и вы уже точно знаете, чем хотели бы заниматься. Это может быть разработка игр, криптография, большие данные, а может быть, вы всегда хотели написать свой язык программирования. В любом случае это должно быть тем, что вас восхищает. Тем, что вам бы хотелось изучить, разобраться в каждой мелочи, узнать, как все устроено.