Сидячий спосіб життя, робота із застарілим кодом та пошук багів — розробники, як і люди інших професій, стикаються зі складнощами у роботі. Можна довго дискутувати про те, що найскладніше для програміста, а можна просто запитати про думку девелоперів. Нам було цікаво дізнатися, що змушує розробників божеволіти, тому ми провели опитування та зібрали результати у цьому тексті. У нашому опитуванні брали участь учні та випускники JavaRush — як ті, хто ще проходить курс, так і ті, хто вже влаштувався на роботу. Це важливо розуміти, тому що думка про складнощі у роботі для цих категорій відрізняється. Ось такі, наприклад, проблеми виділяють учні JavaRush, які поки що на шляху до своєї першої роботи: Що найскладніше у роботі програміста? Розповідають випускники та учні JavaRush - 1Програмісти, що працюють, думають інакше: отримуючи реальний досвід, думка про складнощі у розробці у девелоперів змінюється. Наприклад, на першому місці для програмістів, що працюють, стоїть проблема відсутності специфікацій, а для учнів — робота з legacy-кодом. Що найскладніше у роботі програміста? Розповідають випускники та учні JavaRush - 2Для бекграунду також додамо, що серед працюючих випускників JavaRush найбільше тих, хто влаштувався в продуктову компанію, на другому місці розробники в аутсорсі і всього 3,8% девелоперів працюють на ниві фрілансу. Що найскладніше у роботі програміста? Розповідають випускники та учні JavaRush - 3Розберемо складності у роботі докладніше — із коментарями розробників. А разом з цим дізнаємося, що девелоперам найбільше подобається в їхній роботі і як склалися їхні стосунки з віддаленим форматом роботи.

Відсутність специфікацій

Відсутність специфікацій, тобто описів поведінки програми, яку потрібно розробити, — це перша проблема у списку складнощів для програмістів, що працюють (її обрали на 69,2% розробників). Як ми згадували вище, цікаво те, що учні та ті, хто шукає роботу, трохи інакше уявляють, яка проблема програмування буде головною. Для цієї категорії це робота з legacy-кодом (застарілим кодом – ред.) – за неї проголосували 45,5% опитаних. Ця відмінність у відповідях свідчить, що учні до кінця не розуміють проблеми, із якими зіштовхнуться практично. Серед учнів проблема відсутності специфікацій стоїть на другому місці (за неї проголосували 36,4% людей).

Ось що розповіли програмісти про відсутність специфікацій: “Працюю нещодавно, як працює додаток, поки що розумію погано”, — каже Денис. "Без розуміння нюансів продукту і без належної специфікації важко вносити зміни або рефакторити старий/специфічний код", — вважає Андрій. "Складно перемикатися із завдання на завдання за відсутності документації чи специфікації", — зазначає Роман. "Через неточне техзавдання [доводиться] вигадувати рішення, яке потім критикується і потрібна переробка", — говорить Вероніка. "Відсутність точного техзавдання у 90% випадків", — говорить Денис. “Немає чітких технічних завдань, замовники самі не знають чого хочуть. Вже на стадії розробки завдання може кардинально змінитись”, – додає Андрій.

Оцінка термінів виконання завдань та робота з legacy-кодом

Нечіткі дедлайни опинилися на другому місці у списку складнощів роботи програміста. За них проголосували 42,3% працюючих айтівців. У той же час учні поставили цю проблему лише на п'яте місце (18,2% голосів). Найчастіше програмісти скаржаться те що, що роботодавець неправильно оцінює терміни виконання завдань чи те, що через недостатній досвід, не можуть порахувати правильні терміни. "Іноді буваю не впевнений у термінах, за які виконаю таск і ставлю більший estimate (оцінку — ред.), Хоча виконую швидше. Деколи це напружує клієнтів”, — каже Ігор. "Терміни виконання встановлюються зі стелі та іншими людьми, які часто не мають відношення до розробки", — говорить Денис. "Час на завдання, яке ніколи не виконував, важко визначити", — додає Микола. Робота із застарілим кодом набрала стільки ж голосів серед програмістів, що працюють, скільки і розмиті дедлайни — 42,3%. Нагадаємо, що учні поставили її на перше місце (45,5% голосів).

Занадто багато мітингів

