За що можуть звільнити програміста: 10 повчальних історій
За які помилки можуть звільнити програміста, та так, щоб без обговорень і вихідної допомоги? Фатальними помилками, які можуть коштувати програмісту роботи, діляться самі програмісти і їх начальники.
Це історія про IT-співробітника, який, будучи неймовірно, навіть неправдоподібно некомпетентним (одного разу він попросив когось витягнути контакти з порту на модемі, що взагалі не має сенсу), примудрився вилетіти з роботи тільки тоді, коли він спробував роздрукувати аніме-порнографію на прозорих плівках на кольоровому принтері в робочий час. Але звільнили його не за це. Він використовував плівки, які не підходять для лазерного принтера - вони розплавилися самі і розплавили фьюзер, тим самим зламавши новий і дуже дорогий принтер дуже-дуже поганим способом. Але звільнили його не за це. Він розкрив принтер, тобто буквально розібрав його на гвинтики, хоча йому сказали не робити цього, тим самим порушивши гарантію на цей принтер. Але звільнили його не за це.
Його звільнили за те, що він збрехав про це. Ось так просто.
Я працював у чудовій групі з 20 чоловік в кінці 90-х, коли будь-яка помилка в нічний збірці виливалася дзвінками всім причетним до коду. Так сталося і в той день, в 9:30 вечора. Нам потрібно було терміново виправити проблему або перезапустити програму, як правило, цьому передували кілька коротких і лютих листів по email. До речі, тиск - непоганий спосіб побудувати команду орієнтованих на якість інженерів.
Один інженер ламав нашу програму кілька разів, і коли ми наблизилися до квартального випуску, йому наказали не вносити ніяких змін. І що б ви думали - незадовго до релізу він таки вліз і все зламав. Його звільнили на наступний же день. Під бурхливі тривалі оплески.
Не нехтуйте проханнями начальства, особливо якщо вони перегукуються з думкою команди.
Дуже дурний злодій
Мій знайомий розробник написав внутрішнє корпоративне ПО, яке не повинно було використовуватися за межами компанії. Тому він передбачив, щоб це ПО періодично надсилало повідомлення по email про свій статус на сервер, який зберігав ці дані. І ПО, відсилає повідомлення, і сервер, їх приймає, повинні були знаходиться в корпоративному интранете.
Одного разу його сервер почав отримувати такі повідомлення ззовні компанії. Хтось виніс копію коду і запустив його в іншій компанії. На щастя, вони точно знали хто цей хтось і де він запустив код, тому що повідомлення приходили з имя.вора@название.компании.com! Цю компанію повідомили про подію і злодія звільнили. Правосуддя здійснилося.
У компанію, в якій я працював, найняли дуже самовдоволеного програміста. Він прийшов і почав вивчати поточний стан кодової бази, щоб скласти план, як її поліпшити. Тоді він знайшов частину коду з дорогої алгоритмічної проблемою і переписав її так, що код став працювати в сто разів швидше, ніж до цього. Природно він собою дуже пишався, безжально поливаючи брудом людину, яка написала першу версію, хто б він не був.
Будьте обережні, коли говорите про когось погано, особливо якщо не знаєте, хто ця людина.
Хотів як краще ...
Я працював архітектором в Microsoft, ми робили прототип медичної системи для британської державної служби охорони здоров'я (UK NHS). У проект входили зокрема геозапроси на пошук найближчої придатною для пацієнта клініки. Я повинен був реалізувати в картографічному сервісі MS обчислення відстані по GPS-координат.
Над створенням рішення для внутрішнього SOAP API у нас працював контрактник. Коли він представив свою реалізацію решти команді, на етапі тестування виявилося кілька серйозних помилок, тому ми стали розбирати його код.
Виявилося, він вирішив, що картографічний сервіс MS недостатньо хороший, тому написав геніальний алгоритм для обчислення найкоротшого відстані на сфері по прямій лінії.
У підсумку виходило, що клініка на іншому березі Брістольського каналу в Уельсі ніби як ближче, ніж клініка в Девоні, де жив пацієнт. Але йому довелося б добиратися до неї вплав.
Я звільнив того розробника з трьох причин:
- Ігнорування прямих вказівок керівника проекту (тобто мене).
- Забезпечення марною альтернативи.
- Безцільна трата обмежених ресурсів - грошей і часу.
Він був дуже засмучений - ніхто не хоче такого запису про співпрацю з Microsoft в своєму резюме. Але він завдав великої шкоди для потенційно мультимільйонний проекту.
Мене звільнили з міжнародної нафтогазової компанії за те, що я був «загрозою для безпеки».
Їх не дуже розумний адмін налаштував IE так, що будь-який бажаючий міг виконувати пакетні команди. Керівництво залишалося глухо до моїх скарг або відповідало «О, не можна цього зробити, це неможливо». Це підштовхнуло мене на безглуздий вчинок.
Я написав простенький скрипт і поклав сторінку на моє особисте сховище, після чого покликав людей зайти на сайт. Цей скрипт тільки записував файли на робочий стіл і видаляв їх. В результаті одна людина, чию дупу я врятував, переписавши його тупий код в одному глобальному проекті, настукав вищому керівництву, що я зробив і як це потенційно небезпечно, якщо системний адміністратор зайде на таку сторінку (про це-то я і кричав весь цей час ).
Незабаром після цього (через лічені години) мій комп'ютер раптово заблокувався. У нас була ця реально тупа програма, яка моніторить, скільки ударів по клавішах ти зробив за годину, і вилогінівает тебе на п'ять хвилин, щоб ти поробив якісь вправи. Я подумав, що це воно. Але через пару годин за мною прийшов HR.
Я працював в e-commerce компанії, де нам дали завдання додати ще один метод оплати. У нас була зустріч з розробником, яким це доручили.
Там були СТО, цей розробник і я. Я був єдиним, хто раніше виконував таке завдання, і я знав, що код настільки заплутаний, що на виконання найпростішої завдання на зразок цієї можуть піти тижні роботи. Я свого часу присвятив цьому цілий місяць, і мене мало не звільнили. У компанії були і інші схожі випадки, кожен з яких закінчувався плачевно. Найгіршим з них був кейс, коли на впровадження нового методу оплати розробник витратив п'ять тижнів.
На зустрічі я пояснив проблему СТО та того хлопця, і всі троє погодилися на швидкий рефакторинг одного файлу, щоб спростити проблему на майбутнє.
Вгадайте, що сталося далі. Цей хлопець був новеньким і в статусі senior-розробника, так що він хотів усіх вразити і зробити повний рефакторинг. На виконання максимум двотижневої завдання пішло більше двох з половиною місяців. Через нього вся команда два тижні працювала овертайм, щоб пофиксить баги. На наступний день після фінальних тестів його звільнили.
Обматюкав боса в коді
Став причиною військової облави на компанію
Мені довелося звільнити молодого талановитого програміста, коли через його pet-проекту до нас прийшли силовики. Він написав програму, яка сканувала випадкові блоки IP в пошуках комп'ютерів, на яких був бекдор. Потім він обережно з'ясовував, чиї це комп'ютери, контактував з їх власниками і повідомляв про ризик.
Все б добре, поки програма НЕ напоролася на IP-блоки військових і вони не вийшли на нас. Дуже важко було переконати їх в його добрі наміри, так що йому і його его довелося піти, незважаючи на талант.
Ось ще один дуже простий спосіб втратити роботу: залишити за собою чужу працю. Це плагіат, але покаранням буде не погана оцінка на іспиті або завал курсу: вас негайно звільнять, як тільки виявлять факт «списування».
Якщо ви таким займаєтеся, ви піддаєте свого роботодавця ризику бути втягнутим у судову тяганину, а це те, чого вони терпіти не можуть. Якщо мені не зраджує пам'ять, власники (на той час) UNIX виявили в ядрі Linux чотири рядки коду, ідентичних таким же в ядрі UNIX. Чотири рядки стали причиною пекельного судового розгляду. Ось чому вчителі так серйозно ставляться до унікальності.