#Meeting room: Код — лише частина роботи: що насправді робить Software Engineer

Що відрізняє хорошого розробника від сильного Software Engineer? І як із досвідом змінюється підхід до роботи — від написання коду до пошуку рішень, які приносять реальну користь продукту та бізнесу?

Про це ми поговорили з нашою колегою Іриною, яка працює в InterLink вже 7 років. В інтерв’ю — про професійне зростання, виклики роботи з legacy-системами, баланс між технічною досконалістю та потребами бізнесу, а також про те, як AI змінює щоденну роботу інженера. 

 

Ти працюєш в INTERLINK з 2019 року. Якою Software Engineer ти була тоді — і що найбільше змінилося у твоєму підході до розробки за ці роки?

 

Тоді я отримувала задачу і думала, як написати код, щоб це працювало.Зараз же я в першу чергу думаю, як вирішити її на архітектурному рівні і яку користь вона приносить бізнесу чи користувачу. Розглядаю кілька варіантів рішення, зважую їх плюси та мінуси і обираю той, який краще підходить – не лише технічно, а й з точки зору довгострокової підтримки.

Який проєкт або технічний виклик за цей час найбільше вплинув на тебе як на інженерку? Чим саме він був складним?

 

На одному з проєктів треба було виконати міграцію процесів оновлення даних з одного технологічного стеку на інший, новий для команди. Тоді ми з командою почали з детального вивчення нового стеку, паралельно шукаючи найоптимальніше рішення. Проводили невеликі POC і тестували різні підходи, щоб обрати найкращий варіант за перформансом і вартістю. Складність полягала в тому, щоб побудувати механізм для швидкої й водночас надійної обробки даних, а також перевірити коректність виконаної міграції.

Чи була задача, яка на перший погляд здавалася простою, але після занурення в систему виявилася значно складнішою? Як ти її вирішувала?

 

Зазвичай так ставалось, коли бракувало досвіду в системі або технологіях, які використовуються для вирішення подібних задач. Для мене рішення – це розбити задачу на декілька менших: етап аналізу подібних рішень, невелике тестування, якщо це необхідно, і згодом вибір підходу.

З якими викликами у великих і довготривалих системах тобі доводиться працювати найчастіше: legacy-кодом, технічним боргом, performance, інтеграціями, складною бізнес-логікою чи чимось іншим?

 

Найчастіше з legacy-кодом. Проєктам, над якими я працювала, було понад 20 років, тому поряд із legacy-кодом доводилося мати справу з технічним боргом і оптимізацією продуктивності. На одному з останніх проєктів потрібно було мігрувати великий обсяг legacy-коду на новий стек, протестувати результат і переконатися, що продуктивність відповідає вимогам. Тут дуже допоміг AI: ми заздалегідь підготували набір скілів, і завдяки їм процес міграції вдалося автоматизувати. Коректність міграції ми перевіряли тестами, які порівнювали результати роботи старої і нової системи на однакових даних.

Наскільки Software Engineer важливо розуміти бізнес-логіку продукту, а не тільки код?

Це дуже важливо, без розуміння бізнес-логіки розробнику буде складно запропонувати рішення, які будуть корисними для кінцевих користувачів.

Як ти знаходиш баланс між «ідеальним» технічним рішенням і реальними потребами продукту — строками, складністю реалізації та подальшою підтримкою?

 

Рішення залежить від строків: можна довго шукати ідеальний спосіб вирішення проблеми, але якщо його реалізація не вкладається в бюджет, треба обирати простіший робочий варіант. Головне щоб він вирішував проблему замовника та давав можливість згодом його доопрацювати, а не створював проблем у підтримці в майбутньому

Як AI змінив твою роботу як Software Engineer? Для яких задач ти вже його використовуєш, а де все ще більше довіряєш власному досвіду?

AI агенти сьогодні – це невід’ємний інструмент у роботі розробника. Я використовую AI для написання коду, автоматизацій, покриття тестами і так далі. В той час як моя задача тепер – більше часу приділяти підготовці дизайну і підходів для вирішення задач. Також необхідно вміти будувати процес для агента так, щоб написаний код відповідав конвеншинам проєкту, був секʼюрним, і щоб була можливість впевнитись, що код працює правильно, наприклад, за допомогою тестів. Опис задачі для агента має бути настільки детальним, щоб її вже можна було брати в роботу без додаткових уточнень і запитань.

Що сьогодні для тебе відрізняє просто хорошого розробника від сильного Software Engineer?

Хороший розробник добре виконує поставлену задачу. А сильний Software Engineer – це вміння передбачати проблеми заздалегідь, на кожну задачу пропонувати не одне рішення, а кілька варіантів, і вміти комунікувати рішення нетехнічною мовою із замовником.

Comments are closed