Проблема з мітингами у сфері IT-розробки посилилася за часів пандемії. Мітингів і так було багато. Але через онлайн-формат стало ще складніше розуміти суть розмов. 38,5% працюючих розробників зазначили, що мітинги ускладнюють їхню роботу. Учні віддали за них 18,2% голосів, ймовірно тому, що не зіткнулися ще з цією проблемою в реальності. "Багато часу йде на порожнє спілкування, а дедлайн ніхто не скасовував", — говорить Петро.

Сидяча робота

Постійне сидіння за комп'ютером потрапило на п'яте місце серед складнощів у роботі програмістів (34,6% голосів працюючих девелоперів). Учні та ті, хто шукає роботу, відправили цю складність на четверте місце з 36,4% голосів. Програмісти зазначали, що через сидячий спосіб життя вони мають проблеми зі здоров'ям: шийний остеохондроз, “хвору спину”, зайву вагу.

Спілкування з іншими людьми та пошук багів

Необхідність комунікувати з іншими людьми та шукати помилки набрали однакову кількість голосів — по 23,1% серед працюючих програмістів і посіли п'яте місце у рейтингу складнощів. Цікаво, що серед учнів за проблему зі спілкуванням ніхто не проголосував. Це, найімовірніше, пов'язано з тим, що новачки ще не встигли попрацювати в командах. Водночас за пошук багів проголосували 36,4% учнів та тих, хто шукає роботу.

Офіс чи віддалений формат: що складніше?

Хоча спочатку карантину багато хто радів віддаленній роботі, згідно з нашим опитуванням незадоволених цим форматом роботи виявилося досить багато. Опитані зазначають, що їм складно сконцентруватися в домашній обстановці, межі між роботою та відпочинком розмиваються, важко дотримуватись work-life balance. Є й незадоволені офісом: їх здебільшого напружує те, що треба витрачати кілька годин, щоб дістатися роботи і додому. “Недолік офісу – час на дорогу. Недолік віддаленої роботи — багато спокус, які можуть відволікти і те, що будинок плавно перетворюється на офіс”, — каже Ігор. "В офісі великий обсяг зайвого спілкування", — зазначає Денис. “Офіс гірший, бо я інтроверт. Мені простіше спілкуватися з людьми віртуально”, – додає Олександр. “Однозначно [важче] віддалена робота. Переускладнені комунікації, відсутність контакту з командою. Засоби віддаленого зв'язку не дозволяють продуктивно вирішувати поставлені завдання, як я це роблю в офісі”, — каже Денис. “Робота в офісі складніша у разі, якщо офіс знаходиться далеко, бо довго добиратися. Не хочеться гаяти час. Але якщо офіс під носом, то однозначно оберу офіс. Там робоча атмосфера”, — каже Владислав.

Бонуси роботи програмістом: висока зарплата, творчість та кар'єрне зростання

Для балансу ми запитали учасників опитування переваги роботи програмістом. Найчастіше розробники відзначали високу зарплату, добрі умови праці, інтерес до роботи, перспективи кар'єрного зростання та можливість релокейту до інших країн. "Постійні логічні завдання, комфортні умови та хороші зарплати", — говорить Ігор. "Висока зарплата в обмін на можливість вирішувати цікаві завдання. Дуже серйозні можливості для зростання”, – каже Денис. "Творча, спокійна, розмірена, а головне — цікава робота", — повідомляє Роман. “Я відчуваю радість від створення чогось нового чи виправлення старого. Програмування — це вічний пазл із тисячею рішень, дофаміновий наркоман у мені задоволений. На даний момент це, напевно, найпростіше із творчих занять після смаження яєчні”, — Денис. «Цікаві завдання, хороші умови праці (заробітна плата, культура і робоча атмосфера в IT компаніях), можливості для постійного розвитку і навчання», — Олексій. “Можна працювати 24 години на добу, а можна працювати головою. Професія програміст якраз про це. Ти сам (залежно від поставленого завдання) визначаєш, що тобі потрібно робити, коли та в якому обсязі. Все, що потрібно — це комп'ютер, голова і завдання”, — Артур.

А на вашу думку, що найскладніше в роботі програміста? А що найприємніше? Чекаємо на вашу думку в коментарях ;)