В нашей рубрике мы достаточно много пишем о том, что толкает людей в сферу информационных технологий, как проходит их становление в профессии и что стоит за достижениями и мотивацией развиваться. Но как-то случайно (поверьте, это происходит без умысла) получилось, что мы обходим стороной важнейшую часть профессиональной жизни - тему ошибок, которые могут допускаться в работе как новичками, так и опытными айтишниками. И здесь, скорее, не про то, когда в коде забыли поставить двоеточие, а о тех, которые не всегда касаются узкого профиля. Впрочем, любая ошибка не повод впадать в панику. Лучше направить ресурс на исправление факапа, решение возникшей проблемы, чем сокрушаться о её возникновении.
Сначала расскажем о тех ошибках, которые чаще всего допускают новички, входя в мир IT.
-
Во-первых, многие из начинающих программистов, или даже студентов-айтишников, игнорируют изучение английского языка. Если вы собираетесь заниматься именно разработкой, то знание этого языка вам крайне необходимо. Все языки программирования созданы на базе английского. Вся документация предоставляется на английском. Перевод бывает, но может быть неточным. К тому же английский надо знать, чтобы проще влиться в комьюнити. В этой сфере люди между собой общаются на этом языке или используют много слов на английском, перемежая их с русской речью. К тому же местные компании часто работают с иностранными заказчиками.
-
Во-вторых, новички и студенты на стажировке боятся задавать вопросы. Они считают, что задавать вопросы опытным коллегам - это признаться в собственной некомпетентности и вызвать ухмылки профессионалов. Начнём с того, что начинающим специалистам многое прощают и к их вопросам относятся спокойно. "Старички" в профессии, наоборот, стараются помочь, объяснить и задать нужный вектор. К тому же, задавая вопросы, вы можете найти себе наставника. Но всё же не увлекайтесь. Не задавайте вопросы каждые 5 минут. Лучше запишите их в блокнот, и если они не требуют сиюминутного ответа, то задайте их во время перерыва или в другой более удобный момент.
-
В-третьих, новички пытаются взять на себя больше задач, чем способны "вывезти". Эта плохая привычка может привести к выгоранию и совершению множества других ошибок.
-
В-четвёртых, те начинающие программисты, которые более-менее уверены в своих знаниях и навыках, совершают ошибку, стараясь выполнить проект под лозунгом "Я сам!". Эти ребята готовы дневать и ночевать на работе, только бы в одиночку завершить проект, прийти к финишу и доказать всем, что "я сам могу". Но это в корне неправильный подход, когда вы уже работаете в компании. Надо понять, что во взрослой жизни без командной работы не обойтись. Если вы завяжете на себе выполнение всех задач, то на выходе вам обеспечено колоссальное количество багов. Ну и банально команда работает значительно быстрее, чем один человек.
-
И, в-пятых, часто новички неправильно реагируют на собственные ошибки. Одни впадают в ярость, злятся на себя, нервничают, другие уходят в депрессию. Практически любую ошибку можно исправить. Самобичевание - это самый не конструктивный путь.
Сложно говорить о конкретных ошибках, которые допускают специалисты, поскольку частные случаи интересны в моменте - здесь и сейчас. После это уже не так захватывающе. Поэтому сооснователь и генеральный директор компании Effective Серик Бейсенов предпочёл обозначить ошибки, которые, по его мнению, бывают чаще всего.
- Одна из самых распространённых - ошибка с датами. Это кажется необычным, учитывая, что даты, по сути, представлены всего лишь цифрами. Но такое ощущение, что даты - это всё же немножечко что-то другое. Именно эти цифры живут по своим правилам. Месяцы до 1 дошли и обнулились, года тоже по-другому идут. Когда мы имеем дело с различными временными зонами, форматами хранения и переводами, всё это добавляет сложности программистам. Люди постарше помнят самую известную ошибку - называлась она "ошибка миллениума". Даты в системах рассчитаны по два числа. Никто не думал, что "наступит" 2000 год. И после 99-го наступил сразу нулевой год. От этого потенциально могли возникнуть серьёзные ошибки. Программисты вовремя подсуетились и сделали необходимые изменения. Поэтому мы прошли эту нестыковку незаметно. К сожалению, даже сегодня многие продолжают допускать ошибки в этой области, что может привести к непредсказуемым последствиям, - пояснил Серик Бейсенов.
Например, в приложении календаря пользователь создаёт событие, а оно у него получается в прошлом. Потому что на его телефоне три часа дня, а на сервере, где находится приложение, 12:00 из-за того, что этот сервер находится в московской тайм-зоне. И переводы из одной зоны в другую работают по-разному. По словам спикера, не все программисты умеют с этим работать.
- Еще одним частым и досадным типом ошибок, является проблема, связанная с мобильными устройствами. Современные производители стремятся максимально продлить время работы батареи своих устройств. Для этого они ограничивают выполнение задач в фоновом режиме, чтобы сохранить заряд. Однако это создает некоторые сложности для разработчиков приложений, которые стремятся обеспечить бесперебойную работу своих продуктов. Нередко возникают ситуации, когда программисты предполагают выполнение определённых операций в фоне, но устройство не разрешает этого сделать, что приводит к неполадкам и недопониманию у пользователей, - уточнил программист.
Наконец, ещё одним примером является проблема с уведомлениями в мобильных приложениях. Отправка уведомлений часто происходит автоматически, и иногда случаются нелепые ошибки, такие как отправка тестовых сообщений всем пользователям вместо ограниченной группы. Это может привести к недовольству людей и создать дополнительные проблемы для разработчиков.
- Как-то в час ночи мне пришло сообщение от приложения ХК "Авангард" о том, что начался матч. Однако в скобочках было написано, что это режим тестирования. Программисты, тестируя что-то, не обратили внимания, что отправили тестовое сообщение всем реальным пользователям. И это тоже прикольная ошибка. Последнее время много таких. Для кого-то может показаться ерундой, а ты сидишь и, как программист, понимаешь: просто ребята перепутали тестовое и реальное окружение и отправили всем, - поделился Серик Бейсенов.
Разработка программного обеспечения - это сложный и многогранный процесс, который требует внимания к деталям и понимания различных аспектов, включая работу с датами, управление ресурсами мобильных устройств и обработку уведомлений.
Руководитель отдела системного анализа IT-компании Purrweb Евгений С. самой частой своей ошибкой назвал мискоммуникацию между ним и членами команды. У него не всегда получается найти общий язык с людьми.
- С опытом начинаешь понимать, что люди говорят о разном, так как больше следишь за словами, появляется навык выслушивания человека, в какой-то мере эмпатии. Но бывает, что случаются недопонимания. В такие моменты самой лучшей реакцией может быть приостановка разговора и попытка разобраться "кто о чём" другими словами. Другая частая ошибка - это долгая теоретизация. Часто случается, что нужно обучаться новому на работе, а когда много читаешь, смотришь, то и начинаешь говорить общими словами, выводя какие-то общие принципы и аксиомы. Это абсолютно бесполезно, если не возвращаться на уровень практики. Лучшая реакция на долгие теоретические измышления - это внимательно всё выслушать и потом спросить: "А делать-то что? Как это влияет на нашу работу?" - пояснил Евгений С.
Бывает, что IT-компании не уточняют у заказчика, как, по его мнению, должна выглядеть административная панель (админка). С одной стороны, команда пишет инструкцию по пользованию админкой, и вроде как с ней просто, но с другой - заказчику может быть неудобно, и он хочет другое наполнение внутренней панели. Именно такую ошибку обозначила в беседе с нами директор IT-компании ASMART Анна Захарченко.
- Мы работаем с малым бизнесом. И мы общаемся либо с самим собственником, либо с руководителем отдела маркетинга или маркетологом. Проблема бывает в том, что на старте не определяются цели проекта. Банально - для чего делается этот сайт, приложение. Или не обсуждаем, как оказалось, важную техническую часть - как должна выглядеть административная панель. При разработке мы обсуждаем с заказчиком, как должен выглядеть сайт, какой у него должен быть дизайн, функционал. Но мы недавно, например, упустили несколько раз момент того, как у этих сайтов должны выглядеть административные панели. Мы не уточнили у клиентов, как они хотят работать с этими сайтами изнутри. Мы-то думали, что написанной инструкции клиенту будет достаточно. А у клиента в голове совершенно иные мысли по поводу того, как должна выглядеть админка. И в техническом задании, как правило, про админку сайта никто не пишет, - пояснила Анна Захарченко.
Можно поставить себе "галочку" - не забывать писать техническое задание на административную панель сайта. Потому что видение специалиста и заказчика могут разительно отличаться. Опытного специалиста отличает умение извлекать уроки из промахов как своих, так и из чужих.
Разработчик компании Gems Дмитрий Шамрик обозначил семь ошибок, с которыми он чаще встречался. Первая - это ошибки, связанные с плохим планированием. Здесь недостаток как аналитических, так и технических знаний ведёт к появлению плохих решений. Отсюда недооценивание объёма работы, загруженности, написания кода, при отсутствии целостного решения. Второй тип ошибки связан с системой контроля версий - плохие сообщения в коммитах (коммит - это пакет изменений, хранящий информацию с добавленными, отредактированными или удалёнными файлами кода - прим. ред.), закоммитить изменения не в ту ветку и т. д. Сюда же, по словам Дмитрия, можно отнести коммиты изменений, которые косвенно связаны с самой задачей. Ещё одна ошибка - нежелание погружаться в задачу или проблему. Отсюда появляются быстрые и "грязные" изменения кода, изобретение колеса или добавление в код "магических" чисел. Переусложнение простых и очевидных вещей - тоже нередкая ошибка в IT, Иногда специалист в поисках решения не замечает, как усложняет простую задачу. Следующая ошибка, которую отмечает собеседник, - это промахи, связанные с отладкой, сопровождением и последующей передачей задачи по процессу. Айтишники тестируют только положительные сценарии работы или вообще не проверяют работоспособность кода. Нет тут и автоматических тестов на функционал. Шестая в списке нашего эксперта ошибка - создание "суперфункций". Тут отсутствует логирование информации. То есть сотрудник не фиксирует и не структурирует информацию о работе системы в отдельные лог-файлы. Ну и, наконец, седьмая ошибка - плохо форматируют код, по сути, оставляют "мёртвый" код. Здесь куски кода и даже классы, которые просто закомментированы, к ним написано много очевидных и ненужных комментариев.
- Чаще всего ошибки допускаются из-за невнимательности и плохого планирования. Если задача требует большого времени работы - делай в работе перерывы и фиксируй полученные достижения по факту. Также необходимо знать свой инструмент, с которым работаешь постоянно, - это позволит ускорить процесс работы, допускать меньше ошибок и знать, как их можно исправить. Необходимо подходить к анализу задачи комплексно и исследовать её со всех сторон, что позволит избежать неочевидных ошибок и изобретения велосипедов, - советует Дмитрий Шамрик. - В любом случае, независимо от того, простая ошибка или сложная, надо стараться скорее её исправить или передать на исправление коллегам. Также следует поставить в известность заинтересованных лиц. Если ошибку совершил ты сам - нужно признать её, постараться исправить и вынести из этой ситуации определённый урок. Если же ошибку совершил кто-то другой - уведоми его об этом, если знаешь, как решить, - подскажи исправление. Встречаясь с ошибками, мы нарабатываем опыт и профессионально растём.
Нередко среди ошибок называется и пресловутый человеческий фактор.
- Среди ошибок у меня это самая частая: поспешил, не учёл, не досмотрел, отвлёкся, забыл и так далее. Это связано с моей загруженностью и внешней референцией. Дело в том, что мне важнее всех обеспечить задачами, работой, разблокировать, а потом уже самому выполнить непосредственно свою работу. Поэтому я стараюсь приходить в офис пораньше, чтобы успеть проработать свои задачи "в тишине" и не косячить, - рассказал backend-разработчик Purrweb Максим Л.
Репутация, качество, безопасность, IT-инфраструктура и много других аспектов, которые могут ощутимо пострадать от ошибок сотрудников и руководства. Это может быть и нечаянно выключенный рубильник, и баг в коде, и ошибка в таблице Excel, и многие другие. Но человеку свойственно ошибаться; даже если он контролирует и перепроверяет всю свою работу, рано или поздно он ошибётся. Исключить людей из рабочего процесса невозможно. Остаётся одно: учиться оперативно замечать ошибки, анализировать их и находить варианты решения проблемы. Необходимо учиться закладывать риски при разработке стратегии и постановке задач. А также желательно разработать стратегию реагирования на допущенные ошибки и прокачивать свои soft skills, чтобы уметь обсуждать все детали вовремя.
Так что если вы тот человек, который допускает ошибки, не огорчайтесь, просто работайте над ними и не забывайте обсуждать их с коллегами, чтобы вместе найти выход из сложившейся ситуации. О том, чем и как живёт реальный мир информационных технологий, можете почитать в нашей рубрике "Войти в IT".
Изображения созданы с помощью Midjourney