Людям, чья осведомленность о деятельности программиста ограничивается как о профессии создателя операционной системы, их труд не представляется чем-то выходящим за рамки востребованной, высокооплачиваемой работы на компанию, переодически поощряющей своих специалистов. Тем не менее, помимо приятных моментов эта работа имеет значительные подавляющие программистов минусы, самые распространенные из которых мы собрали в этой статье.
10. Железо
Естественно, что в работоспособности программ немаловажную роль играют приборы и материалы. Вопреки ожиданиям, разработчики не придают огромного значения железу, а ведь такое пренебрежение к оборудованию в конце концов может привести к возникновению проблем при работе с ПО. Именно по этой причине новоиспеченным программистам советуют не брезговать изучением железа и систем, принимающих участие в исполнении кода.
"Любой программист, как минимум единожды испытывавший проблемы с падением серверов базы данных или некорректной работы RAID-накопителей, имеет представление о том, что такое аппаратные проблемы."
"Железо так ненавистно для программистов потому, что не всегда можно свалить на него вину!"
9. Постоянно пребывать в сидячем положении
В процессе производства ПО не производится никакой нагрузки, за исключением умственной, если, конечно, вы не являетесь счастливым обладателем стола с беговой дорожкой. Работники сферы программирования вынуждены часами отсиживаться на стуле, уткнувшись в монитор. Разумеется, такое времяпровождение не способно удерживать комфортное для человека состояние, тем более в том случае, если даже смена обстановки не представляется возможным.
"С утра до вечера провожу время сидя на стуле и непрерывно пялясь в экран. С тех пор как это началось прошло не так много времени... но уже сейчас мучают боли в спине, шее, голове, а глаза закрываются и будто горят... ноги продолжают беспокоить... Старался возместить потраченные часы за занятиями фитнесом, йогой, цигуном и тайцзицюанем, на велосипеде приезжал на рабочее место - тем не менее не могу тратить на сидение более 8 часов в сутки. С утра до вечера пребывать на работе... наблюдать за течением дня и движением солнца за окном, не имея возможности слезть с осточертевшего стула и насладиться жизнью."
8. Отладка
Любой код, независимо от того какой труд был вложен в его написание, не обделен недостатками в лице различных багов. В связи с этим программисты уделяют немало времени на то, чтобы выявить недочеты как в своем, так и в чужом коде, а затем ликвидировать обнаруженные нарушения. Баги бывают как простыми, которые с легкостью поддаются нахождению и исправлению, так и сложные, отнимающие на лечение не только кучу времени, но и устойчивость психики немалого количества программистов.
"Присутствие бага, который может пройти или проявиться на одном и том же куске кода, но при этом обладающего низкой способностью к воспроизводимости или, что хуже, обнаруживающего себя в процессе интеграционного тестирования!!! Из-за этого возникает чувство, будто ты ни при каких условиях не выиграешь в прятки с багами, обитающими на определенном участке кода. Уф!"
"Программы, в особенности огромные, могут заставить разработчиков, занимающихся отладкой, зайти настолько далеко, что последние напрочь позабудут о сущности самого бага."
"Конечно отладка, тем более если речь идет о проекте в тысячи строк. Я, как и многие гики, предпочитаю в процессе отладки облегчить нагрузку на глаза, выводя картинку через проектор."
7. Некачественная документация
Исправление ошибок в чужом коде не приносит много хлопот когда документация находится на высоком уровне. Но, увы, такое встречается реже, чем хотелось бы. Отсутствие комментариев и адекватного объяснения принципа работы в коде вынуждает разработчиков дольше возиться с отладкой, а также расширением и интегрированием приложения. В свою очередь такие затруднения негативно сказываются на здоровье программистов.
"Ненавижу когда наемного рабочего вынуждают тратить время на ПО с некачественной документацией. Трудящихся над проектом людей это значительно обременяет. Недостаток пояснений, плохая семантика, тем более после предшественника, оставившего за собой кипу ошибок и багов."
"Попытки разобрать написанный низкоинтеллектуальным человеком код, не имеющий комментариев и должной документации."
"Наряду со многими коллегами я затрачиваю наибольшее количество времени на сопровождение кода с плохой документацией нежели на создание нового."
6. Слияние кода
Системы Git и Subversion позволяют программистам управлять исходным кодом на одной базе, поэтому являются удивительными приспособлениями, минимализирующими споры. Так или иначе любые изменения подлежат коммитию в репозиторий, что может спровоцировать конфликт между двумя разработчиками, если ими был изменен один файл или программа. Конфликты могут иметь как положительный исход - нахождение компромисса, так и негативный.
"Отрицательно отношусь к слияниям, так как в ходе них возникают разногласия между мной и коллегой, если моё изменение кода его не устраивает - что же делать? Во избежание споров я пытаюсь найти оптимальный вариант, который устроит оба предложения, но при возникновении серьезного конфликта затруднительно продолжать слияние."
"Споры при слиянии - абсолютное зло."
5. Ожидания, не соответствующие действительности
Программисты ничуть не обделены интеллектом, поэтому работодатели нередко предъявляют к ним завышенные требования, зачастую переоценивая человеческие возможности и требуя завершения огромной работы в кратчайшие сроки. По этой причине разработчики все больше разочаровываются в своей деятельности и выгорают от непосильной нагрузки.
"Наиболее неприятная часть - необходимость втолковать людям, что твои знания не выходят за пределы возможного, поэтому в пределах отведённого времени с помощью имеющихся приспособлений можно реализовать определенные вещи, тем более объяснять это тем, кто никаким образом не причастен к программированию и не стремится понять даже малейшие аспекты этой деятельности."
"Работодатель возлагает на исполнителей завышенные ожидания, но нехватка материалов и времени не позволяет хотя бы минимально подойти к требуемому результату."
"Менеджеры и бизнес-аналитики обещают невозможное для своих клиентов, а исполнители должны отдуваться."
"Обожаю если требуется выполнить тривиальную работу, для которой необходимы технологии будущего лет на двадцать опережающие настоящее время."
4. Другие люди ломают мой код
Коды, написанные программистами, в любом случае будут вступать во взаимодействие между собой, независимо от того, являются ли они частью целого приложения, посторонние ресурсы или абсолютно различные между собой приложения. Код разработчиков не может действовать самостоятельно. По этой причине один разработчик вследствие собственной невнимательности, некомпетентности или непонимания, может стать причиной поломки чужого кода, что в свою очередь станет основной причиной для возникновения конфликта или спора между несколькими лицами.
"Из всех проведенных мной работ худший случай представился, когда мой коллега изменял ссылаемую нами обоими библиотеку на другую, не уведомляя меня об этом. В итоге любой вызов подпрограммы с моей стороны становился причиной потери переменных или их возникновения. В худшем случае код библиотеки падал, а доступ отсутствовал."
"Если одна из частей кода прекращает работу, потому что кто-то изменил другую. Зачастую их функции завышают требования и просят больше аргументов, чем до этого. Реже они могут вовсе исчезнуть, либо переместиться в иной файл."
"Вынужденная потребность переделывать написанный ранее, но уже "сломанный" вследствие внесенных (и не единожды) изменений код, чей разработчик не стал обсуждать это с коллегами или проводить тест. Поэтому на исполнителя сыплются обвинения в том, что созданный им код не функционирует должным образом."
3. Отсутствие у людей корректного представления об осуществляемой мной деятельности
Хоть и профессия IT-мастера на данный момент является не только востребованной, но и высокооплачиваемой, а ПО распространено во всех уголках планеты, многие не имеют представления о том, чем на самом деле занимаются современные разработчики. Такие люди классифицируют всех разработчиков под "технарей", не различая тех, кто занимается ПО от тех, кто работает с оборудованием. Программистов раздражает это непонимание и ложные представления со стороны друзей и ,особенно, семьи.
"Среди людей, не причастных к информационным технологиям, бытует мнение, что программисты, работающие на компьютерах, обязаны уметь их ремонтировать. Это то же самое, как просить водителя перебрать коробку передач."
"Да, мой "хлеб" - это написание кодов для программ. Нет, в спектр моей деятельности не входит решение проблем со сломанным оборудованием, открыванием приложенных к письму файлов, а также починкой не включающегося компьютера. Если, конечно, взамен вы не предложите мне бесплатный обед или пиво, в таком случае я могу попытаться."
"Потребность убеждать людей в том, что я не имею по углам магазины, где можно устанавливать пиратские ПО на компьютеры."
"Родственники и приятели полагают, что среди моих способностей присутствует та, что позволяет мне силой мысли ремонтировать всё связанное с техникой. Они не могут понять. Из-за этого ты вынужден слушать претензии вроде "ты даже не способен починить DVD-дисковод, какой из тебя программист?" Jazib Babar
"Не более 2% людей имеют правильное представление о моём виде деятельности."
2. Недостаток времени
Разработка ПО, наряду с другими видами деятельности, отнимает огромное количество времени. Увы, как это зачастую принято, работодатели не хотят ждать столько, сколько может потребоваться для реализации идельного решения. По этой причине у разработчиков требуют скорейшего завершения работы. В свою очередь постоянные дергания приводят к возникновению незаметных багов, некачественной документации и техническому долгу. Среди последствий описанных недостатков можно выявить частые головные боли, возникающие вследствие вынужденных доработок и сопровождений, в частности у программистов, чьё задание состоит в работе с уже готовым кодом.
"Я пытаюсь выполнить все качественно, но под давлением делаю быстро. Это бывает оправдано, но чувство будто культура нынешнего программирования забрела в глубокие дебри не покидает."
"Для меня ужасно, когда приходится спешить с написанием кода, и вместо чего-то элегантного получается неряшливое пятно. Недостаток времени оказывает огромное давление..."
"В то время как большая часть твоего труда не представляет собой хоть что-то приближенное к хорошим методикам программирования, основной причиной которого является острое ограничение во времени и превосходство скорости над качеством, ты вынужден выполнять исключительно то, что от тебя требуют."
"... Постоянно испытываю недостаток времени и финансов на разработку идеального решения, однако на постоянные исправления на коленке их, как правило, хватает всегда."
1. Работа с посторонним кодом
В любом случае наступает момент, когда программисту приходится работать с кодом, который был написан посторонним человеком или коллегой. Это может быть легаси-код, оставшийся от предшественника, или посторонний API, или код от консультанта, - так или иначе необходимость исправить, расширить или интегрировать чью-либо программу неизбежно настигнет вас. Такие моменты чаще всего выводят разработчиков из себя.
"... Самое ужасное - это ковыряние в чужом коде, попытки разобраться в нём, совершить отладку или настройку. Хуже всего, если его автор решил уволиться и уже не сможет оказать помощь или объяснить хоть что-то."
"Попытки дешифровать более тысячи строк, не имеющих кода с документацией."
"Иногда мне приходилось работать с ОТВРАТИТЕЛЬНЫМ кодом, что был написан консультантами."
"Помимо уже упомянутых проблем часто вгоняют в тоску посторонние API. Ты можешь возложить на них большие надежды, а в итоге появляется проблема или потребность в функциональности, но возможности разобраться с этим своими силами не существует, поэтому возникает необходимость обратиться к разработчику и ожидать лучшего."
"Баги языка и фреймворка. На то, чтобы выяснить причины, по которым код не функционирует, уходят целые сутки. А впоследствии корень зла заключается в баге языка и фреймворка."
"Находить код, написанный разработчиком, чей уровень квалификации не достигает того уровня, при котором допустимо его создание..."
Комментарии (0)
Добавить комментарий