Поганий понеділок
Зараз 4 ранку, мене знову здолало безсоння. Зазвичай я йду працювати. Для мене це благодатна пора спокою та тиші — що ще потрібно, щоб писати красивий, підтримуваний код?
Красивий код… давайте про нього поговоримо?
Нещодавно слухав Радіо-Т (популярний російськомовний айтішний подкаст) — не пам’ятаю, який саме випуск, один із недавніх, — де обговорювали статтю про аутсорс.
Черговий замовник вирішив зекономити й замовив розробку iOS-застосунку в найдешевшої компанії, яку зміг знайти на просторах інтернету. Результат зрозумілий: повний «дизастер». І він по пунктах розповідає, чому, на його думку, усе пішло не так.
Визнавати кореляцію між ціною та якістю, звісно, ніхто не збирається. Справа ж у чомусь іншому, чи не так? Хочеться вірити, що за 5 баксів на годину можна отримати найкраще. Хоча варто розуміти, що й справді великий цінник теж нічого не гарантує.
Розмов навколо цієї теми було чимало. Коротка думка Umputun’а полягала в тому, що є різниця в менталітеті: для американців головне — результат, процес ніщо. Для росіян головне — процес, а результат побічний ефект. Для індусів одне фігня, інше фігня — життя надто коротке, щоб цим перейматися.
Сиджу я і думаю: ну є ж, чорт забирай, у цьому щось. Чи варто взагалі перейматися процесом?
Адже замовнику потрібен результат, а що роблю я? Займаюся процесом. Звісно, займаюся я ним, щоб отримати найкращий результат, на який я здатен, але результат можна отримати швидше.
Завдання: написати простий автокомпліт для сервісу. Ну впхни ж ти все в той клятий контролер, який виводить список результатів, — і справу зроблено.
Та ні, треба все винести в окремий контролер, відрефакторити — бо ж прийде хтось це правити, що він про мене подумає?
А як написати серверну частину? Нормальний, ефективний програміст пройшовся б регекспом по базі — і все, є результат.
Та ні, ми ж «особливі». Треба, щоб усе було швидко й щоб автокомпліт реально допомагав щось вводити. Замість пошуку регекспами давай зробимо префіксне дерево? А ще додамо вагу тегам, щоб визначати найпопулярніші й ставити їх вище. Ну і як же без тестів та документації.
І ось я вже глибоко загруз у процесі.
Це не результат, замовнику це все ні до чого. Мало того що ні до чого, так ще й шкідливо — у фінансовому плані та в плані строків. А через рік це все одно перепишуть, якщо воно комусь буде потрібне.
Може, підсвідомо я розумію, що платять мені погодинно, і якщо я зроблю це за годину замість десяти, то отримаю менше? Та ні ж бо — я так робив і раніше, коли працював за фіксовану ціну.
Погано те, що для мене це свідомий вибір. Я не хочу мінятися, підлаштовуватися під ринок. (Мабуть, із цієї причини востаннє я шукав роботу місяців зо три.)
Хоч убий, але я хочу писати нормальний код. А на такий код треба витратити час, а час — це гроші. Висновок: по-хорошому, мене слід звільнити. У цій нерівній боротьбі процесу з результатом я — поламана шестерня.
Усім красивого коду, друзі!