«Вмієте гарно писати код? Це може лише ускладнити роботу»: чим мудрий розробник відрізняється від розумного
«Немає більшого дурня, ніж той, хто вважає себе мудрим; наймудріший же — той, хто підозрює, що він дурень» (Маргарита де Валуа)
Більшість розробників вміють гарно писати код. Проте це вміння може ускладнити їм роботу.
Пам’ятайте, що уникати проблем завжди легше, ніж їх вирішувати. І у цьому допомогають не навички кодування, а здоровий глузд, кмітливість та досвід.
Про це у своєму блозі на Medium пише розробник Бен Хоскінг. Передаємо йому слово.
Сеньйор, який знає, коли розбиратися з кодом, а коли просто відхилити вимоги — має переваги перед джуніором. Образно кажучи, сеньйор розуміє, коли змовчати, коли битися, а коли тікати та ховатися.
Яка різниця між розумним та мудрим
Розробники витрачають лише 50% свого часу на написання коду:
- джуніори, маючи прості вимоги, створюють складний код;
- сеньйори, маючи складні вимоги, створюють простий код.
Різниця між ними у тому, що джуніори ще не зробили вдосталь помилок, щоб стати мудрими. У них ще занадто мало досвіду, знань та навичок.
Коли розробник помиляється, у майбутньому він вже уникатиме цієї помилки. Таким чином у нього з’являється можливість робити нові, і вчитися уникати їх також.
Інколи важко передбачити появу помилок у розробці програмного забезпечення, тому що їхні наслідки проявляються не відразу. Прості помилки виявляються швидше, і відповідно, швидше виправляються.
Складніші помилки — це щось на кшталт жорсткого кодування значення, коли спочатку не видно жодних мінусів. Але пізніше, щоб змінити значення, потрібно добряче попрацювати і ви багато разів пожалкуєте про початкове рішення.
Уникайте проблем, а не вирішуйте їх
«Розумна людина вирішує проблему. Мудра людина уникає її»
Альберт Ейнштейн
Усі розробники хочуть писати код. Це те, на чому вони знаються, і що їм подобається робити. Але сеньйори розуміють, коли потрібно писати код, а коли — уточнити та дійти до висновку, що код якраз писати і не потрібно.
Джуніори кожну вимогу або проблему намагаються вирішити так, як вони вміють, а саме — написати код 🙂
Насправді, писати код слід в останню чергу, бо кожен рядок збільшує відповідальність команди розробників.
Написаний код потрібно підтримувати, також це ускладнює кодову базу.
У короткостроковій перспективі, написати код — це чудове рішення. Проте у довгостроковій — воно збільшить витрати часу, складність, та видатки на обслуговування.
Ефективніше писати менше коду, бо це знизить ймовірність збоїв. Сеньйори знають, що код писати потрібно лише у тому випадку, коли жодних інших варіантів немає, і після того, як ви перевірили вимоги.
Мудрий розробник скорочує створений код, враховуючи лише обов’язкові вимоги та ігноруючи ті, що входять у категорію «було б непогано».
Заданих параметрів можна досягти шляхом зміни бізнес-процесів замість написання коду. Не автоматизуйте все, іноді вибір вручну є найкращим варіантом.
Простота
Джуніори прагнуть писати код відразу, часто ще до того, як вони зрозуміють, навіщо бізнесу потрібен цей код і що він має робити.
Сеньйори висувають припущення та оцінюють вимоги. Немає значення, наскільки добре ви створили код, якщо він працює не так, як треба.
Якщо писати код з перевіреними вимогами, то програмне забезпечення створюватиметься швидше. З кодом пов’язано багато витрат на кшталт оновленого залежного коду, пов’язаного коду, документації, тестів, та іншого. Іноді справи йтимуть швидше, якщо не поспішати та створити правильне програмне забезпечення.
Кажіть тоді, коли вас мають слухати
«Перший принцип полягає в тому, що ви не повинні обдурювати себе, хоча обдурити себе найлегше»
Річард П. Фейнман
Теслі двічі відмірюють деревину та один раз відрізають. Розробники не часто поводяться таким чином.
Мудрі сеньйори розуміють, що вони — експерти у створенні програмного забезпечення, а користувачі є експертами у своїй справі. Створення програмного забезпечення — це співпраця між бізнесом та технічними спеціалістами.
Джуніори не враховують усі вимоги і переходять одразу до створення технічного рішення. Сеньйори зосереджуються на бізнес-цілях і процесах, щоб краще зрозуміти призначення програмного забезпечення.
Щоб створити програмне забезпечення, яке реально допомагатиме, треба ясно бачити завдання бізнесу, команди та окремих працівників.
Часто джуніори орієнтуються лише на оптимальний сценарій. Пізніше, коли з’являться невідповідні сценарії та винятки, розробники будуть змушені постійно змінювати код, виправляючи помилку за помилкою.
Так те, що спочатку здавалося швидким та вдалим рішенням, сповільнює роботу через баги. Хороший сеньйор створює код один раз, і він працює ідеально.
Сеньйор знає, коли ставити питання, коли слухати, а коли говорити.
«Мовчання — це урок, отриманий після багатьох страждань у житті» (Сенека).
Виконуйте свою роботу
Для розробки програмного забезпечення потрібна команда, де кожен має виконувати свою роботу.
Намагання бути корисним — це палка з двома кінцями. Ви можете допомогти іншій людині зараз, але цим завдати собі шкоди в майбутньому.
Мудрі розробники переконаються, що люди, які керують частинами проєкту, слідкують за цим питанням.
Розробники мають берегти свій час та віддавати відповідальність та ухвалення рішень тим людям, до чиєї сфери компетенцій це входить.
Джуніори часто допомагають іншим з завданнями та їм не вистачає часу на виконання своїх. Якщо це відбувається постійно, то вони затримуються на роботі та ризикують вигоріти.
Рівняйтесь на реальність
«Вчора я був розумним, тому хотів змінити світ. Сьогодні я мудрий, тому змінюю себе»
Румі
Справи підуть не так, виникнуть проблеми, плани поміняються, дизайн — теж. Ви не можете боротися з реальністю. Пристосовуйтеся до навколишнього середовища та змінюйтеся разом з ним.
Джуніори боротимуться з реальністю, сеньйори враховуватимуть її зміни.
Ви не можете запобігти усім проблемам, помилкам та питанням, які виникатимуть, але цілком реально підготуватися до них та впевнитися, що вони не спричинять катастрофу. Розробник має бути готовим до технічних проблем.
Автор: Бен Хоскінг
Текст адаптувала Євгенія Козловська
Favbet Tech – це ІТ-компанія зі 100% украінською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологіи та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: