Почему разработчик сегодня злой
vk f t

Почему разработчик сегодня злой

Три глав­ные про­бле­мы в рабо­те про­грам­ми­ста и как с ними быть.

Если вы встре­ти­ли разо­злён­но­го про­грам­ми­ста, почти навер­ня­ка при­чи­на в одной из этих ситу­а­ций. Будь­те гото­вы к ним, если дове­дёт­ся вза­и­мо­дей­ство­вать с раз­ра­бот­чи­ка­ми. Сра­зу ста­не­те сво­им. А если вы сами про­грам­мист, эти ситу­а­ции, ско­рее все­го, были или обя­за­тель­но будут у вас.

В работу попал непонятный код

Напри­мер, IT-специалист тру­дит­ся в интернет-магазине. Он напи­сал про­грам­му для обслу­жи­ва­ния зака­зов с нуля, он зна­ет все её моду­ли и пони­ма­ет внут­рен­нюю логи­ку. Если что-то идёт не так, он мгно­вен­но реша­ет про­бле­му.

Но про­грам­ми­сты не все­гда име­ют дело со сво­и­ми про­грам­ма­ми. Часто при­хо­дит­ся вни­кать в чужие: дора­ба­ты­вать, под­дер­жи­вать, добав­лять новые воз­мож­но­сти. Когда код писал дру­гой чело­век, у него какая-то своя орга­ни­за­ция, ина­че устро­е­ны бло­ки, как-то по-своему реше­ны зада­чи. Как буд­то пыта­ешь­ся при­го­то­вить что-то на чужой кухне, толь­ко, что­бы най­ти нож или кастрю­лю, нуж­но посмот­реть не в пяти ящи­ках, а в 50.

Есть программисты-педанты: у них все «ящи­ки» под­пи­са­ны, функ­ции и пере­мен­ные назва­ны понят­но, архи­тек­ту­ра кода оче­вид­ная. С таки­ми вари­ан­та­ми при­ят­но рабо­тать.

Но чаще так: про­грам­мист выпол­ня­ет зада­чу в усло­ви­ях нехват­ки вре­ме­ни, и начи­на­ет он с понят­но­го кода, а бли­же к кон­цу про­ек­та всё сде­ла­но на ско­рую руку. И потом эти про­грам­мы доста­ют­ся на под­держ­ку дру­гим раз­ра­бот­чи­кам, и они не могут в них ниче­го най­ти. Неуди­ви­тель­но, что они злят­ся.

Плохо сделанный код от предыдущего разработчика

Одно дело — когда код от дру­го­го спе­ци­а­ли­ста про­сто устро­ен непри­выч­но. Дру­гое дело — когда он напи­сан с огром­ным коли­че­ством «косты­лей».

Костыль в про­грам­ми­ро­ва­нии — это когда, что­бы что-то рабо­та­ло, его под­пи­ра­ют чем-то непри­спо­соб­лен­ным. Пред­ставь­те, что дверь в ван­ную закры­ва­ет­ся на резин­ку, к кото­рой при­вя­за­на 100-килограммовая гиря. В ито­ге дверь рабо­та­ет, но гиря зани­ма­ет место, и об неё все спо­ты­ка­ют­ся.

Работа программистом — нелёгкий удел: почему разработчик сегодня злой

Так же в про­грам­ми­ро­ва­нии: если у раз­ра­бот­чи­ка не было вре­ме­ни, он мог решить какую-то про­стую зада­чу быст­рым обход­ным путём. Или про­пи­сать какие-то важ­ные пара­мет­ры не в отдель­ном кон­фи­гу­ра­ци­он­ном фай­ле, а пря­мо внут­ри кода — и пой­ди теперь най­ди, где этот пара­метр зада­ёт­ся.

И вот ста­ро­го раз­ра­бот­чи­ка уже и след про­стыл, а ново­му нуж­но погру­зить­ся в спагетти-код и понять, что эта свет­лая голо­ва име­ла в виду. Слож­но сохра­нять само­об­ла­да­ние.

Не дают времени сделать нормально

Допу­стим, про­грам­ми­сту в интернет-магазине нуж­но доба­вить на сайт новую кноп­ку. Со сто­ро­ны кажет­ся, что кноп­ка — это лег­ко. Про­грам­ми­сту дают на зада­чу мак­си­мум день, а то и до обе­да.

Когда раз­ра­бот­чик раз­во­ра­чи­ва­ет зада­чу, ста­но­вит­ся оче­вид­но, что кноп­кой дело не огра­ни­чит­ся. Нуж­но напи­сать внут­рен­ний модуль для мага­зи­на, пере­де­лать логи­ку в дру­гом месте, в тре­тьем под­клю­чить более совре­мен­ные биб­лио­те­ки, то есть рабо­ты дня на пол­то­ра. Плюс про­те­сти­ро­вать саму кноп­ку, плюс про­те­сти­ро­вать всю систе­му с ней, мало ли что. То есть рабо­ты на два дня, но зато про­грам­ма будет логич­ной, устой­чи­вой и хоро­шо задо­ку­мен­ти­ро­ван­ной.

Это если делать нор­маль­но.

А мож­но сде­лать быст­ро: сре­зать углы, ско­пи­па­стить чужой код, под­клю­чить тяже­ло­вес­ные биб­лио­те­ки, наго­ро­дить косты­лей, и кноп­ка тоже зара­бо­та­ет. Это будет чер­тов­ски неэле­гант­но и менее надёж­но, но быст­ро. И, если потом этот код при­дёт­ся кому-то под­дер­жи­вать, он хлеб­нёт там горя.

Хоро­шо, если руко­во­ди­тель пони­ма­ет цен­ность нор­маль­ной раз­ра­бот­ки и даст на эту кноп­ку два дня, а то и три. Но чаще началь­ству нуж­но быст­рее и «лишь бы рабо­та­ло». В ито­ге спе­ци­а­ли­ста под­го­ня­ют, он вынуж­ден сре­зать углы. И он сам пони­ма­ет, что полу­ча­ет­ся спа­гет­ти из кода, но пере­дел­ка все­гда откла­ды­ва­ет­ся на потом. Тех­ни­че­ский долг копит­ся, ника­ко­го кай­фа от рабо­ты.

Бонус: он просто не спал

Мене­джер делал ночью пре­зен­та­цию, инже­нер чер­тил чер­тёж, а раз­ра­бот­чик гото­вил релиз. В послед­ний день перед запус­ком все­гда что-то не так: нашли ошиб­ку, она пре­вра­ти­лась в три ошиб­ки, они пере­рос­ли в бес­ко­неч­ный кас­кад про­блем, упал сер­вер, сго­ре­ли резерв­ные копии — всё как в любой рабо­те с дед­лай­ном.

Что делать

Если вы встре­ти­ли рас­стро­ен­но­го раз­ра­бот­чи­ка — дай­те ему осо­знать, что вы пони­ма­е­те его боль. А если вы сами про­грам­мист — про­ка­чи­вай­те навык пере­го­во­ров, что­бы доби­вать­ся допол­ни­тель­но­го вре­ме­ни на зада­чи и не брать в рабо­ту чужой бра­ко­ван­ный код. Сил вам!

Ещё по теме