Quantcast
Channel: Категория [Блоги] - сообщество программистов
Viewing all 499 articles
Browse latest View live

Суб’єктивний погляд на Data Science в Україні

$
0
0

[Про автора: Богдан Павлишенко — Data Scientist в компанії SoftServe (Business Systems), доцент (канд.фіз.-мат. наук) факультету електроніки та комп’ютерних технологій у Львівському національному університеті імені Івана Франка, а також займається науковою роботою в області аналізу даних (LinkedIn, блог)]

Біля пам’ятника Т.Шевченку у Вашингтоні

Data Science, Big Data, Predictive Analytics, Machine Learning — популярні тренди у сучасних інформаційних технологіях. Посади спеціалістів з аналізу даних стали одними із найбажаніших в ІТ-секторі. З’явилась велика кількість Data Scientists та популяризаторів цього напрямку, які розказують про фантастичні можливості сучасного аналізу даних, машинного навчання, зокрема, нейронних мереж.

Цього року я брав участь у двох науково-практичних конференцій в області аналізу даних: Data Stream Mining & Processing (August 23-27, 2016, Lviv, Ukraine) та 2016 IEEE International Conference on Big Data (December 5-8, 2016, Washington, D.C., USA).

Також я є учасником змагань з аналізу даних на платформі Kaggle, де у складі команди виграв змагання Grupo Bimbo Inventory Demandз прогнозування попиту товарів, отримавши перше місце серед майже 2000 учасників (наш розв’язок тут).

Як Data Scientist у SoftServe (Business Systems) я маю справу із прикладними задачами аналізу даних, бізнес-аналітикою, зокрема, прогнозуванням продажів, аналізом факторів, які впливають на попит товарів, поведінкою споживачів товарів та послуг, fraud detection тощо. Коло моїх наукових інтересів пов’язане із Machine Learning, аналізом текстових масивів та слабоструктурованих даних, аналізом соціальних мереж, зокрема, прогнозуванням подій на основі потоків даних у соціальних мережах.

Все це дало мені змогу побачити різні аспекти аналізу даних, спілкуватись із широкими колами спеціалістів зі всього світу на конфереціях, на платформі Kaggle, а також з реальними замовниками аналізу даних. Хочу поділитись своїм баченням цього напрямку інформаційних технологій.

Про спеціалістів з аналізу даних

Дехто вважає, щоб стати Data Scientist, достатньо вивчити один або декілька засобів аналізу даних, таких як R або Python із відповідними пакетами. Насправді, аналіз даних — це в першу чергу розуміння даних, їхньої статистики та відповідних алгоритмів аналізу. Без такого розуміння ніякого якісного аналізу не вийде. І для цього потрібно мати як мінімум фундаментальну базу математичних знань на рівні вищої фізико-математичної або технічної освіти, на основі якої можна вивчити відповідні алгоритми з машинного навчання, регресії чи статистичної обробки.

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

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

Реальний аналіз даних складається не з одного алгоритму, а з багаторівневої комбінації різних алгоритмів та підходів. Тому виходом є використання спеціалізованих середовищ, зокрема програмного середовища R та відповідних пакетів. Аналізуючи реальні дані великих розмірів, виникають різні проблемні моменти, які наперед не є очевидними, зокрема, ефекти перенавчання (overfitting), які значною мірою визначені структурою та областю знань аналізованих даних. Значний об’єм роботи в аналізі даних полягає у вирішенні конкретних рутинних проблем, як, наприклад, об’єднання даних із різних джерел, очистка даних, виявлення випадкових значень, не властивих аналізованому процесу, заповнення невідомих даних найбільш ймовірними значеннями, завантаження та робота з даними у хмаркових сервісах, різного роду агрегація даних тощо.

Інколи зустрічаю серед спеціалістів таку думку, що науковець по даних лише генерує ідеї, на реалізацію яких у нього просто немає часу. Для реалізації нібито існують інженери, які всі його ідеї реалізують у коді. Це також хибна позиція. На практиці ніхто вам не реалізує ваші ідеї. Науковець по даних повинен сам реалізовувати свої ідеї в коді, як мінімум на рівні працюючого прототипу. Він сам повинен отримувати числа, розподіли, розпізнавати патерни, кластеризувати та класифікувати надані йому десятки гігабайт даних. Максимум, що він може просити — це надати йому дані у зручному вигляді, наприклад у текстовому форматі з відповідними розділювачами між полями. Подальша робота з даними, об’єднання фреймів даних за відповідними ключами, очистка даних, агрегування даних, генерація нових ознак лягає на його плечі.

Спеціаліст по аналізу даних повинен поєднувати в собі як науковця зі знанням математики, відповідних алгоритмів та методів, так і програміста, який володіє мовами програмування та спеціалізованими пакетами по обробці та аналізу даних.

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

Про конференцію Big Data 2016

Конференція 2016 IEEE International Conference on Big Data проходила з 5 по 8 грудня у Вашингтоні у готелі Hyatt поруч із Капітолієм. Багато чим всі наукові конференції, у тому числі українські, подібні між собою за організаційними моментами, дружньою атмосферою, стилем доповідей та дискусій. На цій конференції було багато як науковців, так і представників технологічних компаній та урядових структур. Не всі учасники мали доповіді, багато учасників приїхали послухати доповіді та взяти участь у дискусіях. Із програмою та матеріалами можна ознайомитись на сайті конференції. Я отримав грант на поїздку на цю конференцію від компанії Bosch (більше інформації тут), а також підтримку від компанії SoftServe (Business Systems). Доповідав на симпозіумі Symposium on Data Analytics for Advanced Manufacturing, який проходив у рамках конференції. Тема моєї доповіді «Machine Learning, Linear and Bayesian Models for Logistic Regression in the Failure Detection Problems» (pdf-файл).

Конференція BigData 2016. Доповідає M. Stonebraker(M. Stonebraker, D. Deng and M. L. Brodie, Database Decay and How to Avoid It)

Конференція BigData 2016. Слайд із доповіді Dr. Frank W.Gayle, Advanced Manufacturing National Program Office (AMNPO), NIST

Одна із стендових доповідей на конференції BigData 2016

Про кваліфікаційний рівень Data Scientist та змагання Kaggle

Гостро стоїть питання про кількісний вимір кваліфікаційного рівня спеціаліста з аналізу даних. Часто про свій рівень заявляють самі спеціалісти. Не показуючи при цьому результатів своїх досліджень, посилаючись на договір про нерозголошення. І часто оточуючі судять про їх кваліфікацію, опираючись на впевненість поведінки і частоту та кількість вживаних термінів із області аналізу даних. Теорія сучасного Data Science не є надто складною, в той же час успіх аналізу даних значною мірою визначається власним досвідом та інтуїцією спеціаліста, його обізнаністю у предметній області аналізу.

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

На мою думку, найбільш об’єктивними характеристиками такого типу можуть бути рейтинг та здобутки спеціаліста на загально визнаних платформах з аналізу даних. Однією з таких платформ є Kaggle. На цій платформі різні компанії дають свої завдання з аналізу даних широким колам спеціалістів із усього світу. І запропоновані розв’язки часом мають складові елементи більш ефективні, ніж розв’язки власних спеціалістів цих компаній.

Сайт Kaggle.com

У декого виникає питання: «А який резон серйозним спеціалістам світового рівня брати участь у таких змаганнях, адже призові отримують лише переважно перші три команди, а участь у змаганні можуть брати декілька тисяч?» Справа у тому, що ви маєте можливість спробувати свої методи на реальних даних із бізнесу, а з іншого боку система Kaggle оцінює результати вашого моделювання і виставляє вам рейтинг, який базується на ваших результатах. Цей рейтинг і є одним з найбільших стимулів участі у таких змаганнях. Розмовляючи у кулуарах згаданої вище конференції у Вашингтоні, я побачив, що рейтинг у Kaggle є загальнопризнаним і високі позиції характеризують високий кваліфікаційний рівень спеціаліста.

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

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

Leaderboard на змаганні Grupo Bimbo Inventory Demand, у якому наша команда The Slippery Appraisals отримала перемогу

Особисто для мене, участь у таких змаганнях дала дуже багато у розумінні аналізу даних (мій Kaggle-профіль). Звичайно, що у таких змаганнях є особливі підходи, які визначаються специфікою змагань. Однак, основне, що отримує учасник змагань — це практичний досвід роботи з даними з різних предметних областей. Дехто стверджує, що боротьба на таких змаганнях йде за незначні долі у результатах прогнозування, а це ніби не так важливо у реальних задачах, де важливішим є стабільність розв’язку. Частково це так. Однак, аналіз підходів, валідація моделей, побудова ансамблів класифікаторів, технології беггінгу та стекінгу також можна застосовувати у реальних задачах. Їх неможливо освоїти теоретично, потрібна практика на реальних масивах даних. Коли ви, наприклад, готуєтесь поступати на математичний чи фізичний факультет, то також здаєте екзамен чи тести по складних алгебраїчних чи тригонометричних перетвореннях, які пізніше не будете застосовувати на практиці. Але цим ви показуєте свою здатність мислити і свій стартовий аналітичний рівень. Подібну аналогію я бачу і в участі у змаганнях на Kaggle, які можна розглядати як додатковий фактор росту рівня компетентності в області аналізу даних.

Про ілюзії в Data Science

Існує думка, що для аналізу даних обов’язково необхідні технології Big Data, до яких відносять Hadoop, MapReduce, Spark. Насправді, названі технології Big Data стають ефективними при розмірах даних починаючи від декількох терабайт. У реальному бізнесі лише дуже малий відсоток даних мають таких розмір. Я маю на увазі не загальний розмір бази даних, а розмір однієї таблиці, рядки якої необхідно аналізувати одночасно, наприклад, методами машинного навчання чи здійснювати аналіз на основі лінійних параметричних моделей.

Більшість сучасних систем аналізу, зокрема R, розміщують аналізовані дані в оперативній пам’яті. Наприклад, мій робочий настільний комп’ютер має розмір оперативної пам’яті 128Гб, і я можу аналізувати дані розміром в десятки гігабайт. Навіть якщо початкових даних є більше терабайта, то часто необхідна попередня агрегація даних, яку можна виконати відповідними пакетами без завантаження всіх даних в оперативну пам’ять і далі аналізувати агреговані дані суттєво меншого розміру. Або, наприклад, розбити дані на відповідні частини, а розв’язки об’єднати у відповідні ансамблі.

Коли наша команда брала участь у згаданому вище змаганні Kaggle, ми використовували арендований на Amazon ресурс із 128 процесорів та 2Tb оперативної пам’яті (x1.32xlarge Amazon EC2), що було одним із важливих чинників нашої перемоги на змаганні, оскільки дало можливість нам випробувати велику кількість моделей з великим набором створених ознак. Все це говорить про те, що навіть аналізуючи дані достатньо великих розмірів, у багатьох випадках можна обійтись без технологій Big Data.

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

У своєму аналізі на згаданому змаганні Kaggle, ми також використовували нейронні мережі. Але ми використовували їх на другому рівні нашої моделі для реалізації стекінгу з метою незначного покращення результату. Розрахунок із використанням нейронних моделей був одним із найбільш трудомістких, хоч для цього використовувались потужні графічні процесори. І в кінцевому варіанті нашого розв’язку ми відмовились від нейронних мереж у нашій моделі, віддавши перевагу простішому варіанту моделі.

Про організацію роботи спеціалістів з аналізу даних

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

Одним із факторів перемоги нашої команди на Kaggle було те, що в коло моїх професійних інтересів входить аналіз динаміки продажів товарів, тому в генерації великої кількості нових ознак я вкладав відомі мені структурні зв’язки, які існують у бізнесі продажів та поставок. Одні з них давали покращення результатів, інші ні, але нам вдалося відібрати найефективніші ознаки. Тому я є більше прихильником вузькоспеціалізованих науковців з аналізу даних у відповідних ІТ-підрозділах.

Особливістю Data Science є те, що в цій області практично неможливо працювати фрілансером, як, наприклад, в області веб-програмування. Дані відображають багато чутливих моментів діяльності компаній. Особлива увага приділяється юридичним аспектам при передачі даних для аналізу. Тому у цій сфері аналізу даних замовники надають перевагу ІТ-компаніям, з якими можна підписати відповідні юридичні договори, зокрема договір про нерозголошення.

Про співпрацю із вузами

В Україні на даний час склалась успішна ІТ-індустрія, яка, на мою думку, дещо перебуває у легкій ейфорії. Одна з основних проблем — це слабка диверсифікація напрямків діяльності. Основний акцент зроблено на аутсорс, у розвитку якого є свої об’єктивні тренди як зростаючого, так і спадного характеру. Для стабільнішого розвитку потрібно було б збільшити частку наукоємких проектів та продуктів. Аналіз даних як у вигляді сервісу, так і у вигляді розробки спеціалізованих продуктів є одним із таких перспективних напрямків. За моїми спостереженнями реальних комерційних проектів з аналізу даних є суттєво менше, ніж самих розмов про Data Science.

Одним з чинників успішного розвитку Data Science в ІТ-бізнесі я бачу тісну співпрацю між ІТ-компаніями та вузами. Є багато прикладів такої співпраці, але її загальний обсяг недостатній. Одна з основних перепон у такій співпраці — це гонор та зверхність, які властиві обом сторонам. Серед викладачів чути, що вони не будуть займатись набиванням на клавіатурі нібито примітивного коду, що вони — академічна організація, а не бізнес структура. Інші кажуть, що ІТ-сектор і так мав би підтримувати вузи, бо ми готуємо для них спеціалістів. Зі сторони ІТ чути інші думки — у вузах не вчать сучасному програмуванню, курси застарілі, наука дає нульовий результат.

Знаючи ці дві сторони, можу сказати, що своя правда є у кожного. Успішні ІТ-шники часто недооцінюють те середовище, у якому вони формувались протягом 4-6 років.Інколи важко оцінити, що дали ці всі лекційні курси, практичні заняття, лабораторні, курсові та дипломні роботи, сесії, середовище спілкування. Насправді, вони дали той базис, на основі якого в подальшому сформувались ці успішні ІТ-спеціалісти. І ніякі курси з програмування не замінять тої бази, часто невидимої, яку дають вузи.

З іншого боку співпраця із ІТ-компаніями — це один з небагатьох варіантів, які дадуть можливість розвиватись як науковим школам, так і педагогічним колективам вузів. Адже у сучасних умовах мало хто з перспективних випускників йде займатись науковою роботою, немає можливості поїхати на значиму наукову конференцію, запросити відомого спеціаліста. Сформувавши відповідну співпрацю, можна створити базу для прикладних наукових напрямків, зокрема з аналізу даних. У цій співпраці можна було б поєднати фундаментальні знання та доробки викладачів, а зі сторони ІТ-компаній — практичні навички розробки програмного забезпечення та менеджменту.

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

Теоретично, аналізу даних можна навчитись з відповідної літератури чи на on-line курсах. Однак, виходячи із свого досвіду, я не бачу можливості розвитку Data Science без залучення науковців фізико-математичного напрямку. Потрібний особливий науковий підхід до проблеми, який виробляється роками в процесі наукової діяльності.

Багато з того, що я бачив зі сторони українського ІТ-бізнесу в області аналізу даних — це поверхневий погляд на проблему, тестові приклади, доповіді з узагальненими блок-схемами. З іншого боку, академічне товариство представляє свої ідеї з надскладними алгоритмами та формулами. Однак, немає співставлень про те наскільки нові підходи є кращими за ті, що вже існують та працюють, які результати можна отримати на відомих тестових даних.

Не всі викладачі можуть відразу почати співпрацю у новому для них ритмі з особливим форматом взаємодії з ІТ-бізнесом, це також нелегко. Зі сторони вузів мають бути зміни. Наприклад, для викладачів, які співпрацюють із ІТ-компаніями повинен бути гнучкий графік педагогічного навантаження, у яке мала б зараховуватись робота над спільними ІТ-проектами. Ентузіасти із ІТ-компаній, могли б читати відповідні лекції у вузах із зарахуванням їх до викладацького складу цих вузів. На згаданій вище конференції у Вашингтоні також обговорювалась співпраця вузів із бізнесом та урядовими установами. Основні проблеми чимось подібні у нас і на Заході. Маючи не гірший фундаментальний рівень, ми могли б співпрацювати на більш привабливих для іноземних компаній фінансових умовах.


Я висловив свій погляд лише на деякі аспекти Data Science з точки зору усередненого українського спеціаліста на основі власного досвіду і бачення даної проблеми. Хотілось би почути також думки інших спеціалістів з цього напрямку інформаційних технологій.


Как меня увольняли — окончание баек

$
0
0

[Об авторе: Владимир Железняк — 17 лет в отрасли, много всякого повидал, был многократно уволен, взлетал и падал.]

В первой частибыли истории давно минувших дней, предания седины глубокой. В этой части события уже куда ближе к современности, и уже очень многое нельзя списать на «был молодым и глупым». Для меня писать вот это всё — рискованно, потенциальный работодатель может прочитать и в дальнейшем мой выбор места работы может быть хуже. С другой стороны — если мы не подходим друг-другу, то лучше узнать об этом как можно раньше.

Note: я уменьшаю количество скучной автобиографии «а вот тут я писал на <>», фокусируясь на интересном и/или полезном. При этом я сознательно оставляю поменьше историй успеха — интернет и так ими полон, лучше я напишу про то, на чём я научился. Хронология нарушена.

Стресс-интервью

Пошел собеседоваться в тот самый аутсорс-гигант, в котором проходил интернатуру. Я в этого гиганта больше семи заходов сделал за 15 лет.

Захожу в комнатку, оглядываюсь: на меня пришли посмотреть шесть человек, а меня посадили так, что я сижу за бруствером и перекрикиваюсь с основными собеседниками. Ок, вспоминаю Людей в черном, вылажу в самый центр комнаты и непрерывно вращаюсь. Меня тогда собеседовали не на менеджерскую позицию, так что вряд ли это было специально подстроено, хотя ощущения были сильные.

Собеседования

Когда я ходил по собеседованиям, у меня был список вопросов к работодателям: «расскажите о проекте подробнее», «какой стек?», «а как вы решаете вопросы с эстимейтами?», «а какую методологию используете?», «а решарпер у вас купленный или ворованный?», «насколько часты овертаймы» и т.д. Рекрутеры на этот список обычно отвечать не умеют, а технари к нему не готовы. Вот топ-менеджеры умеют и готовы, только у них времени нет.

После нескольких провалов и лет я понял, что метод неэффективен. Я задумался: «а зачем я это спрашиваю?» Честный ответ был «чтобы произвести впечатление, и, важнее, понять для себя, будет ли мне хорошо на этой работе». Для достижения цели «произвести впечатление путем задавания правильных вопросов» собственно вопросов нужно куда меньше.

Для цели «будет ли мне здесь хорошо» эффективным методом оказалось просто смотреть по сторонам во время визитов в офисы. Если люди сосредоточены, но часть таки общается, видны улыбки, и на кухне кто-то появляется хоть раз в 10 минут — всё ок. Если взгляды мрачные, полная тишина или наоборот, сплошной трындеж — то это повод задуматься. Для Харькова еще интересный признак — это количество людей в офисе часов в 9 утра и часов в 8 вечера. Если людей много — значит что-то нетипичное.

8хPM

Устраивался в одну фирму. Тогда хотел быть менеджером. Рекрутер сказала «поработаешь на первом проекте программистом, а вот на втором — уже будешь PM-ом». Потом выяснилось, что на проекте из восьми человек пятеро получило такое же обещание.

  • В разработке ПО свои пирамиды. Приведи трёх программистов и стань пиэмом. © Grigoriy Pechenkin
  • Этим часто рекрутеры грешат, главное, чтоб принял оффер, а потом пусть ПМ-ы или HR-ы возятся. А человек обиделся и будет скорее всего посылать лучи демотивации в коллектив и недовольства в менеджера. © Masha Shamota

QA вырос

Устраивался к нам на работу знакомый. Тогда был сырым джуном и не прошел. Потом встретил его через три года — уже состоявшийся спец в поиске новой работы, нам как раз был такой нужен. Говорю: «Давай к нам?», а в ответ — «Пошли вы далеко и надолго». Почему? В прошлый раз обещали позвонить о результатах собеседования — и нифига не позвонили. Вот так из-за пяти минут времени рекрутера мы потеряли хорошего сотрудника. Это если он еще не нажаловался кому-то еще.

Повороты при найме

Я много проводил собеседований и много ходил на собеседования. В этой микро-истории я собрал самые необычные концовки за много лет:

  • Устраивался QA.Не спрашивайте, так получилось. Техническую часть я тогда прошел нормально, а вот когда зашла речь про зарплату, тимлид в прямом смысле слова за голову схватился. Жест редкий, я запомнил.
  • Соскучился по коду, хотел устроиться программистом.Отказали с формулировкой «мы вас знаем и читаем ваши статьи, у нас сейчас нет вакансии подходящего уровня, вам будет скучно, извините». В другом месте целился на менеджера, но «вы слишком психолог». У известности есть и тёмная сторона.
  • Собеседовался на менеджера.Всё классно, но владелец сам очень много работает и от других требует того же. К концу первого разговора мы поняли, что друг другу по этому параметру не подходим. Остальное — всё классно, а вот не совпадает ритм работы холостяка и семейного человека. И при этом — всё остальное просто супер! В итоге договорились о еженедельных консультациях.

Кукла

Пошли мы в магазин за куклой с десятимесячной дочкой. Подошли к стеллажу и предложили выбирать. Лена посмотрела и мгновенно определилась. Поскольку хотели, чтобы дочь играла с куклой дольше одного дня — решили предложить ей другие, может что понравится больше. Но по возмущенным воплям скоро стало понятно, что хочется именно эту и никакую другую. Можно эту и еще одну, но эта — обязательно! Нас выбор тоже устроил — вполне симпатичная качественная кукла в красивой кроватке-коробочке. Утверждено. Взяли. Принесли домой, распаковали. Кукла полетела в сторону, и Лена стала играть с коробкой...

Как оказалось, это мы ходили за куклой. А Лена ходила за красивой коробкой, какая и была куплена с куклой в нагрузку. Коробкой Лена играла куда чаще, чем куклой.

Мораль: если мы догадались, что нужно заказчику — скорее всего мы ошиблись.

Жаворонок

Мне было удобно приходить на работу к 8:30 — сразу после садика. Что я пришел на два часа раньше всех — это видел только сервер. А вот если уработавшись или по семейным надобностям уходил раньше всех, то косые взгляды или приглашение срочно что-то обсудить — были почти гарантированы.

Спорные изменения

Один синьор любил работать в тишине и часто задерживался на работе. Как-то в пятницу вечером он глубоко погрузился в код, разогнался и, абсолютно незаметно для себя, отрефакторил полпроекта. Покрыл тестами, закоммитился, запушился и ушел домой спать. Я вообще не знаю, выходил ли он из офиса в ночь с пт на вс.

Второй синьор пришел в понедельник с утра пораньше и обнаружил, что мердж его почти готовой и долгожданной фичи теперь из-за рефакторинга из банальной задачи превратился в огромного монстра. Ситуацию усугубило очередное письмо «сколько можно ждать! давай немедленно!» от заказчика. Второй взял и, никого не дожидаясь, решил проблему — откатил коммиты Первого, и влил свои.
В середине дня на работу пришел Первый. Увидел. Осознал. Пришел в ярость. Пошел бить морду, а по дороге заглянул ко мне за поддержкой.

Что делать мне, как менеджеру?

Я эту ситуацию часто подсовываю на собеседованиях. Кто-то сразу принимает решение: «Если синьор в нерабочее время отрефакторил — значит так было надо. Технический долг, красота кода, долговременная выгода». Кто-то больше склоняется к «Предупреждать же надо, такие вещи в одиночку не делаются. Процесс, коммуникация, бизнес-польза». Кто-то колеблется и задаёт вопросы: «А так ли важен был рефакторинг? А так ли нужна эта фича?» Кто-то ищет компромиссы с двумя ветками и очередностью мерджа.

Это хорошие и правильные решения задачи «что делать с кодом». Но, проблема-то не с кодом, а с людьми! Первый в одиночку на выходных разгрёб говнокод, а его подвиг слили. Он чувствовал себя героем, а его лицом в грязь. Фиг он еще раз на работу на выходных подпишется. Второй был уверен, что делает важную и нужную фичу, которую все ждут, а тут вот у него землю из-под ног выдернули, его работу обесценили, и он же ещё и виноватым остался. Фиг он еще раз проявит инициативу. И Первый, и Второй чувствуют обиду и гнев. И Первый, и Второй думают: «Меня здесь не ценят», и гонят от себя чувства вины и страх. И Первый, и Второй сделали большой шаг к увольнению, им тут плохо.

Я менеджер, я стараюсь хоть на выходных не спрашивать у сотрудников: «А что ты делаешь и когда будет готово?». И тут два моих классных сотрудника совершили правильные действия и теперь готовятся уволиться. Ну, обалдеть! Вопрос кода тут второстепенный, это как максимум, человеко-неделя работы. Замена двух ведущих сотрудников — вот это куда серьезней. Тут нужно работать не с кодом, а с их эмоциями. Говорить об их потребностях в уважении и безопасности, а когда эмоции схлынут — о взаимоуважении и предсказуемости. И только после этого — уже смотреть, что делать с кодом и в каком порядке коммититься. И в любом случае, идеального решения здесь не будет.

Ненужный проект

Соседний проект к нам зааутсорсила крупная корпорация. Код зверски устарел, технический долг был выше крыши, а бизнес-выгода крайне сомнительна. При этом:

  • Топ-менеджеры корпорации о нём просто не помнили. Затраты на команду из десяти человек у них проходили по графе «мелкие расходы. Можно не смотреть, пока работает».
  • Миддл-менеджеры корпорации тоже люди занятые, но не обладали полномочиями стартовать или завершать проекты самостоятельно. Для остановки проекта им нужно было пойти к топ-менеджерам. Ну а те бы сразу задали вопрос: «А почему проект не был пересмотрен год назад?». Т.е. у миддлов был выбор — «оставить как есть» и «получить выговор». Второй вариант почему-то никто не выбирал.
  • Наш аутсорс-директор. Стабильный контракт, регулярные платежи, неплохой рейт, громкое имя в списке клиентов.
  • Наша команда. Хорошая зарплата, возможность в свободное время учиться, никто никуда не гонит... Только скучно, и учился таки мало кто, больше потрындеть.

Вот так вроде все всё делают правильно — а получается что-то ненужное. Конечно, хочется всю вину переложить на топ-менеджеров, типа «какой процесс построили, такой и получили»... Хотя, мне кажется, здесь ответственность таки коллективная.

Клептомания

Начали у нас пропадать деньги в карманах курток. Карманник был умный и брал по чуть-чуть. 70 человек, подозрительных новичков нет, зарплаты у всех айтишно-высокие, вычислить так и не смогли. По итогу перестали держать деньги в гардеробе, а потом как-то слухи сошли на нет.

А еще одного парня наняли на работу, он проработал две недели, набрал долгов и тихо уволился. У всех — по мелочи, а вот тимлиду было обидно — почти килобакс ушел. На телефон не отвечает, по адресу прописки его нет. Для законных методов нужна расписка или свидетели, для незаконных — как-то непривычно.

Командировка

При мне состоялся разговор PM-а с директором:

— Как там Вася работает?
— Да классно, способный парень, большое будущее.
— Ну давай его поощрим — пусть поедет к заказчику в США на пару месяцев, мир повидает.
— Ок, сделаю.

Чуть позже Вася в курилке говорит:

— У меня дочка родилась три месяца назад, а тут меня в командировку хрен знает насколько. США — это классно, но ведь дочка меня забудет за это время! Но если фирме надо — так я поеду...

Фирма вложилась в типа поощрение, а результат — демотивация. Холостяку-директору, эмигрировавшему 15 лет назад — поездка в штаты выглядит поощрением, молодому папе семья была важнее. Разные ценности, спрашивать надо было. Вася тоже мог что-то сказать не в курилке, а PM-у.

Самозатягивающаяся семья

Давным-давно мой знакомый работал сисадмином. На двух работах, типа два по полставки. Домой приходил сильно уставший и на выходных тоже часто работал. Жена регулярно ему за это делала выговоры, переходящие в скандал. Впрочем, скандалить было не очень интересно — если собеседник с трудом тебя понимает. Так что рано или поздно он сквозь поток слов слышал ключевые слова: «Кстати, а вот у Светки новые туфли.» и делал цепочку вывода: «Это она так туфли хочет — нужно ей туфли купить — нужно на туфли заработать — нужно больше работать — а вот халтурка мимо пролетает — возьму халтурку». Так он работал и зарабатывал всё больше, а семья распалась.

Нереалистичные обещания

Зашел к нам очень интересный и вкусный проект. Бигбосс нанял русскоговорящего американского PM-а. И вот я слышу, как этот PM обещает заказчику какие-то совершенно нереалистичные сроки. Ну то есть в разы меньше, чем это вообще правдоподобно. В этот раз я написал письмо бигбоссу напрямую с предложением обсудить ситуацию. Через полчаса мне позвонил разъяренный PM и учинил страшный выговор за действия «через голову». Бигбосс со мной так и не связался.

IT-Boost «Психология в IT»

В какой-то момент я сильно колебался, какое направление развития для себя выбрать. Я писал код около двадцати лет и уже поисписался. Очередной фреймворк, который устаревает быстрее, чем успел выучить... В общем, выбирал я тогда между менеджерским направлением и карьерой тренера. Знаний по прикладной психологии накопил намного больше, чем средний айтишник. После долгих раздумий решил совместить — целиться одновременно на менеджерские роли и записался на курсы тренеров. Про роль менеджера и баланс с программированием я напишу как-нибудь отдельно, а про курсы тренеров — я там многое получил, но из нашего набора в 20 человек я так и не увидел людей, для кого ведение тренингов и консультаций стало бы основной работой. Зато очень удачным стало партнерство с Димой Снисарем: я хорошо знаю айтишные проблемы и заморочки, а он, как психолог-практик, очень хорошо знает, почему может быть именно так, и что с этим делать.

Баг таймера

Как-то я совершенно внезапно для себя сделал вот такой двухминутный мультик. Если не ошибаюсь, занял пару недель свободного времени, включая выбор и изучение инструментария.

Пинок

В какой-то момент я не видел программирования в своем будущем, слабо учил новые технологии, слишком плохо писал код, и меня уволили. В отличие от предыдущих увольнений, это было закономерное и заслуженное. За такие деньги такой сотрудник был не нужен. В IT вообще увольняют редко, получился очень болезненный и поучительный опыт.

Я осмотрелся кругом — денежная подушка безопасности есть, значит есть возможность сконцентрироваться на своем стартапе по психологии. Как показали будущие события, из двух построенных графиков роста реализовался супер-пессимистичный с ухудшением в три раза к ожидаемым числам. Думаю, это стандартная ошибка для стартаперов-технарей.

Разворот

Позвонил бывший коллега-программист, говорит, что его заказчик ищет PM. Выяснилось: распределенный проект, есть команда сильных программистов, есть толковый заказчик. Заказчик после трех месяцев работы нифига не понимает, что происходит, что это за задача «настроить nginx и balancer», зачем она нужна и сколько такие непонятные задачи потянут. Взяли меня на почасовку-полставки.

Только я за пару недель разобрался в сути проекта, как заказчик обнаружил сильного конкурента с годичным опережением. Был выбор либо бодаться с этим конкурентом на его же поле, либо резко поменять стратегию. При этом есть жесткий дедлайн. Огромным напряжением переписали всё, кроме некоторых CSS. Ну а я с числами увидел, как после нескольких месяцев овертаймов резко падает командная производительность.

В итоге, проект взлетел и центр разработки плавно перешел в Канаду. Моя нагрузка падала с каждым месяцем и потихоньку сошла на нет. Даже не знаю, можно ли это отнести к увольнениям. Наверное, нет, но работы я лишился.

Офисное пространство: секс и насилие

Один из докладов в формате 20 слайдов за 20 секунд. Впервые выступал в зале для 600 человек. Пара недель свободного времени на подготовку, 900 фотографий.

Власть

На одном проекте тимлид жаловался директору, что у него из-за административных задач остается мало времени на кодинг. Ну ему директор и нанял в помощь меня на роль PM. Вроде всё хорошо, толковый тимлид, толковая команда, интересный проект, но был один нюанс. Один на один с тимлидом договариваться получалось, к примеру — о способах получения мною текущих статусов. А когда дело доходило до «давайте командой соберемся» — вот тут уже: «Нифига, я занят. И вообще — дурацкая идея собираться». В общем, был серьезный конфликт на личном уровне, со мной перестали здороваться. Я не сумел конфликт разрулить и убежал в код. После нескольких лет без программирования изучил новый язык программирования и покодил на нем несколько месяцев третьестепенные задачи.

В какой-то момент директор встал перед выбором: или я, или тимлид. Результат был однозначен — от тимлида проект зависел гораздо больше, чем от PM. Меня уволили. Моя основная ошибка — я не эскалировал проблему до директора чуть раньше. С другой стороны, даже сейчас я не вижу вариантов, при которых ситуация развивалась бы иначе. Не все битвы можно выиграть.

Впоследствии в кооперации с HR этот тимлид вытеснил других менеджеров из фирмы. Найм по принципу личной преданности он практиковал давно. Судя по LinkedIn, фирма потом ощутимо сдала.

Очень болезненная и неприятная для меня история. Зато я восстановил навыки программирования и больше их не терял. Программисту найти работу гораздо проще, чем менеджеру.

Кондиционер

Был у нас сотрудник, который с прошлой работы уволился из-за кондиционера. Он сидел ровно под кондиционером и летом ходил в свитере и бронхитил. Переставить стол не удалось, договориться — тоже. Начальство не помогло, ну он и уволился.

Вот так из-за менеджерской экономии на решении конфликтов и бытовых проблем ушел очень хороший сотрудник. Да, на форуме DOU обсуждалась похожая ситуация, но имена другие.

Отечественный заказчик

Вел переговоры с потенциальным заказчиком. Вроде, все почти хорошо, но непрерывные согласования, уточнения и планирование оттягивали дату начала работ. При жестко зафиксированном дедлайне — это делало шансы на успех все меньше и меньше.

Самая сложная тема была о деньгах — заказчик хотел формулу «n% от прибыли в первый год после запуска», а я хотел и ставку тоже. В конце концов, я высказал ультиматум: «Или договоримся о деньгах до конца этой недели, или прекратим переговоры». И это сработало — я там потерял всего месяц.

Вообще, из моего опыта, работа на отечественного заказчика — это либо волонтерство, либо непрерывное ожидание кидка. Бывшие соотечественники — с ними намного лучше, хотя тоже бывает.

Выговор

Один синьор с января по апрель работал без выходных в условиях приближающегося жесткого дедлайна. Монстр, железный человек, суперспец. И решил он на майские поехать на велосипеде на вылазку. В пятницу вечером сел на вел и поехал. Отъехал часа на два, и тут звонок от бигбосса: «Последние фичи, которые ты залил на сервер, мало того что не работают, так еще и положили старые. А мне нужно будет на выходных делать презентацию».

Синьор вздохнул и сел в электричку. В 22 он был в офисе, к трем часам сервер уже работал, к середине воскресенья сервер работал хорошо. В понедельник утром синьор получил выговор за не вовремя положенный сервер и почему-то обиделся. После нескольких месяцев без выходных и самопожертвования для срочного фикса он ожидал благодарности. А бигбосс придерживался идеи «накосячил — исправляй».

Контрольный пинок

По сравнению с профессией программиста карьера тренера начинает приносить денежные бонусы только при еженедельных тренингах с полными залами. Причем реклама почти не работает, только сарафанное радио и качественный трудоемкий контент.

Болезненный переход между «в этот стартап нужно еще немного вложиться, и он начнет приносить прибыль» к «бизнес-лошадь сдохла, слезь и иди опять в найм». Я многому научился, увидел крушение своих планов, опять посидел на голодном пайке. Лето 2014 было для меня тяжелым еще и из-за этого. Харьков, трое детей, пенсионеры-родители, стремительно заканчивающиеся деньги.

Сейчас для меня эта деятельность идет как хобби.

Офис или удаленная работа

— Дом-работа, работа-дом, отдыхаю только по дороге...
— Погоди, ты ж из дома работаешь?
— О, ты начинаешь понимать всю сложность фриланса...

Я работал и так, и так. И как менеджер, и как программист.

При удаленной работе нет оценки, «сколько времени провел в офисе», а есть только «сколько пользы принес». Это честнее.

Договор Джунов

Один менеджер заказал вёрстку джуниор-фрилансеру. Фрилансер назвал срок, и этот срок, с двукратным запасом ушел бизнесу. Фрилансер сорвал сроки раз в десять. По итогу, менеджер получил нагоняй от бизнеса, а джуниор с тех пор не может изучить JS. Умный парень, с хорошей перспективой — но первый опыт был настолько болезненный, что уже никак.

Хакер

Принимаю команду на удалённом проекте, обзваниваю всех по скайпу. У одного парня — камера заклеена изолентой. Человек просто очень серьёзно относится к вопросам приватности. Я знаю четыре его разных имени-фамилии, знаю, что он классный программист, много лет совместной работы, а на улице его не узнаю. Когда роботы-поисковики гугла будут обшаривать постапокалиптический мир — его найдут последним. Или даже он найдёт их первым.

Хакер — продолжение

Звоню другому парню. Знаю, что он молод, что он толковый джуниор, что при разговоре он всегда вежлив. И у меня всё время ощущение, что собеседнику страшно. Звоню ему, спрашиваю: «У тебя камера есть?» — «Есть, но можно я её не буду включать». Поговорили, все ок.

Но я нифига не понимаю, чего он боится. Это преступник, которого разыскивает интерпол? У него на лице неэстетично растут щупальца? Он во время работы надевает только шапку из фольги с заземлением? Если человек такой странный, то я не смогу его понять, и не смогу его предсказать. Вдруг он решит, к примеру, базу и код в открытый доступ выложить?

Начинаю гуглить. Нахожу сразу же топик «добрый день. Мне 16 лет, я боюсь, что на работе узнают и уволят». Да пофиг мне на его возраст! Работает хорошо, и ладно. Хотя какие-то особенности работы ФЛП и т.д. пришлось объяснять.

Мы уже давно не работаем вместе, а вот недавно виделись. Человек хорошо работает над своим профессиональным и личностным ростом. При таком темпе он станет хорошим синьором годами к 21. А может и не станет, больше от софтскилов и осознанности зависит.

Земля квадратная

Сижу, пишу код. В скайпе: «Такой-то у тебя работает? Он к нам на собеседование пришел, что ты про него скажешь?»

Такое бывает чаще, чем кажется. Желающие могут подсчитать вероятность, исходя из открытых данных на DOU.

Бочка

Собеседую программиста-удаленщика. Всё норм, только он предупреждает, что связь не всегда стабильна.

— А что так?
— Да я сижу в металлической бочке.
— ?
— На высоте 3000 над уровнем моря.
— ???
— Я системный администратор в альпгостинице на Эльбрусе. В свободное время изучил руби, можно к вам на удаленку?

Тестовое задание

Какое-то время назад давал тестовое задание для джуниоров на дом. Один парень вполне хорошо его сделал, мы его взяли, но потом он не потянул. Совсем. Похоже, задание он делал совсем не сам. Увы, такое тоже бывает, пусть и редко.

Какая основная беда при найме джуниоров? Их много, у них у всех одинаково пустое резюме. Устраивать им тщательное собеседование — себе дороже. В итоге, для фронтендеров я нашел такое решение — даю одновременно нескольким кандидатам одинаковое задание на дом. Что-то типа «сверстайте вот эту реальную страницу по мокапу. Резиновая верстка, BEM, etc». Когда они заканчивают — я результаты анонимизирую и отдаю на беглую проверку прогерам + QA. Каждый из них ставит балл и, если хочет, отзыв. Победитель конкурса получает отзывы, оффер и $100. С точки зрения бизнеса — эта сумма за вникание в наши фреймоворки.

Английский и софтскилы

Менеджерил на одном проекте. В какой-то момент бизнес поменял меня с моим заместителем местами. Причина — знание предметной области и английского у него было лучше. Кроме того, я предпочитал общаться чатом, а он — звонить.

Дарвин

— Снимаю квартиру вместе с коллегой. Зима. Слышу из соседней комнаты странные звуки. Заглядываю — а там коллега в велошлеме лежит на диване на спине, держит над собой вел и крутит педали. Спрашиваю «что такое?» — «да вот соскучился». Кстати он потом бросил программирование и устроился велоинструктором.
— Дааа, делфистов здорово раскидало за последние годы...
© старая история из Интернета

«Выживает сильнейший» — слышали? В правильном переводе: «Выживает наиболее приспособленный». Для айтишников это: «Хорошо живет тот, кто правильнее всех приспосабливается». Правильно понимает, куда ветер перемен дует и быстрее других учится в ту сторону.

Когда я начинал работу в 1999-ом,советских программистов уже почти не осталось. Они не пережили перехода из НИИшных мейнфреймов на коммерческие IBM PC. Потом было массовое переранжирование при переходе с unmanaged Win32 на managed Web и мобильную разработку.

Одновременно с этим непрерывно растет сложность проектов. Раньше один человек мог проект сделать от и до, сейчас почти для всех нужна команда sales, designer, back, front, QA, CMM, support и т.д. В одну голову уже все задачи просто не влазят. И приспособиться к этому всё сложнее.

GW-Basic

Что полезного я вынес из GW-Basic и использую с 1992-гогода до сих пор? Когда пишешь список, и этот список нельзя автонумеровать — ставь номера пунктов не 1,2,3, а 10,20,30. Здорово упрощает жизнь. Например, при выводе дебажных сообщений в тех языках, где дебаггер работает «с вопросами».

Выводы

В этих двух статьях я поделился историями из своей жизни. Часть прикольная, часть поучительная, часть — мне было сложно рассказать. В следующий раз поделюсь своими наблюдениями про сложных разных людей в IT.


← Первая часть: Как меня увольняли и прочие байки

Сложные люди в IT и что с ними делать?

$
0
0

[Об авторе: Владимир Железняк — 17 лет в отрасли, много всякого повидал, был многократно уволен, взлетал и падал.]

Сначала ты просто работаешь.
Потом закапываешься в дедлайн.
Потом понимаешь, что никто кроме тебя. Ведь если кто-то еще может, так нафига я так надрываюсь?
Потом силы заканчиваются, и начинается резерв из здоровья: иммунитета и психологической стабильности.
А потом ты умираешь на работе.
Твое тело продолжает с отвращением ходить на работу.
Накапливается злость на почему-то ещё живых коллег.
Рядом с твоим телом произносят слова «выгорел», а менеджеры говорят, что не могут уволить — ведь он для нас работал.
Душа разлагается, отравляя окружающих ворчанием и придирками.
HR приглашает повеселиться на корпоратив — это вместо «выспаться»...
Отвращение, презрение к условностям, ярость, гнев сливаются в один мутный поток, из которого рождается тёмный тимлид.
Он страдает от каждого услышанного слова и приходит в ярость от улыбки.
Он мучается от неполноты ТЗ и нелогичности окружающих.
Только идеальный собственный новый код позволяет ненадолго забыться...
В голове крутятся мысли про «убить всех дураков» а pet project всё больше похож на план захвата мира...
---
Пойди в отпуск в ближайший месяц, спаси человечество от рождения тёмного тимлида!

Сегодня хотелось бы поговорить про тех, кто не успел пойти в отпуск вовремя. И даже про тех, у кого родители не успели пойти в отпуск. Вообще, про всех тех, с кем иногда бывает сложно.

Что будет:
— классификация и что делать с ворчуном, экспертом, тираном и т.д. Всё это разбавлено байками из моего опыта;
— пара слов о доморощенных классификациях;
— пять строк рекламы тренинга 5 февраля в Киеве.

Люди

Все сложные люди имеют какое-то обоснование своего поведения. Выше я написал историю, как обычный человек превращается в сложного для окружающих. Вроде, каждый шаг логичен и естественен, а вот результат — как-то не очень. Можно ли такому человеку посочувствовать? Можно. Можно ли посочувствовать его окружению? Тоже можно, хотя уже возникает вопрос — а почему они с ним, а не убежали куда подальше?

Давайте посмотрим, какие бывают сложные люди в IT. Все примеры взяты из личного опыта. Нет, имен не назову. Если вы себя узнали — это случайное совпадение, вы вообще не должны смотреть этот текст.

Ворчун

«Сроки срываются всегда. Менеджерам пора бы к этому привыкнуть и научиться работать со своими завышенными ожиданиями» © программист

Ворчун нападает на идеи и обстоятельства, а есть еще ворчун в агрессивной модификации — тролль, который нападает на людей и личность. Если ворчун скажет «ну вот опять костыль лепим», то тролль скажет «твоя идея с фигак-фигак-в продакшен могла прийти в голову только греховному порождению противоестественной связи майкрософта с языками программирования», ну или просто — «ты — говно».

Что плохо?

Какие сложности с ворчуном? Ну что он может сделать? Ну, как максимум, напишет большой плакат «ты пишешь никому не нужный говнокод» и будет горестно завывать над ухом. Лично я ничего более страшного представить себе не могу. Плакат — могу не читать, завывания — игнорировать. В конце концов, у меня трое детей и игнорировать беспорядок и шум я уже как-то научился.

Увы, ворчун здорово давит на мозги и отнимает много энергии. Более того, рядом с ним довольные начинают сомневаться и молчать. А если начальство начинает говорить, как тут хорошо — так это начальству по роли положено.

«Опытный товарищ, очень глубоко затянется, выпустит далеко в ночное небо струю дыма, мудро и грустно улыбнется, посмотрит в глаза новичка и скажет „Забей. Здесь опа. Начальству все пох. Знаешь сколько раз я пытался что-то изменить?“ Так конторы и сгнивают»

Что хорошо?

Ворчун обычно не боится говорить о проблемах и рисках. Пусть и преувеличивает, зато честно.

Что делать:

— Для сотрудников: один нытик задает тон, но не более. Несколько нытиков могут войти в резонанс и/или вызвать большой бабах во время дедлайн-кризиса. Поэтому не резонируем сами и не даем резонировать другим. Это нормально — говорить, что у компании есть хорошие стороны. Если бы их не было, то что вы тут делаете? Увольтесь прямо сейчас и найдите работу лучше!

— Для диверсантов: так фирму завалить тоже можно. Директора заполошатся только тогда, когда средние сотрудники перестанут работать. И отреагируют нагибом тех, кто работает хорошо. Note: диверсантов в IT я ни разу не видел.

— Для руководителей: негативные разговоры нужно быстро обрабатывать. И при этом важно попадать в мотивы сотрудников. Ноет-то он по каким-то веским для него причинам, какая-то потребность у него не удовлетворена. Если удастся её найти — жить станет проще.

Мегаэксперт

Он действительно круче всех, и жестко отстаивает свое мнение. Именно мнение, он может его поменять под аргументами коллег. Он одиночка по своей природе и старается держаться от назначения задач как можно дальше. Его часто не любят за нелюдимость и умение найти недостатки в чужих решениях, но уважают за отличные знания. Конечно, его настойчивое желание следовать best practices и требование того же от других всех дико бесит.

Чем плохо?

Для коллег:
— никакой радости. Чтобы ты ни делал, всё равно с высоты опыта эксперта это всё возня в песочнице;
— никакого проф роста. Если есть супергерой, то полиция может расслабиться. Все задачи можно не делать, а пробовать делать. Если выйдет — хорошо, а не выйдет — можно и эксперту отдать.

Для компании:
— окружающие растут медленно, а отксерить эксперта не получается. Кроме того, коллеги эксперта расслабляются и деморализуют соседние проекты;
— если это аутсорсинг, то заказчик быстро понимает, что есть мегаэксперт — и хочет от всех остальных такого же уровня. Ну действительно, разница в зарплате небольшая, а разница в результате огромная... Пусть остальные тоже начнут работать нормально! Они и так медленно работают, так еще и в отпуск ходят!
— мегаэксперты обычно узкоспециализированны. Да, они могут знать много языков программирования, но при этом абсолютно пофигистически относиться к эстимейтингу, общению с заказчиками и т.д. В результате, нужно платить зарплату человеку, который будет это делать за мегаэксперта;
— не всегда остальные могут понять написанное: «понятно, что тут какая-то магия, я могу её скопипастить и использовать. Но мне нужно хорошо времени, чтобы понять, почему оно вообще работает».

Для самого себя:
— всё время чувство «никто меня не понимает» и «я окружен недоучками». Жить тяжело и одиноко.

Чем хорошо?

Для коллег:
— у него можно научиться, и он всегда подскажет. Правда, обворчит за прерывание. К нему-то каждый бегает. Даже если по разу в день восемь человек — так тут и работать некогда.

Для компании:
— Так ведь эксперт же! Таких можно показывать на конференциях и вообще, всячески ими гордиться. Такой человек делает невозможное на регулярной основе.

Для самого себя:
— зарплата;
— чужое уважение. Впрочем, мегаэксперты почти всегда считают, что оно незаслуженно и поэтому удовольствия не приносит. См. эффект Даннинга — Крюгера.

Что делать?

Коллегам:
— таки учиться. Эксперты часто плохо общаются, учиться у них сложно и выглядит безнадежно, но... Через полгода-год общения с экспертом, оказавшись где-то за пределами своего проекта, внезапно понимаешь, как много перенял.

Для компании:
— внутреннее обучение в компании. Семинары, лекции и т.д. Если заведется — супер!
— обучение новичков. Важно поймать момент, когда новичок устал от эксперта и предложить ему сменить проект. Не всегда человек согласится, но всегда ему будет приятно знать о существовании выхода.

Для себя:
— учиться общаться с людьми попроще. Может, глянуть в сторону менеджмента — там много интересного;
— почаще встречаться и работать с другими мегаэкспертами;
— прочитать про Перфекционизм и его темные стороны — см. ниже.

Тиран

Должен ли хороший план по захвату мира предусматривать автотесты?
© интересный вопрос для собеседования.

Есть человек, который всех жестко строит. «Есть мнение моё — и неправильное. Вы должны меня слушаться». В чем-то он однозначно прав, у него действительно большая экспертиза. Но при этом он часто переходит на личности «твое решение — говно, да ты и сам дебил», и спорить с ним сложно — он еще и старожил на фирме и проекте. По большому счету, как только у коллег появляется возможность свалить — они уходят. Ну, понятно, джуниоры уйти не могут. Его это устраивает: личная преданность и внимание к его решениям от джунов вполне компенсируют все недостатки такой ситуации. Обычно такой человек занимается раздачей задач, пусть и ворчит иногда на бюрократическую волокиту «да вы даже сами тасклист нормально составить не можете».

Чем плохо?

Для подчиненных:
— никто не может быть лучше Тирана. И далеко не все готовы променять свою голову на бездумное послушание.

Для компании:
— миддлы уходят. Это как раз те люди, которые еще получают сравнительно небольшую зарплату, а на 80% задач работают со скоростью синьоров;
— обладая уникальными знаниями и при отсутствии миддлов, тиран может выкручивать руки компании как угодно. Двойную зарплату — конечно! Эту фичу ты делать не хочешь — ну и ладно! А вот в отпуск тираны ходить не любят. Правильно, кстати, не любят — задавленные подчиненные могут распрямиться отпущенной пружиной, задуматься над вечными вопросами «как я сюда попал? что я тут делаю? а что будет дальше? а на какие собеседования я успею сходить за время его отпуска?».

Для самих себя:
— профессиональный рост остается жестко в рамках проекта. И когда проект закончится, то новое место потребует мощного обучения. А если не повезет — то там тебя будут ждать повзрослевшие бывшие миддлы.

Чем хорошо?

Для коллег и подчиненных:
— можно не думать, достаточно личной преданности, жестов покорности и избегания споров даже внутри себя. Если вы видите людей, кому комфортно с Тираном — значит их устраивает такая экономия энергии. Не надо думать о таких людях плохо — каждый человек в какой-то момент времени уязвим к соблазну расслабиться и плыть по течению. Тем более, можно освободившуюся энергию пустить на что-то еще: хобби, pet project, игры, семью и т.д. Непроверенное наблюдение: у Тирана обычно семья есть, а вот на парней-подчиненных девушки обычно не смотрят.

Для компании:
— в моменты кризиса тираны умеют действовать быстро. Их все слушаются, а уже потом делают. Конечно, кризисы такого рода в IT редкость. Для проекта «хорошее решение сейчас» обычно лучше, чем «идеальное через месяц»;
— они понимают слово «дисциплина» и умеют её поддерживать. Огромная редкость для IT. Все приходят вовремя, все заполняют таймшиты, все пишут отчеты;

Для самих себя:
— очень приятно чувствовать себя вождём или главным визирем. Масса удовольствия и внимания от противоположного пола.

Что делать?

Для подчиненных:
— для меня тут логичным выглядит именно смена работы. Желательно, с предварительным обсуждением с начальством — возможно, для них это тоже проблема и совместно удастся найти решение.

Для компании:
— Тираны — самый частый вопрос на конференциях по менеджменту. «Мы не уследили, он носитель тайного знания — уволить не можем и жить с ним тоже не можем». Нет здесь простых решений. Описывать сложные — неформат для этой статьи.

Для себя:
— потребность контролировать всё — это хорошо для старкрафта. В реальной жизни так сделать сложно. И вот нереализованная потребность в безопасности и толкает на сложности. Тоже здесь нет простых решений, говорить со специалистом надо.

Перфекционист

Человек стремится к совершенству и классному коду/процессу/etc. Ворчуны, Мегаэксперты, Тираны часто имеют в своей основе Перфекциониста.

Чем хорошо?

Перфекционисты — хорошие эксперты. Обычно на их мнение можно опираться.

Чем плохо?

— перфекционист перетягивает на себя чужие задачи и ответственность. Сам не справляется, а другим не дает развиваться;
— у перфекциониста задач всегда больше, чем времени. Значит, всегда есть задачи, застрявшие в очереди навечно;
— перфекционист не получает удовольствия от работы. Он слишком хорошо видит проблемы, недоделки и слабые места. Отсюда выгорание. Сравнивая себя с другими, перфекционист видит только свои слабые стороны и сильные — эталона;
— перфекционист избегает ошибок. Осторожность мешает экспериментам и быстрой реакции на изменения;
— мало законченных задач из-за желания сделать всё идеально. «Первые 90% работы занимают первые 10% времени».

Что делать с такими людьми?

— не повышать до менеджера. Грубо говоря, на настройку инфраструктуры уйдет два месяца;
— не давать много времени на исследования и подготовку. Частый деплой;
— передавать задачи «на полировку» джуниорам. И они научатся, и синьор делом займется;
— обращать внимание на изменение характера жалоб — возможно, мы его теряем;
— уважать и хвалить за дело. Пугать смысла нет;
— время от времени давать задачи, которые можно сделать идеально.

Что делать, если я сам такой?

— ловить себя на перфекционизме, избегании задач и откладывании;
— делить задачи на майлстоуны и MVP;
— снижать планку качества;
— обратиться к специалисту;

Болтун

«Ну ээээ я тут вот сказать хотел... Про то, о чем мы говорили ну тогда... Я вот вернуться к теме хочу... Да, так о чём это я? Так вот о теме... Не перебивай, я сейчас сформулирую!» © цитата по памяти одного толкового программиста на синкапе. До сути дошел только после этого.

«Я занимаюсь своими обычными задачами. Написал пару методов, ничего необычного, но в общем-то это кто-то должен был сделать. Покрыл тестами, ну как всегда, мы всегда так делаем. И, конечно, я просмотрел почту и общий чат. Code Review тоже вчера, кажется, был» © другой толковый программист на совсем другом проекте. Тоже ни слова, чем вчерашний день отличается от позавчерашнего.

Много говорит. Очень много говорит. И не со зла, а т.к. или не умеет говорить коротко, или у него есть большая потребность говорить долго и привлекать внимание.

Чем плохо?

Для коллег:
— скучно.
Для компании:
— время сильно тянет, все засыпают. А не давать слово — нельзя, умный же человек. Да и не дашь Болтуну — молчуны захотят тоже отмолчаться.

Для себя:
— все кругом быстро теряют к тебе интерес. Как пустое место для них. Игнорируют, очень одиноко, и от этого еще больше хочется поговорить.

Что хорошо?

Болтун на айтишных встречах очень здорово заполняет паузы. Без него все бы молча поздоровались и дальше бы молчали.

Что делать?

Для коллег:
— учиться вежливо прерывать. И не бояться перебивать. Если большинство людей замечают и обрабатывают желание собеседника высказаться, то болтуны тут невероятно толстокожи.

Для себя:
— учиться говорить коротко. Писать текст на синкап и читать с бумажки — это точно даст много внимания :)

Молчун

Всё время молчит. Такое ощущение, что за каждое слово он платит по высокому тарифу.

Чем плохо?

Для коллег:
— Молчуну сложно доверять. Даже после года совместной работы он воспринимается незнакомцем, на него сложно положиться.

Для начальства:
— у Молчуна часто есть умные мысли, но он их держит при себе.

Для себя:
— с одной стороны — кругом масса желающих повисеть на свободных ушах. С другой стороны — как только пытаешься что-то сам сказать, так все кругом это воспринимают как нарушение контракта «я говорю, а ты слушаешь»;
— ты можешь быть Мегаэкспертом, но этого никто не замечает и не ценит. Зарплату повышают в последнюю очередь, твои идеи никто не слышит, зато реализуют какие-то дурацкие идеи общительных идиотов.

Что хорошо?

Для коллег:
— можно поработать в тишине.

Для начальства:
— с молчуном мало проблем.

Для себя:
— пока все говорят — можно подумать;
— можно рассматривать окружающих, как попугаев в клетке: чирикают, пищат, заняты какими-то ненужными делами. Развлечение :)

Что делать?

Для коллег:
— молчуны часто таки хотят высказаться, просто считают невоспитанным перебивать. Или считают свое мнение малозначимым и не хотят навязываться. В любом случае — выслушайте молчуна, и, возможно, вы получите огромную поддержку.

Для начальства:
— обязательно давать слово молчуну на совещаниях. Его мнение часто нужно умножать на пять — если он высказался, значит твердо уверен.

Для себя:
— учиться говорить и перебивать.

Более редкие или не такие яркие

Беспомощный

Не спорит, не возражает, не выступает против. Он «честно старается», «пытается», «пробует», а затем опускает руки и говорит «не могу». Ну не получается у него. Правда, особых усилий товарищ не прикладывал, больше слегка создавал видимость. Но формально выполнил все. Часто просит помощи. Доводит эту помощь до того, что сидит рядом и скучает рядом с активно работающим более умелым помощником.

Такого человека можно вытянуть, только это трудоемко. Обычно его не увольняют по двум причинам:
— некогда;
— заказчик за него платит, а переговоры по замене сейчас некстати.

Исполнительный

Был у меня сотрудник. Звезд с неба не хватал, зато очень исполнительный и надежный. И как-то у нас упал автотест. Говорю ему «разберись, почини билд». Через какое-то время приходит «тесты проходят». А через пару недель выскочил очень похожий баг в другом месте. Раскопки показали, что баг — тот же. А тест, который этот баг должен обнаружить — просто отключен.

Еще один сотрудник на инструкцию «сделай как вот тут» для API просто написал переходник. Куча кода, которая конвертирует из одного формата вызовов в другой. И это вместо того, чтобы переделать уровень ниже.

В принципе, хороший и полезный тип сотрудников, только контролировать жестко нужно. И креативных решений ждать тоже не приходится.

Приказывать «прояви самостоятельность» неэффективно. Человек в режиме исполнителя не думает, а делает. А если он выйдет из режима исполнителя, то приказ к нему вроде как уже и не относится. За подробностями можно в модель РВД залезть. Кстати, человека, чувствующего вину тоже нельзя на самостоятельность/креатив подтолкнуть. Кейсы: — мама ребенку «пойди узнай все подробности». Лучше детализировать вопросы для узнавания от «вы тут накосячили и сроки сорвали в три раза. Почитайте доку по теме и посмотрите, как у нас в других модулях сделано». Сработает гораздо лучше, если указать главу доки и названия модулей-образцов.

Имитатор Бурной Деятельности

На одном проекте у нас были внешние архитекторы БД. Они сидели где-то отдельно, много работали и присылали огромные PDF с новой схемой базы. Мотивы заказчика были понятны — их он как-то уже знал, а с нашей командой работал впервые и хотел подстраховаться. С нашей же стороны это выглядело как полный кошмар — в базе были без преувеличения сотни почти одинаковых таблиц. Вроде бы и ничего страшного, но с каждой новой версией эти таблицы сильно менялись. У нас уходило очень много времени на переделку реальной базы для соответствия новой схеме. Мы долго не могли понять, что происходит, и только через пару месяцев они признались «это ваша работа хорошо заметна и понятна заказчику. А то что мы делаем — полностью теряется. Поэтому мы вынуждены подчеркивать свою работу». Ситуацию решили, но всё же.

Если такой человек работает в вашей фирме — значит, она уже давно серьезно больна.

Трактор

Пашет без остановок. Марафонец. Плохо работает с прерываниями: медленно разгоняется, требует хорошую предсказуемость задач. Очень плохо обрабатывает «брось всё, глянь на этот баг прямо сейчас».

Пожарный

Противоположен Трактору — хорошо работает с нежданчиками и дедлайнами и моментально выдыхается на однообразных задачах. Спринтер.

Г-кодер

Это человек, для которого «тяп ляп и в продакшен» — норма. Может, его долго били за слишком долгую разработку. Может, для него скорость — только оправдание неумения делать хорошо. Такого человека не любят, его быстро увольняют, но... иногда он незаменим для костыльного фикса. Там, где перфекционист будет работать две недели и сделает идеально — с тестами и без багов, г-кодер сделает за два дня — будет подглючивать, но таки работать. Потом этот фикс будут проклинать еще годы, зато проект выживет.

Козел отпущения/шут

Это человек, который вызывает смех. С ним смеются, над ним смеются, на него всегда показывают «почему билд упал? Опять Вася запушился?»

Говорят, что человек на такой роли должен появляться в любой группе — это свойство человеческой природы. Не знаю, мне кажется, что эта роль чаще переходит от человека к человеку. Ну и чаще возникает тогда, когда люди чувствуют угрозу или нагрузку, с которой не могут справиться, и нужно найти крайнего. А еще есть люди, к которым эта роль липнет.

Появление такого человека на выделенной роли — тревожный признак. Я бы предположил, что в команде есть внутренние проблемы, гнев и страх, с которыми не удается справиться.

Депрессивный

Есть такая схема у человека — автоматически вспоминать то, что ближе к текущему эмоциональному состоянию. На работе получается — вспоминаются прошлые успехи — «я успешен!» Где-то облом — вспоминаются прошлые провалы — «я неудачник, мне не везет, я ничего не умею». С внешними событиями то же: безработные замечают бомжей и безработных, а бизнесменам кажется, что все кругом хотят стать бизнесменами. Про эмигрантов, которым кажется что все хотят уехать — и говорить не приходится.

Еще есть схема, которая отвечает за выживание в сложных условиях. Когда кругом плохо, человек переходит в режим пониженного энергопотребления — меньше двигается, меньше думает, больше ест и т.д.

Самое плохое, когда схема «воспоминания по контексту» загоняет человека в цикл «кругом всё плохо» и включается экономия энергии. Мысли бегают по негативному кругу, а сил из него вырваться — уже нет. Такая нисходящая спираль и называется депрессией.
Депрессия — один из вариантов появления Ворчуна.

Раздолбай

Весёлый, классный, общительный. Совершенно непонятно, как затесался в айтишный коллектив. Нельзя сказать, что он классно код пишет, нет. Но как-то вполне средненько и нормально для своей зарплаты.

И польза от него есть неявная — вокруг него люди расслабляются и больше общаются, что явно полезно для проекта.

Фантазер-исполнитель

Миддл, работает на проекте вторую неделю. Приходит от него огромный PR: «я тут переписал всё на микросервисную архитектуру». Ну то есть инициатива — это классно, но зачем же так жестко? Хоть бы спросил кого. Кроме того — ну миддл же, а проект-то большой! Крупные переделки и проверять нужно по-крупному. А тут дедлайн, только по этому не было времени смотреть плотно за его работой. Отказали, прочитали мораль, сказали потерпеть полгода, пока разберется в проекте. Впрочем, не помогло — всё равно всё переписывал в своем стиле, полностью игноря стандарты. Пришлось уволить.

Человек «не отсюда»

«Хочу работать удаленно, чтобы надо мной никто не стоял и не задалбывал контролем, зарплату как в Кремниевой Долине, и время на pet projects как в гугле. Плюс соблюдение трудового законодательства как у нас».

Увы, не все работодатели могут себе таких сотрудников позволить. Рынок труда такой.

Классификации

Пилил медицинский проект, и для него нужна была анкета пациента. В анкете, естественно, была колонка «пол». Колонка? Как бы не так! Это для простых случаев это одна колонка с двумя значениями М и Ж. Для серьезных проектов это актуальный пол, пол при рождении, пол самоидентификации, пол по хромосомному набору, визуальный пол и т.д. Деталей не помню, но было сложно.

Вообще, любая классификация ограничивает точность и вносит искажения. Особенно, если эта классификация не проверена научными методами. Плохо то, что у нас принято любые отклонения от стандартов не замечать, что порой приводит к фейлам. «Все программисты — интроверты». Нет, общительность зависит от много чего, включая алкоголь, усталость, понимание и доверие к окружающим и т.д.

Классификация на экспертов-ворчунов-молчунов и т.д. — удобна для этой статьи, не более того. Не надо её тащить всюду. А то я вижу доморощенные классификации, которые претендуют на безошибочность, и при этом не были протестированы независимым слепым тестом. Соционика вон была популярна лет пятнадцать назад, а потом её в ноль разгромили. Классификацию сделать легко, завалидировать сложно.

Вывод и немного рекламы

— Люди разные. На ваш проект, скорее всего, нанимали не по принципу «он — классный человек», а по принципу «он умеет писать код».
— Хорошо, когда есть возможность выбирать, с кем работаешь. Часто такого выбора нет даже у менеджера.
— Люди сложные: сложно устроены и с ними часто сложно в общении. В воскресенье 5 февраля в Киеве мы проводим однодневный тренинг по работе с ворчунами/экспертами/тиранами и т.д. Записывайтесь.

Сім чеснот програміста

$
0
0

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

Саме тому, дорогі друзі, я підготував для вас новий список чеснот програміста. Можете бути певні, що без них із вас ніколи не вийде хорошого спеціаліста.

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

Кому, як не їм знати, що справді важливо для хорошого спеціаліста?

Лінь

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

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

Через місяць його з тріском звільнили: невже за стільки часу не можна було прикрутити якийсь механізм, який би відкривав ворота автоматично? (Якщо древні аналоги вам чужі, підставте замість шлагбаума марудний ручний деплой, а замість автоматизації відкриття — скрипти. Тест для джуна готовий).

Всі мови програмування, всі IDE і системи контролю версій виникли через те, що комусь ліньки було робити дурну роботу. Всі успішні стартапи покликані робити те, що людям робити влом. А розуміння клієнта — одна із ключових рис хорошого інженера.

Менеджери, перевірте своїх підлеглих, якщо вони занадто працьовиті — звільняйте нафіг. Адже найкращий код — це ненаписаний код, і працьовитий ідіот може наробити набагато більше зла, ніж лінивий, це я вам гарантую.

Заздрість

Прожити життя доста легко. Важко прожити його правильно. Проблема у тому, що кожного дня, кожної секунди перед нами постають тисячі різних виборів. Обирати між ними осмислено, з почуттям відповідальності — вірний шлях загнати себе у могилу.

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

Бажання «рости і розвиватися» — доста суперечливе. Чому б із таким самим успіхом не лишатися там, де ти є, педалити безблагодатні проекти на застарілих системах, втикати на ютуб половину робочого часу і не паритися зайвим?

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

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

Жадоба

Aim for the stars!

Обмежувати себе — найдурніше, що ти можеш зробити у цьому житті. Твої ліміти все одно рано чи пізно вималюються, але єдиний шанс їх побачити — спробувати через них переступити.

Чому ти вважаєш, що галера — це твій вищий рівень? Ти пробував потрапити в Ґуґл? А хоча б у Амазон? Чи може навпаки, є сенс зібрати свій власний стартап і переплюнути цих зажравшихся стариганів?

«Ой, та як я буду просити більшу зарплату, я ж і цієї не заслуговую...» О так, звісно ж! А отой чайка-менеджер звісно ж заслуговує. Вище носа, так, саме тобі треба більше за всіх!

«Ой, та я ж нічого не шарю...» Fake it till you make it! У більшості випадків шанс випадає не тим, хто його заслуговує, а тим, хто був поруч у потрібний момент.

Словом, стукай і тобі відчинять, проси і тобі дадуть. А аскетизмом будеш займатися у вільний від роботи час, коли ніхто не бачить.

Гординя

Із попереднього пункту напряму випливає цей. Кажуть, що завжди треба знати свій справжній рівень і позиціонувати себе на рівень вище. Але це занадто мілко.

Компетенція взагалі не має ніякого значення на початку роботи, вона радше набувається з часом. Всім ясно, що з першого дня від тебе чекати принципових виправлень наївно. Проте, якщо ти не ідіот і до того робив щось руками — розберешся практично всюди, головне отримати шанс проявити себе.

Комплекс неповноцінності і синдром самозванця переслідують професіоналів у всіх сферах. Натомість ефект Даннінга-Крюґера наповнює менеджерські команди справжніми самозванцями, що тільки і можуть, що грати на твоїх слабкостях. Посилай їх подалі. Ніхто і ніколи не вказуватиме тобі, що ти можеш, а що ні!

P. S. Є, звісно, ймовірність, що одного разу випадково заберешся занадто високо і відкусиш шматок, який не зможеш прожувати. Що ж, тоді і навчишся головного софт-скіла — делегування. Головне ж не команда зірок, а команда-зірка, чи не так?

Ненаситність

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

Проекти часто обмежують можливості росту і розвитку, але нащо тобі вільний час? На велосипеді і на пенсії можна покататися. А ввечері натомість можна почитати, що там намодулярили у дев’ятій джаві чи про брейкінґ-зміни нового Реакту. Або про те, що ж там поміняли у докері, що всі стали його хоронити.

«Насолоджуйся тим, що знаєш» — найгірший підхід у програмуванні евер. Ніхто не знає, що буде завтра, та що там, сьогоднішній вечір уже накрила тінь від крил чорного лебедя. Всі моляться на «вузьких спеціалістів», але потім звільняють їх пачками, при першому різкому крені корабля. Натомість цінують фул-стеків, language-agnostic і абстрактних інженерів, які добре себе почуватимуть на будь-якому проекті.

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

Гнів

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

Виставляти емоції напоказ — погана ідея, але сама мотивація, породжена цими емоціями може добряче допомогти. Бісить марудний процес запуску тестів? Даю гарантію — він так само бісить кілька десятків твоїх колег. Візьмися і оптимізуй. Вдячність колег повернеться сторицею, а кожен день стане хай трошечки, але світлішим.

Бісить менеджер-самодур? Поспілкуйся з народом, підготуй план атаки, скооперуйтеся. Якщо не виходить — підсуєтись, отримай підвищення, звільни цю сволоту з таким скандалом, що йому доведеться міняти ім’я, щоб отримати нову роботу.

Ламборґіні почав робити машини, коли Ферарі не послухав його поради, а натомість послав «робити і далі свої трактори». От і ти не тамуй у собі злобу, покажи їм всім, як правильно будувати маркетингову політику стартапу!

Як заповідав дідусь Фройд, сублімація — один із головних моторів свідомості. І якщо тебе вже довгий час нічого не бісило, потикай себе паличкою, ти іще живий взагалі?

Пристрасть

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

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

Хай навіть час від часу він буде потворний і мало придатним до життя, його все одно треба любити, аж до тієї міри, щоби в один момент провести евтаназію, позбавити предмет своєї пристрасті від зайвих страждань.

А інакше — ніяк.

Outsourcing vs software consultancy: как поднять рейты до 75 USD/час

$
0
0

[Об авторе: Сергей Королев — управляющий директор в Railsware с более чем 15-летнимопытом работы в ИТ: от стартапов до корпораций. Инженер, продакт-оунер, бизнес-лидер]

Выбирая аутсорсинг, западные клиенты, как правило, ищут выгодную цену на разработку. Но наш рынок IT-услуг может предложить не только качественный код, но и много других продуктовых сервисов. Более того, в лице украинских компаний заказчики могут получить не только хороших исполнителей поставленных задач, но и найти технического партнера топ уровня, который поможет продумать стратегию создания и развития продуктов с нуля. И все это при выгодном соотношении цены и качества по сравнению с родными рынками клиента (для наших заказчиков это чаще всего Британия и США).

Семь лет назад Railsware изменила свою бизнес-модель с аутсорсинга в сторону software consultancy. Как результат, мы создали новое ценностное предложение для наших клиентов и смогли повысить рейты для последующего развития компании. В этой статье я расскажу, зачем стоит задуматься о смене бизнес-модели, поделюсь нашим опытом перехода от аутсорса к модели consultancy.

Аналитика мирового рынка IT-услуг

Давайте для начала посмотрим на стоимость аутсорсинга на разных рынках. Мы анализировали средние рейты в следующих регионах: Восточная и Центральная Европа, Азия, Южная Америка, Западная Европа, Северная Америка (последние два пункта для сравнения с родными рынками большинства наших заказчиков).

Данные от Accelerance, Clutch.coи Sensium.comсовпадают с нашими наблюдениями в результате многолетнего опыта на рынке и общения с экспертами в индустрии.

Как видим, стоимость разработки в Восточной Европе (25-49 USD/час)в 2-3раза ниже, чем в Западной Европе и США (50-170 USD/час).При этом качество кода не уступает. Для многих украинских аутсорсинговых компаний одним из главных конкурентных преимуществ остается цена. Ведь при более высоких рейтах они будут выходить на более конкурентные рынки, где нужно играть по другим правилам. И мы решились на этот шаг в 2011 году.

От аутсорса к модели consultancy

Семь лет назад Railsware была типичным аутсорсингом: мы продавали часы инженеров без глубокого погружения в бизнес-задачи клиентов. Мы работали с конкретным скоупом задач, предоставленным заказчиком, но без проактивного участия в формировании концепции продукта.

Это была вполне рабочая модель, чтобы поддерживать бизнес. Но в конце концов, мы поняли, что такой подход не несет для нас никакого нового вызова, команде не хватало толчка к последующему развитию своей экспертизы. Работая с новым продуктом, мы не могли определить, взлетит он или нет, какую ценность он несет для пользователей — все потому, что мы видели только одну сторону процесса.

Чтобы продолжать свое развитие, любой компании нужен крепкий базис в плане качества работы и людей. Ведь высокий уровень качества требует высококвалифицированной команды. Для такой команды нужны высокие зарплаты, интересная работа и мотивирующее окружение.

Еще одной нашей стратегической целью было сформировать собственное продуктовое направление. Это требовало определенных вложений и ресурсов, которые мы смогли бы получить только из нашей сервисной части бизнеса. Нам необходимо было поднять свои рейты для получения ресурсов для инвестиций в дальнейшее развитие команды и компании.

Стратегия 65

Мы понимали, что беспричинно поднять рейты — рискованно, можно потерять часть клиентов. Нам нужно было сформировать ценностное предложение, за которое заказчик хотел бы платить больше. Потому мы решили кардинально изменить свой подход к созданию клиентских продуктов.

Около года мы искали новую модель. Для того, чтоб найти решение, мы использовали не только свой опыт, но также исследовали успешные примеры в индустрии. Мы много общались с лидерами рынка в Силиконовой долине, такими как Pivotal Labs, ThoughtBot, Zurb. Нашей задачей был обмен опытом и изучение успешных кейсов, анализ каждого подхода с точки зрения применимости в нашем бизнесе.

Railswarian-ы обмениваются опытом и подходами с командой Pivotal Labs

Мы поняли, что есть серьезная разница между тем, что делают они, и что делает аутсорсинг. Она заключается в том, что подход этих команд помогает клиенту понять цели продукта и ведет к их достижению. С первых дней работы они выступают в качестве технического партнера, консультанта, а не просто исполнителя стратегии заказчика.

В результате анализа рынка мы приняли решение в пользу построения consultancy-модели. Что же для этого нужно?

Основная разница между моделями аутсорсинга и consultancy состоит в ценности, которую ты предлагаешь клиенту. Аутсорс продает качественный execution. Consultancy предлагает решение стратегических задач бизнеса и продукта, основываясь на данных о рынке и конкурентах, понимании потребностей целевой аудитории, подходов и деталей реализации решения. Выбор правильной стратегии развития может увеличить доход в разы. Этот аспект работы с заказчиком де-факто находится на уровень выше, чем просто разработка. В нашей новой модели мы брали на себя больше ответственности за успех конечного продукта, не просто за качественный execution.

В процессе внедрения consultancy-модели, нашей задачей в работе с клиентами было перейти с уровня исполнения на стратегический. Потому взяли курс на развитие экспертизы в понимании бизнеса, продакт-менеджменте и дизайне, параллельно совершенствуя свои подходы к разработке.

Нашей задачей было собрать и вырастить команду экспертов экстра-класса, заточенных не только под одну конкретную функцию, а понимающих разные аспекты бизнеса и их влияние друг на друга. Далее мы интегрировали подходы к разработке, дизайну и продакт-менеджменту в единый сервис. Каждая проектная команда составляла собой группу консультантов полного спектра по созданию IT-решений.

Каким образом мы построили такую команду? Давайте определим, какие роли обычно необходимы при запуске проекта. Классический состав команды для небольшого приложения выглядит следующим образом:

  • продакт- и проджект-менеджеры;
  • бизнес-аналитик;
  • дизайнеры — графический и UX;
  • Frontend- и Backend-инженеры;
  • Разработчики мобильных приложений;
  • DevOps;
  • QA.

На разных этапах проекта часть ролей нужны full-time, другие — part-time. Между всеми членами команды должна быть налажена коммуникация. На организацию такой минимальной структуры уходят месяцы. И все равно, нанимая каждого специалиста отдельно, достаточно трудно сбалансировать инвестиции и их результативность.

Если мы собирались предлагать команду полного спектра, 9-10узкоспециализированных специалистов не окупали бы себя. Потому мы перешли к концепции T-shape, при которой группа из 3-5экспертов закрывает все роли за счет расширения смежных експертиз. Как результат, наша команда имеет гибкий набор скиллов и может подключаться к разным функциям в зависимости от потребности. При этом количество людей остается небольшим, что позволяет им проще коммуницировать между собой.

Разносторонний набор скиллов и погружение в разные аспекты проекта помогает команде лучше понимать друг друга. Например, наши инженеры могут продумать детали от инфраструктуры до user experience, дизайнеры — самостоятельно создавать прототипы и писать Frontend. В итоге благодаря многостороннему обзору каждый понимает детали процесса лучше и может качественнее делать свою работу.

В момент перехода с аутсорсинга на consultancy команда составляла около 50 человек. Первый этап миграции на новую модель заключался в принятии новых правил игры и занял около года. Software сonsultancy однозначно требует от команды выхода из зоны комфорта, больше работы над собой. Инженеру, например, теперь нужно развивать не только свои ключевые скиллы в разработке, но и коммуникацию, базовые UX-навыки, учиться управлять скоупом. К сожалению, не все были заинтересованы в своем развитии в рамках модели consultancy, потому около 10 человек покинули компанию. Остальная же часть команды успешно адаптировалась.

Изучив подходы лидеров рынка и применив их в наших реалиях, мы в течение года эволюционировали от простого аутсорсинга к software consultancy, которая нам дала, кроме удовлетворения от нового уровня качества сервиса, возможность поднять рейты до 65 USD/час.

Стратегия 75

Нашей следующей задачей было отточить новую модель на практике. Так как мы исповедуем data-driven подход, нам нужно было убедиться в силе Railsware consultancy на нескольких новых проектах. Хорошим примером стали Phillips, Interstellarи Restauranteers.

После года работы над 8 различными проектами мы убедились в том, что можем гарантированно предоставлять хороший результат с применением нового подхода к разработке продуктов. Потому мы решили поднять планку до 75 USD/час. При этом мы говорим о 75 USD/час на средне и долгосрочных проектах (от 2 месяцев до нескольких лет). В отдельных случаях нам удавалось закрывать короткие проекты (1-2 месяца)за 120 USD/час. Это возможно, но такие кейсы достаточно сложно воспроизвести. Эти переходы обеспечили площадку для запуска продуктового направления Railsware, которое мы активно развиваем сейчас.

Что в итоге

Итак, что поможет построить и поддерживать успешную consultancy модель?

Развивайте несколько ключевых доменов одновременно. Для нас это были инжиниринг, дизайн и продакт-менеджмент. Данная тройка составляет базис нашей consultancy-модели совместно с новыми доменами — business advisory и сервисом найма на стороне клиента. Помните, что заказчики готовы платить больше за полный цикл создания продуктов с учетом особенностей их бизнеса.

Мы не рекомендуем браться за все проекты подряд. Только работа над действительно сложными и интересными продуктамипоможет вам развивать свою экспертизу и научиться закрывать существующую боль вашей целевой аудитории, а не просто стоять на месте и строить очередную соцмедиа. Оценивайте, насколько сильна экспертиза, опыт и execution у собственников бизнеса, с которыми вы планируете начать сотрудничество, насколько они профессиональны в своем домене, насколько продумана их стратегия развития. Как консультанты, вы работаете в команде с заказчиком, и команда должна быть сильна со всех сторон — как с точки зрения продукта, так и с точки зрения бизнес-модели. Отдельно продукт или хороший маркетинг не приносят долгосрочного успеха — желаемый результат достигается только в плотной связке этих двух элементов. Такой подход помогает нам удерживать высокие позиции на рынке, так как мы участвуем в хорошо продуманных проектах.

Вся ваша команда должна активно интегрироваться в бизнес клиента, это позволит вам делать намного более осмысленные шаги на всех этапах создания продукта.

Свою эффективность доказала концепция T-shape — с более широким кругозором каждый участник команды сможет открывать новые направления для развития: как инженер выступает в качестве продакт-менеджера, тестировщика, дизайнера, так и дизайнер понимает, как создается продукт.

Развивайтекультуру проактивности всей команды (каждый двигает процесс вперед, а не ждет указаний сверху). Мы, например, используем модель collective leadership — у каждого есть возможность проявлять инициативу и участвовать во внутренних проектах, которые помогут сделать наш бизнес лучше.

Перемога под елочку: IТ-кластер координирует программу облсовета “IТ-Харьковщина”

$
0
0

[Об авторе: Эдуард Рубин, сооснователь харьковского ИТ-кластера, депутат Харьковского облсовета, инициатор ряда независимых образовательных проектов]

Незадолго перед Новым годом у нас в Харькове случилась отличая новость, которая закладывает хорошие перспективы на 2018-й.Нам удалось добиться того, что местный ИТ-кластер будет координировать выполнение областной программы «IT-Харьковщина». Она призвана ускорить развитие сферы телекоммуникаций во всем регионе и обеспечить в этом сегменте опережающие, по сравнению с другими сферами экономики, темпы роста.

Больше того, кластер, объединяющий ключевые компании рынка, сможет напрямую участвовать в содержательной доработке программы.

Почему это важно

Программа была принята еще в апреле 2016 года и не предполагала вообще никакого соучастия айтишного сообщества. Заниматься ее реализацией должны были Управление массовых коммуникаций облгосадминистрации и областное коммунальное предприятие «Харьковские областные коммуникационные системы». Всё!

То есть де-факто программой, рассчитанной на период до 2020 года, и всеми деньгами на ее реализацию должны были управлять местные чиновники, без какого-либо серьезного общественного контроля и гарантий того, что приоритеты инвестиций будут расставлены грамотно. К тому же содержание отдельных пунктов программы носит слишком общий, размытый характер.

Ознакомившись с документом, представители ИТ-кластера пришли к выводу, что без активного включения нашего сообщества средства на реализацию программы могут быть потрачены неэффективно, а в результате внедрение информационных технологий в регионе может «зависнуть» где-то на уровне прошлого века. Значит, нужно было добиваться того, чтобы у кластера появились рычаги реального влияния на ситуацию.

Зачем вообще нужна эта программа

Харьков хорошо известен как один из лидеров национальной ИТ-индустрии, но вот ситуация в Харьковской области кардинально другая. Ее информационное развитие сильно запаздывает, и жители сельской местности часто лишены доступа к интернету, а значит, и ко многим современным сервисам, в том числе государственным. Читателям DOU это, возможно, покажется удивительным, но в Харьковской области лишь 36 из 100 жителей имеют доступ к интернету, в то время как в самой благополучной в этом смысле Одесской области, например, показатель охваченности интернетом составляет 87 на 100 жителей. Понятно, что одна из ключевых задач программы — развитие современных телекоммуникационных сетей в сельской местности.

Проблема, о которой стоит сказать отдельно, — отсутствие единой информационной сети между госучреждениями, что приводит к низкому уровню взаимодействия между ними и в конечном счете сказывается на управляемости регионом в целом.

Надо ли говорить, что развитие телекоммуникаций должно быть одним из приоритетов для такой области, как Харьковская, поскольку содержит в себе также политическую и геополитическую составляющие? Ведь чем больше регион интегрируется в украинское и мировое информационное пространство, тем сильнее будет информационное общество и выше общий уровень безопасности.

ИТ-кластер собирается сосредоточить особое внимание на том, чтобы архитектура новых телекоммуникационных сетей в Харьковской области основывалась на самых современных технологиях и чтобы при ее создании возникла реальная конкуренция операторов. Только так мы будем иметь гарантию того, что население получит качественные и доступные услуги.

Еще один немаловажный вопрос: контроль за распределением средств. В наступившем году на реализацию программы впервые из областного бюджета выделили 4,5 млн грн (львиная их часть пойдет на создание современного дата-центра). В последующие два года ожидается финансирование еще на уровне около 20 млн грн. Но это не все, поскольку по предварительным расчетам, программа потребует в этот же период еще до 40 млн грн частных инвестиций. И наша общая задача теперь — создать условия для привлечения этих средств. Я очень рассчитываю на то, что на основе этой программы нам удастся внедрить реальные механизмы частно-государственного партнерства в ИТ-сфере. И ИТ-кластер может быть эффективным координирующим центром между государственными органами власти и бизнесом.

До того момента, когда декабрьская сессия областного совета приняла решение внести изменения в программу, добавив в число ее координаторов Харьковский ИТ-кластер, мы не имели реальной возможности как-то влиять на весь этот процесс. Инициативу ИТ-кластера обговаривали на нескольких комиссиях облсовета, которые в итоге поддержали эту идею. И решение на сессии было принято единогласно: «за» проголосовали 102 депутата. Это еще раз говорит о том, что страна постепенно меняется, разумные идеи могут находить отклик у представителей власти и сейчас нет ничего невозможного.

Предложения принимаются

С текстом программы «ИТ-Харьковщина» можно ознакомиться на сайте Харьковского областного совета. Любые конструктивные идеи от читателей DOU, естественно, приветствуются. Как соучредитель ИТ-кластера и депутат областного совета постараюсь продвигать все рациональные идеи.

Как верно отметил недавно бывший министр экономразвития Павел Шеремета, главное достижение постмайданной Украины — все-таки децентрализация. Реформировать небольшие территории легче, чем всю страну целиком, поэтому на местной власти и на местных громадах сегодня лежит повышенная ответственность за создание «островков развития». И чем больше их будет, тем быстрее изменится государство.

Вот один из таких островков мы сегодня общими усилиями можем построить в ИТ-сфере Харьковщины, никто другой за нас этого не сделает. Теперь нет никаких преград к тому, чтобы в процесс включилась активная профессиональная общественность.

Переквалификация IT-специалистов: обучение фултайм внутри компании за 1 месяц

$
0
0

[Об авторе: Николай Лотоцкий — более 15 лет занимается разработкой программного обеспечения. Знаком со всеми этапами работы на проекте и развил карьеру от должности QA Engineer до Technology Expert. Несколько лет был JavaScript Software Architect и принимал активное участие в разработке сложных масштабируемых приложений. Кроме того, есть опыт работы с PHP, .NET, Python. Более трех лет проводит различные курсы и тренинги]

... Да, были люди в наше время
Не то, что нынешнее племя:
Богатыри не вы!

Чем Intermediate PHP отличается от Intermediate .NET или Intermediate JavaScript? Мое мнение, разница лишь в инструментах, а месяц обучения может вооружить и PHP-специалиста, и .NET-разработчика необходимыми знаниями, чтобы стать универсальным Software Developer и успешно педалить на JS. Теорию подтвердила практика: 37 программистов из 42 присоединились к проектным командам после месяца учебы в режиме 8 часов в день 5 дней в неделю. Как организовать процесс переквалификации, почему целый месяц обучения стоит оплачивать как рабочее время и относиться с той же серьезностью, каким должен быть преподаватель для такого курса — узнайте из статьи.

Потребность в специалистах

Часто от «опытных специалистов», т. е. уровня Intermediate и выше, можно услышать, что новички, которые приходят на собеседования, «не те, что были раньше». Жалуются, что профессионалов, соответствующих критериям, просто нет! Им, в таком случае, придется работать самим, а при худшем раскладе — даже отказывать заказчику. Проблема становится еще острее, если в компании появляется проект, который стремительно растет и требует качественные, сложные решения, неподвластные новичкам. Под такие задачи, кроме того, нужно брать человека на долгий период: нюансы «требовательной» индустрии и редкой экспертизы. Усложняет ситуацию и то, что технология, используемая на проекте, достаточно новая, а вам нужны люди с каким-никаким опытом.

Что же делать? Первое и примитивное решение — попытка выделиться среди конкурентов: предложить большую компенсацию, пообещать головокружительный карьерный рост и фантастические бонусы. Увы, этот подход ненадежен: другие компании будут делать то же самое, в итоге сохраняя баланс на рынке. Кроме прочего, этот метод приводит к погоне одних и тех же «звезд» за лучшими условиями... Проблема не решается. Людей все меньше.

Следующая идея — сотрудничество с профессиональными курсами, которые, следуя запросу рынка, должны готовить специалистов нужного нам уровня. Звучит здорово, но есть одно «но». Это бизнес. И золотой жилой является не IT-компания, а люди, готовые вложить деньги и освоить заветную профессию...

По моему опыту преподавания, на коммерческих курсах только 10% прилежных студентов способны добиться успеха при условии наличия рядом опытного ментора. Ими можно попытаться закрыть дыры на проектах. Риски: нагрузка на ментора будет расти с увеличением количества приходящих «выпускников», производительность команды будет падать пропорционально. Квалифицированные кадры отвлекаются на менторство, а «педалить» как intermediate trainee, даже самый перспективный, не может.

Выход — обучить новым инструментам специалистов с опытом

Стоит пересмотреть в целом концепцию обучения определенному языку программирования. Часто мы подразумеваем «дать знания тому, у кого их нет вообще». Куда разумнее предоставить новые инструменты специалисту, который уже имеет опыт работы... просто с другой технологией!

Чем, по сути, отличается Intermediate .NET разработчик от своего коллеги, использующего PHP? Если отбросить вопросы окружения и типизации — разница между теми же PHP, .NET, Java или JavaScript специалистами не такая уж и большая. Я уверен, что если человек способен успешно решать задачи на PHP, то овладев инструментарием JavaScript, он так же успешно справится и с JS-тасками. Курсы не решат всех ваших проблем. Они не повысят seniority-level специалиста. Но в вашей команде появятся необходимые кадры!

Эту идею мы воплотили в Dev-Pro. Мы решили брать в команду людей, которых мы готовы месяц обучать на условиях, что это время будет оплачено, будто программист уже работает на проекте. Отбирая студентов Intermediate-специалистов на наши внутренние курсы, я обращаю внимание на зрелость человека как разработчика. В результате мы уходим от роли .NET, Java, JavaScript Developer, а приходим к позиции Software Engineer.

Как создать образовательную программу для переквалификации

Обучающий курс — это такой же полноценный проект, как и другие в IT-компании. У него должны быть процессы: их разработкой и нужно заняться в первую очередь. Необходимо выбрать тренера, способного создать уникальную программу, которая соответствует требованиям компании и проекта. Я советую такие критерии выбора преподавателя:

  1. Действующий программист, теоретики тут не подходят.
  2. Имеет профессиональный авторитет у ваших специалистов.
  3. Это эксперт, выделенный под обучение, он может привлекаться к проектам только как консультант и является частью команды обучения на фултайм.
  4. Должен глубоко погрузиться в проект, который требует подготовки кадров, чтобы разобраться, какие технологии нужны, на чем сделать акцент, а что можно смело пропустить.

Составление программы:

  • Общие знания технологии можно получить из бесплатных видеокурсов. Сосредоточьтесь на нуждах проекта.
  • На разработку курса уходит в среднем в три раза больше времени, чем на его вычитку. Например, если у меня курс, рассчитанный на 32 часа, то на его подготовку я потрачу в среднем 90 часов рабочего времени.
  • Каждое изменение — не прихоть, а результат тщательной проработки требований проекта и компании.
  • Создайте детальный план каждого занятия с презентационными материалами. Можно обойтись без презентаций, однако четкий план необходим! Без него вы рискуете потратить уйму времени студентов на незначительные темы, так и не уделив внимания важным вопросам.
  • Важная часть обучения — домашние задания. Без них все лекции исчезнут из памяти студентов через несколько часов после занятия. Задания должны быть максимально привязаны к потребностям проекта.Тогда и вы, и ученики понимаете зачем их выполнять.
  • Учтите, разработка домашних заданий тоже требует времени. В среднем на разработку домашнего задания, оптимальное время выполнения которого — 2 часа, уходит 1 час преподавательского времени.
  • Автоматизируйте проверку домашних заданий. Определяйте контракты — те сигнатуры методов, название классов, полей и т. д., которые вы будете отдавать вашим студентам. Пишите два набора тестов. Один — смоук-тест для учеников, второй — для вас, который проверяет не только функциональные требования. Сразу настраивайте линтеры и тулы, проверяющие стиль кодирования данных студентов. В идеале, возьмите конфиг линтеры у разработчиков проекта-заказчика, на который вы готовите студентов, чтобы они привыкали к стилю кодирования будущих коллег. Задания, нарушающие код стайл, идут сразу на переделку. То же самое касается заданий, которые не проходят ваши тесты. Очень часто в IT-школах делается упор на вычитку материала. По моему субъективному мнению, выполнение домашних заданий и их адекватная проверка важнее вычитки курса.
  • Оптимальное время лекции — это два академических часа с перерывом в 10 минут между ними. Как показывает моя практика, стоит избегать длительных занятий. Максимальное время, которое студенты будут вас воспринимать, — 4 часа. Дальше, вне зависимости от того, как хорошо и интересно вы рассказываете, будут стеклянные глаза с мольбой «Отпусти, мил человек, нас отсюда».

Фидбек, основанный на фактах. Не все студенты одинаково добросовестны и усидчивы. У преподавателя должен быть заготовлен детальный отчет по каждому участнику курса, чтобы избежать обид, пустых претензии, а компания не понесла репутационных потерь.

Берите во внимание опыт высшей школы: лабораторные работы, лекции, домашние задания, журналы успеваемости и т. д. — полезные штуки.

Финал курса — это тестовый проект. Желательно применять процессы и правила, принятые в будущей команде студентов. Когда люди поработают с реальными тасками, а также реальными сроками — это уже не просто теория, а настоящий опыт использования новой технологии. Проект желательно начинать уже после вычитки основного курса, чтобы у всех участников были равные условия.

Подбор студентов. Cобеседование участников курса стоит доверять техническим специалистам того проекта, на который они пойдут после завершения программы по их переподготовке. Также стоит добавлять в число студентов тех, кто немного не дотягивает до уровня проекта, но нравится команде. Так вы даете им шанс присоединиться к проекту.

Обратите внимание на тех специалистов, которые уже работают с компанией и проявили желание сменить технологию. Вы даете им возможность остаться в команде, поменяв роль — это прекрасный способ повысить лояльность в коллективе.

Не перегружайте тренера. Две пары в день — это максимум. В идеале — выделить ему ассистента, который поможет с проверкой домашек, автоматизацией процессов, а также подменит на лекции в случае необходимости.

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

В конце переподготовки мы получаем специалистов с опытом разработки в нужной вам технологии, готовых присоединиться к реальному проекту за минимальные сроки, уже одобренных тех. экспертами. Те языки, которые остались на бекграунде помогут решать задачи креативнее: они обеспечат свежий и оригинальный подход к проблемам.

Подытожим

В Dev-Pro под моим руководством 37 разработчиков за 10 месяцев успешно овладели новой для себя технологией. Среди студентов были PHP, .NET, Java, Ruby специалисты — теперь они педалят на JavaScript, интегрировались в проект и остались частью нашей команды.

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

Итак, если в компании появляется проект, который стремительно растет и требует качественные, сложные решения, неподвластные новичкам — подготовьте специалистов самостоятельно!

Просто предоставьте своим уже опытным членам команды и людям со стороны, готовым поменять технологию, новые инструменты! Главное — подойти к этому серьезно. Обучающий курс — полноценный проект, требующий процессов и выделенных людей.

Рассчитывайте найти преподавателя-практика на фултайм. Он должен глубоко погрузиться в проект, к которому вы готовите людей, чтобы составить программу, основываясь на будущих задачах. Уделите особое внимание домашнему заданию, которое должно быть максимально привязано к потребностям проекта. Следите за успеваемостью студентов и готовьте детальный отчет по каждому участнику курса, чтобы избежать обид и репутационных потерь. Идеальным завершением курса станет тестовый проект. Собеседование участников курса стоит доверять техническим специалистам того проекта, на который они пойдут после завершения программы по их переподготовке. Ждите в команде опытных специалистов с креативным решением — ведь у них бэкграунд из другой технологии!

«Как меня наёмывали» — истории от разных людей

$
0
0

Каждый знает, «как правильно нанимать», и добавить что-то интересное практически невозможно. Поэтому в этой статье будет две коротких части — веселая и полезная.

Весело

Вопросы на собеседование менеджеров

  • Есть ли у вас опыт увольнения боксеров? Менеджер должен уметь работать с опасными ситуациями.
  • Расскажите о преимуществах скрама, используя только глаголы. Менеджер должен уметь работать в условиях ограниченного словарного запаса.
  • Какого максимального срыва сроков вам удавалось достичь до разрыва контракта клиентом? Менеджер должен поддерживать свою аутсорс-компанию при работе по схеме time-and-material.
  • Вам поручили проект социальной сети на блокчейне для самообучающихся алгоритмов, покажите счастье. Менеджер должен радоваться любому проекту.
  • Произнесите мотивирующую речь для программистов при переводе проекта на 1С. Менеджер должен уметь мотивировать даже в сложных ситуациях.
  • Вы на проекте fixed price. Объясните программисту-идеалисту, что конкретно этот баг фиксить не надо, всё равно его обнаружат только после сдачи проекта. До сдачи за него не заплатят, а после сдачи — на нем можно будет заработать. Мат и угрозы использовать нельзя.
  • Какие способы заставить сотрудников работать больше вы знаете? Менеджер должен уметь зарабатывать деньги для своей аутсорс-компании.
  • Какие способы оттягивания деплоя вы знаете? Работа, выполненная быстро, не ценится, поэтому преждевременный деплой — плохой признак. О чем вы при этом думаете?

Постановка задачи работодателем рекрутеру-фрилансеру

  • Ты за месяц подогнала трех синьоров. Но мы решили взять моего племянника. © МыЦенимЛояльность
  • А сейчас наш штатный рекрутер покажет, что ваш кандидат слаб, и мы вам не заплатим. © Фокусники
  • Вот тебе описание вакансии от гугла, срочно закрой ее подешевле, и человек должен выйти в понедельник на встречу с клиентом. © БыстроДешево

Перед собеседованием

  • А сейчас шестеро наших синьоров покажут вам, что вы не годитесь даже в третьи помощники младшего уборщика нижней резервной серверной вспомогательного аквариума в холле.

  • У нас пятиступенчатое сложное собеседование с тестовым заданием. © GeneralGlobalСинепупянскСофт
  • У вас отличное резюме, но вы прислали резюме сами, и мы останемся без нашего реферального бонуса. © Рекрутинг-агенство
  • К нам на собеседование что-то только идиоты приходят. © Рекрутер в ЛогикаИНаблюдательность
  • Вы собеседуетесь на QA, но наш QA в двухнедельном отпуске, так что вас опросит верстальщик.
  • Команда у нас дружная и переборчивая — за полгода ушла половина сотрудников, а новые не приживаются.
  • Ваше тестовое задание — взять наш сайт и написать по нему документацию. Только после этого поговорим про зарплату. © БесплатныеРаботникиОтовсюду

После собеседования

  • Спасибо, что прошли собеседование, мы вам позвоним когда-нибудь. Если вспомним и будет нечего делать. © ЧП «МедленныеРешения»
  • Вы успешно прошли все этапы, но мы поняли, что нам нужен кто-то помоложе и сиськами другого размера. © ООО «СиньорВ23, СтарикВ30»
  • Вы почти проходите по требованиям на синьорную позицию, хотя кое-что явно нужно подтянуть. И еще, по нашей тарифной сетке вы выйдете на 8000 через год. Гривен, конечно — это уровень начальника отдела. © 2018 ДремучийСовокЭнтертеймент
  • Пользу от сотрудника видно только через несколько месяцев, поэтому зп мы будем платить после испытательного периода. © ЖитьКакВСказке
  • Вы задали очень много вопросов по тестовому заданию. Вы нуждаетесь в микроменджменте, а мы ценим самостоятельность. © ПростоСделайСПервойПопыткиПравильно
  • Задание составлено так, что при выполнении обязательно возникают вопросы. Вы их не задали, и мы теперь знаем, что в сложной ситуации вы будете делать ненужную работу. © БолтСЛевойРезьбойДляУмников
  • Вы просто по-человечески не понравились нашему тимлиду. Но вам мы скажем, что вы технически не дотянули. © СтарыеСотрудникиВажнее
  • Вы нам очень-очень понравились. Но денег у нас нет, давайте мы вам акции предложим? © СуперСтартап
  • О зарплате будем говорить после выполнения тестового задания. Синьор должен справиться с ним быстро. © Нищеброды-манипуляторы
  • Мы нанимаем вас на позицию техдира, и ваша первая задача будет снять офис и нанять сотрудников в райцентре, там дешевле. © ЭкономикаДолжнаБытьЭкономной
  • У нас все студенты, а у вас два высших, они комплексовать будут. Вы не подходите. © ЗатоЧестно

Работа менеджера

  • Есть заказчики, которые уверены, что сотрудники должны вкладываться в проект заказчика так же, как и сам заказчик. Работать ночами и без выходных и непрерывно учиться.
  • Есть квалифицированные сотрудники, которые уверены, что заказчик должен заботиться о них так же, как родители сотрудников в их детстве. Давать плюшки, отдых, учить, развлекать.
  • Есть менеджеры, которые смотрят на это всё и бегают с криком «аааааааа.....». Но работать-то надо :)

Занудно

Постараюсь сказать что-то неочевидное в тысячу раз заезженной теме. Если хотите серьезный программерский взгляд по теме, то вот Кожаев хорошо написал. Или вот туттоже есть.

Заказчики — не дураки

Дураки в бизнесе не задерживаются. Так что обычно под всеми болезненными и неприятными ситуациями есть какая-то внутренняя логика или стечение обстоятельств. Ладно, логика может быть с очень странными приоритетами, а обстоятельства — очень неудачными.

При этом в раздолбайстве и потере информации обычно тоже есть логика, например кто-то сэкономил на построении процесса и ситуация до сих пор выглядит как «работает? не трогай!».

Стили управления бывают разные

Кому-то нужна военная точность и предсказуемость, другому — свобода и инициативность. То, что подходит для одного — категорически не подходит для другого. Если стиль управления вам не подходит, на собеседовании обычно это уже видно.

Потеря информации

Тимлид-директору: «Срываем сроки, нужен еще бэкендер».

Директор-тимлиду: «Найдем тебе, беги фичу допиливай».

Директор-рекрутеру: «Найми бэкендера, список требований возьми из описания проекта».

Рекрутер-интернету: «В дружный коллектив на отличные условия нужен бэкендер со знанием React и IE6. 8 сортов чая и бесплатный агрофитнес!»

Вывод: если вы где-то видите дурацкое описание вакансии, это значит, что информация потерялась по дороге. И, скорее всего, вам жить с такими процессами. Если захотите.

Неверные KPI

Рекрутеры часто получают бонус за найм. Что будет с этим сотрудником через полгода — не так важно. Найм людей пришедших «со стороны» — валит зарплату. И вина здесь не столько на рекрутерах, а больше на руководителе, который построил такой процесс.

Что поощряешь, то и имеешь.

«Меня нужно добиваться!» — так говорят и кандидаты, и работодатели

Эффект Даннинга-Крюгерана практике. И работодатель, и кандидат на каком-то этапе развития проходят через эйфорию от первых успехов в стадию «я прекрасен». Ничего, яма страданий всех рассудит. Просто вы встретились в такой момент.

Послесловие

Работодатель имеет право хотеть чего угодно. Но вы, в свою очередь, не обязаны оправдывать все эти хотелки и быть идеальным. Реальное положение дел определяется только конкуренцией между соискателями. И если на вакансию супермена в течение долгого времени откликнутся только косой, хромой и горбатый, то одному из них вскоре выдадут синюю плюшевую майку и красный плащ. И тот полетит. А если не полетит, то пойдет или похромает. И все смирятся с этим и будут работать с тем, что есть, пока не найдется альтернатива.
© хабр


Есть вакансия архитект/CTO. Это не ко мне, но я там общался и проверял, выглядят как хорошие вменяемые люди, которые ищут таки супермена на суперусловия. И в данном случае супермен может хромать на английский.

А вот мне бы — хороший офис в Харькове человек этак на 4-10,надежного человека в Канаде с гражданством или permanent resident и супер-DevOps на краткосрочный контракт. Все вопросы в личку.


Проблема текучки кадров, или Как удержать тех, кого обучил

$
0
0

[Об авторе: Николай Лотоцкий — более 15 лет занимается разработкой программного обеспечения. Знаком со всеми этапами работы на проекте и развил карьеру от должности QA Engineer до Technology Expert. Несколько лет был JavaScript Software Architect и принимал активное участие в разработке сложных масштабируемых приложений. Кроме того, есть опыт работы с PHP, .NET, Python. Более трех лет проводит различные курсы и тренинги]

Мы его, можно сказать, на помойке нашли, отмыли, очистили — а он нам фигвамы рисует!
Э. Успенский «Зима в Простоквашино»

После первой статьи о переквалификации специалистов в Dev-Proко мне поступил ряд вопросов в личные сообщения. Хочу ответить на некоторые из них. Возможно, эта информация будет полезна многим компаниям, готовым перенять наш опыт.

Любопытно, что я получил сообщения одобрения. Мол, классная инициатива, повышает лояльность ребят, которые внутри компании перешли из одной технологии в другую: мы не просто поменяли им проект, если он им надоел или утомил, но и язык! Но тут же проскочило несколько негативных комментариев о том, что это непрактично. Переучивать людей за счет компании, давать им не рыбу, а новую навороченную удочку — опасно. Ведь они уходят на другое озеро/реку, а лучший улов, то есть классные решения, приносят другой компании.

Очень часто я слышу от руководителей возгласы о неблагодарности людей, которые решили прекратить сотрудничество с компанией. Так как я напрямую занимаюсь переобучением, то прекрасно понимаю это чувство обиды — ты вкладываешь в человека время, деньги и свою энергию, а он потом говорит тебе: «Прости, прощай». Как раз об удержании специалистов и страхе потерять «инвестиции» в их образование я и расскажу сегодня.

Радикальный метод

Один из самых радикальных методов, ну, наверное, кроме «цепью к батарее», — использовать на проектах устаревающие или уже устаревшие технологии. Подумайте, разве не замечательно? Кому сейчас нужен программист с экспертизой в Delphi? Да никому! Минус этого подхода: такой специалист и вам-то будет скоро не нужен, потому что клиенты требуют «стильные, молодежные» технологии. В итоге придется выходить на рынок и выстраиваться в очередь за «модными» специалистами, пытаться заманить их к себе.

Неосознанно вы выгоните преданных, но «устаревших» на задворки офиса, новичкам дадите захватить свеженький опенспейс. Так можете потерять обе группы: лояльные растеряют преданность, завидев ваших новых «любимчиков», а «молодняк» может не прижиться, потому что хотя новые люди — это отлично, но для вас они станут котом в мешке. Даже если вы получили о них 100 500 позитивных отзывов.

Это, конечно, из категории «вредных советов». А как же на самом деле выйти из ситуации? Как избежать текучки и расставаний с ценными кадрами?

Обучайте специалистов новым технологиям

Первый настоящий совет — обучить специалистов, которые хотят с вами работать и развиваться, новым технологиям! Но снова возвращаемся к вопросу рисков: специалисты станут гораздо востребованней, появится больше конкурентоспособных предложений, они уйдут. Есть на этот случай пагубная, на мой взгляд, практика подписывать кабальные контракты, в которых «нижеподписавшийся обязуется быть благодарным компании» и не расторгать соглашение, скажем, год, два, три (нужное подчеркнуть). Это плохо работает в наших реалиях. Во-первых, репутация пострадает: о компании может пойти дурная слава. Во-вторых, в любом, даже самом продуманном контракте можно найти лазейку. Да и в-третьих, насильно мил не будешь. Специалист, который пишет для вас код только по принуждению «ценной бумаги», вряд ли будет искренне болеть за качество предоставляемой услуги.

Хочу сделать акцент — риск обучения оправдан! Если люди уходят — это не повод их не учить. Если вы не вкладываете в обучение своей команды, то закрываете миллион окон бесчисленных возможностей для себя и для них. Вы просто потеряете людей, которые стремятся развиваться и двигаться вперед, оставаясь с теми, кого «все устраивает». Последние не будут сидеть по вечерам в свободное время, чтобы получить знания новых технологий, использование которых заказал клиент. Даже повторяющиеся случаи ухода не должны вас останавливать! Возможно, проблема не в обучении, а в других условиях, которые вы предоставляете или не предоставляете своей команде. Кроме того, помните, что вы в любом случае приносите себе пользу: чем больше специалистов с новой технологией на рынке, тем справедливее цена на их услуги.

Поддерживайте оптимальные условия сотрудничества

Второй метод удержания — то, о чем я вскользь упомянул, — условия сотрудничества. Может быть, дело не в новой удочке, а в озере, где рыбачит ваш программист. Создавайте в вашей компании такие условия, при которых человеку не придет в голову уйти от вас! Мониторьте его состояние, чем он живет, что он хочет. Не тяните до последнего момента, говорите с ним, давайте и получайте фидбэк. Да, это трудно, так как большинство людей в нашей отрасли интроверты. Не стоит полностью перекладывать ответственность за общение с людьми на people partners. Это входит в их обязанности, но вы также должны быть внимательны к коллегам.

Запомните: есть люди, которые говорят о своих желания, а есть и молчаливые — они не готовы озвучить недовольство. Повышение компенсации по вашей инициативе — гораздо предпочтительнее, чем ответить на запрос. Скажу больше, для некоторых гораздо легче сменить компанию, чем подойти к собственному менеджеру и попросить о повышении. Важно помнить, что деньги — это хорошо, но опять же не единственный мотиватор и «удержатель». Самое страшное для людей — это стеклянный потолок, отсутствие перспектив. Им приходится ждать полгода или год до следующего перформанс-ревью, чтобы высказаться или получить ответ на запрос... Старайтесь реагировать на пожелания оперативно. Не откладывайте решение до следующей «официальной встречи».

Ведите переговоры

Третий вариант — самое дипломатичное решение проблемы «прощаний» — переговоры. Если человек решил прекратить с вами сотрудничать, то ничего еще не потеряно. Часто можно убедить его. Вступая в переговоры со специалистом, помните, что он приходит к вам с «законными», рациональными требованиями или применяет шантаж.

Шантаж отличается от требований тем, что в ультимативной форме вымогают исключения из общепринятых правил компании. Шантаж в нашей отрасли практически всегда основан на осознании собственной незаменимости, чаще всего, если человек занимает ключевой пост. Если к вам пришли с таким кейсом, то ответ должен быть один — «нет». Поймите, люди общаются друг с другом. Если сделали поблажку для одного, даже на ключевой позиции, кто-то еще захочет повторить успешный эксперимент. Если приходится часто делать исключения, стоит задуматься, а не с процессом ли в целом у вас проблема? Возможно, из исключения нужно сделать правило.

Расставайтесь с людьми красиво

Четвертая опция — самая сложная, на мой взгляд, — научиться расставаться с людьми красиво. Всегда обидно, когда «яркие птицы» улетают в теплые края, но это закон природы. Птица не выдержит зимы, или же будет, как Серая шейка из сказки Мамина-Сибиряка, сидеть в сужающейся день от дня лужице. Поэтому, как бы ни жалко было расставаться с теми, в кого были вложены силы и деньги, сделайте это не на эмоциях, а руководствуясь здравым смыслом. Когда очередной мой студент говорит мне, что уходит — я всегда вежливо отшучиваюсь, иду пить чай, дабы не наговорить или не наобещать чего лишнего. Когда эмоции схлынули — спокойно поговорить, понять, чего именно не хватало человеку. Запомните, хорошие родители — те, которые вовремя отпускают свое дитя во внешний мир. Иначе есть риск обломать крылья, испортить отношения, терпеть скандалы и вообще закрыть его от всех возможностей и перспектив, испортив будущее.

Отпускайте человека без «hard feelings». В этот раз не удалось — но все равно надейтесь на дальнейшее сотрудничество, не закрывайте перед ним двери, будьте рады снова видеть его в своих рядах или просто на ивентах и корпоративах.

Найдите замену незаменимым

Пятый вариант — исключительно о работе с незаменимыми людьми. Если вы столкнулись именно с таким специалистом, — на котором замкнуты многие процессы и решения, — осознаете, что быстро закрыть его позицию не удастся. А удастся ли вообще — кажется вам резонным вопросом. Вы паникуете и делаете все, чтобы сохранить этот кадр, но на самом деле вам стоит сменить фокус. Замена такому человеку, скорее всего, есть. У вас под боком скрывается этот резерв. Кто-то, кто при должной поддержке и мотивации сможет взять на себя очень много. Научитесь распознавать таких личностей и давать им шанс. Тогда незаменимые перестанут вас страшить.

Вообще, замкнуть проект на одном специалисте — сверхбольшой риск, который подставит под удар как компанию, так и этого человека. Скорее всего, без «бэкапа» он лишится полноценной личной жизни, хобби, может быть, даже здоровья. Да, люди увольняются, да, у них случаются жизненные неурядицы, болезни. Будьте готовы к этому.

Развивайте внутренний институт people partners

People partners беседуют с людьми, выясняют, что тех тревожит, какие они видят для себя перспективы в рамках компании. Стремитесь максимально быстро реагировать на эту информацию, старайтесь опережать просьбы, дабы не ставить человека в положение просящего. Но, конечно, любой человек может в любое время инициировать перформанс-ревью, чтобы рассказать о наболевшем, о потребностях или похвастаться успехами, чтобы перейти на следующий уровень в карьере.

Не стоит недооценивать и роль проектного менеджера (ПМ) в этом процессе. ПМ просто обязан знать, чем живет его команда. Кто и почему недоволен. У кого что-то случилось в семье или дома, поэтому тот непродуктивен — ведь его надо поддержать. Кто-то стал опаздывать чаще, чем раньше? Заметил ли это ПМ? Нашел ли способ поинтересоваться, в чем же причина? Может, ваш коллега решил заняться углубленно английским языком, а другого времени у репетитора не нашлось. Ну что же, можно потерпеть. Например, перепланировать standup, если это не создает сложности остальным.

Часто так бывает, что мы не хотим по-настоящему погружаться в происходящее и копаться в деталях, чтобы ненароком не обнаружить там проблемы, не создать себе дополнительную работу. Но опыт (сын ошибок трудных) доказывает, что «оно» само собой не рассосется, а решать проблему придется в самый сложный и неподходящий момент. И тогда эмоций не избежать. Лучше не доводить до этого. Хорошо, когда в компании можно получить поддержку. От старших товарищей, от руководства (которое может и поворчит, но поможет). Тогда проблемы переходят из плоскости «как-нибудь будет» — в планирование, реализацию и так далее.

Подведем итоги

Не стоит бояться учить людей чему-то новому. Наша отрасль — это беспрерывное и стремительное движение. Без инвестиций в образование вы рискуете отстать от рынка и клиентов.

Создавайте человеку условия, при которых 90% предложений из других фирм он отвергнет даже не задумываясь. Если ему попались 10% заманчивых вариантов — переходим к активному удержанию. Действуйте в рамках правил, принятых в компании, или меняйте процессы в целом. Если это не помогло — расставайтесь с человеком «красиво»: максимально корректно, с возможностью вернуться. Помните, что потенциальные кандидаты скорее поверят отзыву знакомого, который уже с вами работал, чем словам рекрутера. Если от вас уходят в хорошем настроении, с приятными воспоминаниями — это приведет вам несколько новых человек, которые дополнят и усилят вашу команду. У нас были случаи, когда наши коллеги возвращались в компанию, и мы этому несказанно рады.


Images via Pierre Kleinhouse, Nezzon Aerts.

Професійне вигорання: як не “перегоріти”, коли дуже припече

$
0
0
[Про автора: Альона Черненко-Диба — QA Manager у Astound Commerce з 11-річнимдосвідом в ІТ — від джуніор тестувальника до функціонального менеджера команди. Її кредо як менеджера: «Успіх вашої команди є досягненням команди, невдача команди є результатом вашого неефективного менеджменту»]


Професійне вигорання — це синдром, який розвивається на фоні хронічного стресу і призводить до загального виснаження організму людини. Він включає в себе три складники: енергетичний (брак енергії, фізична перевтома), емоційний (апатія, зниження чутливості та емоційності, байдужість) і екзистенціальний (втрата сенсу діяльності, життя). Це стан, коли зовсім нічого не хочеться, коли опускаються руки, коли результативність і якість роботи стрімко падає, а зацікавленість і мотивація в роботі зникають. Це стан, коли перебування з сім’єю перестає приносити задоволення, а рідні, друзі та оточуючі починають дратувати. Це стан, коли загострюються проблеми зі здоров’ям, а задоволення від життя та його якість падають...

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

Причини

Ще на початку свого становлення як менеджера я відчула на особі всі ознаки професійного вигорання з одним-єдиним справжнім бажанням — потрапити на безлюдний острів.

Сьогодні, оцінюючи той стан, я можу назвати основні причини, які до нього призвели:

  • звичка жити й працювати в швидкому темпі, бажання встигнути все і одночасно, як на роботі, так і в особистому житті, і як наслідок — часті перепрацювання, недосипи;
  • неякісне планування часу без фокусу на пріоритети, що є важливими для мене, для сім’ї, для професійного розвитку і роботи, а звідси — надмірна кількість задач «на вчора»;
  • постійно завищені планки для досягнення нових цілей і виконання нових задач, переоцінка своїх можливостей і в результаті — певний внутрішньоособистісний конфлікт (можливо, криза гармонізації особистості);
  • надмірна емоційність через проживання всього особисто, пропускання через себе негативних моментів життя і роботи;
  • невміння сказати «ні» або визнати той факт, що не з усім можна впоратись самотужки і що просити про допомогу, делегувати — це нормально;
  • неготовність прислухатись до свого організму, небажання та й, можливо, невміння відпочивати, щоб не втрачати даремно такий важливий час.

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

Висновки з особистого досвіду

Встигнути все і скрізь неможливо та й не треба. Фокус — на пріоритети і важливі справи

Я вважала, що якість і результативність того, що я роблю, залежить від обсягу якісно і швидко виконуваних завдань будь-якого роду, в будь-якій сфері свого життя. Чим більше — тим краще. Можливо, в деяких ситуаціях це дійсно так. Відвідавши низку тренінгів по тайм-менеджменту, з особистої ефективності, тепер я переконалася в тому, що результативність того, що робиш, прямо залежить від чітких пріоритетів з фокусом на важливість задач. Пріоритети можуть змінюватись. Розуміння важливості в різний момент часу теж може і буде відрізнятись.

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

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

Після початку навчання на курсі «дитячо-сімейної психології» прийшло розуміння, що відчуття задоволеності зростає в рази, коли важливість таких завдань розподіляється з врахуванням піраміди цінностей (з фокусом на основні області/ролі нашого життя), за пріоритетністю. Наприклад:

  1. Я.
  2. Моя половинка (чоловік/дружина).
  3. Діти.
  4. Батьки/рідні.
  5. Робота.
  6. Друзі / хобі / домашні тварини.

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

Обов’язково має бути час на відновлення енергії

Відпочинок, спланований чи спонтанний, активний чи пасивний, я сприймала як даремну втрату часу, адже все це так сильно відволікало мене від виконання особистих чи/і професійних задач, від досягнення цілей, від того самого руху вперед задля бажаної успішності. Я не врахувала одного: чим довше знаходишся в шаленому ритмі і, відповідно, у стресі, не даючи організму повноцінно відновлюватись, тим сильніше падає продуктивність. Ох... І тим важче потім повертатись до попереднього рівня ефективності. Моє переконання на тепер — краще мати стабільно високу продуктивність, аніж періоди шаленої продуктивності з тривалими періодами її значного спаду.

Познайомившись ближче з психологією і фізіологією людини, я не лише прийняла той факт, що час на відновлення затраченої енергії повинен бути, а й почала активно приділяти увагу таким драйверам відновлення енергії (за К. Когоном):

  • Рух — шляхом поєднання рухової активності протягом всього дня з комфортною для конкретного організму системою фізичних вправ будь-якого напрямку. Шляхів покращення фізичної форми багато — тут і біг, і командні види спорту, і тренування в залі, і плавання, і аеробіка тощо. Періодичність, формат, навантаження — все особисто.
  • Харчування — збалансоване, таке, яке насичує мозок і організм поживними речовинами, зокрема, в першу чергу глюкозою та киснем. Таке, яке комфортне організму.
  • Сон, протягом якого засвоюються отримані знання, освіжається пам’ять, підсвідомо узагальнюється отримана інформація, відновлюються сили і перезавантажується мозок (не менше 8-мигодин на добу).
  • Релаксація і регулярний відпочинок — свідомо підібраний саме для конкретного організму, зокрема різні медитаційні техніки, вміння управляти своїми негативними емоціями і думками тощо. Вміння позбавитись напруги і діяти спокійно.
  • Спілкування (живе, емоційне) — задля позитивної соціальної взаємодії. Час, який ми виділяємо на побудову і підтримку стосунків з важливими для нас людьми, і час, який ми мінімізуємо в спілкуванні з токсичними людьми, фактично витрачається на живлення мозку і є базою для накопичення позитивних емоцій.

Кожен із п’яти драйверів відновлення енергії є важливим. Однак з мого досвіду повноцінний ефект вдається отримати, лише коли поєднані усі п’ять разом. Іншими словами, маючи правильну модель рухливих/фізичних активностей, харчування, сну, релаксації і спілкування, людина отримує нові сили, стає цільною особистістю і відчуває задоволеність в кінці кожного дня.

Накопичення позитивних емоцій. Змінюємо ставлення. Фокус на можливості

Як емоційна людина, я часто брала все близько до серця, переживала всі маленькі чи великі невдачі. Будь-яка нова ситуація чи можливі зміни викликали у мене певний страх через невизначеність. Були ситуації, коли здавалось, що вкладаєш і віддаєш багато сил, часу і енергії, а очікуваного результату немає. Було відчуття, що все ділиться виключно на дві категорії — погане і хороше, і поганого — більше. Це засмучувало, дратувало, виводило з психоемоційної рівноваги, породжувало купу негативних емоцій, які накопичувались і трансформувались у невроз чи стрес, чи і те і інше. Мимовільні негативні думки, ризики в будь-якій ситуацій були звичними атрибутами мого життя.

З часом прийшло розуміння, що всі зміни на краще. Якими б вони не були, вони відкривають для мене нову сторінку, з новими можливостями. Будь-яка проблема — це та сама задача, а будь-які ризики варто трансформовувати в план дій з вирішення задач, а ще краще — в можливості. Відвідуючи тренінги з фокусом на емоційний інтелект, на емоційну компетентність менеджера, паралельно спілкуючись з різними психологами, я вчилась змінювати сприйняття таким чином, щоб фокусуватись на позитивних емоціях, щоб позитивно мислити і сприймати зміни, щоб вміти розпізнавати і приймати емоції оточуючих, а найголовніше — не блокувати свої емоції, а натомість управляти ними.

Кожен із нас може позбутись автоматичних негативних емоцій і думок, якщо цього дійсно захоче. Дуже часто ми вважаємо, що є ситуації, які змінити неможливо, при цьому ми не робимо ніяких кроків назустріч змінам. У такому випадку — беріть ручку і листок паперу і виписуйте всі претензії і думки стосовно роботи, сім’ї, друзів, стосовно себе особисто. Що можна змінити — змінюйте, не можете відразу — змінюйте поступово. Якщо ж не хочете жодних змін — подивіться на ситуацію з іншого боку, може вона і не така страшна, як вам здається, змінюйте ставлення до неї.

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

Правила для попередження вигорання

Враховуючи ті зміни, особистісні та професійні, які відбувались зі мною протягом 10 років на керівних посадах, у мене сформувались чіткі правила, якими я керуюсь, аби знову не зустрітись пліч-о-пліч з професійним вигоранням:

  • Бути в контакті, в гармонії з собою. Бути чесним із собою. Чути себе, розуміти, чого зараз хочеться більше чи менше, відчувати свій внутрішній і фізичний стан, слухати своє тіло і організм. При потребі змінювати пріоритети, плани, реагувати на випередження.
  • Бути в моменті. Тобто бути емоційно присутнім в тому місці, з тими людьми, в тих активностях, де ти є зараз. Якщо це час з дітьми, то всі твої думки, твоя фізична і емоційна присутність має бути з ними. Не відволікаючись на різні інші питання і думки. Нехай це буде 10-15навіть 5 хвилин часу емоційної присутності в моменті, але з точки зору результативності і ефективності це краще і більше, аніж годину часу «думи думаючи на різні теми одночасно».
  • Планування цілей на рік, з декомпозицією задач на місяці, тижні, дні. За пріоритетами і з фокусом на їх важливість. Враховуючи ролі, які актуальні для мене більше чи менше в кожний момент часу. Переважно послідовно, аніж одночасно.
  • Відпустки — мінімум тричі в рік, краще короткострокові, але частіше. Без робочої пошти, без засобів до зв’язку з робочих питань, без інтернету і соціальних мереж. Відпочинок активний чи пасивний. З сім’єю чи з друзями.
  • Фізичні навантаження. Мінімум тричі в тиждень, чергуючи силові і аеробні вправи, розтяжки. Рухливість протягом дня, максимально часто, наскільки це можливо.
  • Позитивне мислення і сприйняття подій, людей, обставин. Мінімізація негативних емоцій. Фокус на можливості.
  • Релаксація і відпочинок для мозку. Масаж, медіативні техніки, музика, комфортна вуху, тощо. Кожного дня я «ловлю своє даніссімо» мінімум 30 хвилин і як в рекламі — «нехай увесь світ зачекає». Це той час, коли нічого не плануєш, нікуди не біжиш, ні з ким не говориш, а просто релаксуєш за чашечкою кави чи без, спостерігаєш або слухаєш звуки природи, за всім, що тебе оточує.
  • Професійний і особистісний розвиток. Відвідування тренінгів. Читання книжок, статей. Враховуючи свої бажання і фокусуючись на тих напрямках, які є важливими, бо приносять задоволення.
  • Час для себе. Він має бути завжди.

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

Поради менеджеру

Як менеджер я розумію, що залізти в голову співробітникам не можна, та й не треба. Давати поради, коли їх не питають, не варто. Кожна людина сама несе відповідальність за себе, за свої вчинки і дії. Але я можу бути поруч, відслідковуючи психологічно-емоційний стан співробітників, створюючи відповідні умови для його покращення, реагуючи при потребі. Індивідуально. Запорукою успішності в таких ситуаціях є уважність менеджера і відкритість співробітника, готовність людини завчасно прийти до менеджера, якщо щось не так, а менеджера — допомогти.

Окрім перерахованих вище особистісних правил і рекомендацій, які я регулярно озвучую при потребі своїм людям, я вірю в те, що такі дії з мого боку дозволяють мені захищати людей від професійного вигорання:

  • Налагодження відкритості і діалогу в роботі з людьми, двосторонньої комунікації шляхом безперервного формального чи неформального спілкування. Це необхідно для чіткого розуміння психологічно-емоційного стану своїх людей і можливості вчасно відреагувати.
  • Оцінка здібностей, потреб і схильності співробітників, підбір обсягу і типу роботи для кожного у відповідності до визначених факторів. Збільшення навантаження лише за умови успішних результатів роботи та за погодженням усіх членів команди. Чітке встановлення пріоритетів у роботі команди, щоб дати необхідний час і ресурси для виконання завдань.
  • Визначення і узгодження реальних очікувань, зони повноважень і відповідальності, за потреби.
  • Менторство і коучинг співробітників, розвиток їх здібностей, обговорення будь-яких питань.
  • Врахування мотиваційних факторів і потреб кожного співробітника окремо.
  • Культивування на рівні відділу і компанії потреби в професійному і особистісному розвитку.

Пам’ятайте

Ми звикли вважати, що професійне вигорання викликають великі обсяги і темпи роботи. Та насправді воно обумовлено переважно тим, що наш робочий графік, ритм життя, характер обов’язків, дедлайни та інші фактори стресу перевищують задоволення від того, що ми робимо. За словами Ніцше, якщо у людини є «для чого» жити, то вона витримає будь-яке «як». Ресурсності нам всім :-)

Холакратия в действии: как каждый сотрудник может повлиять на стратегию компании

$
0
0

[Об авторе: Сергей Королев — управляющий директор в Railsware с более чем 15-летнимопытом работы в ИТ: от стартапов до корпораций. Инженер, продакт-оунер, бизнес-лидер]

В последние годы в организационном управлении мы все чаще слышим термины «плоская структура», «холакратия», «процессная организационная структура». Они особенно часто встречаются в IT-сфере, так как софтверные компании достаточно открыты к инновациям и тестированию разных подходов в управлении и организации. К тому же, холакратию часто ассоциируют с Agile, называя ее продолжением гибкой методологии разработки в организационном управлении. Сегодня компании по всему миру внедряют отдельные элементы плоских структур и проверяют их на практике. И Railsware — не исключение.

Холакратиякак форма управления построена на автономных единицах — командах или скводах. Они равноправны и находятся на одном организационном уровне, поэтому такая структура называется плоской. В этом случае мы избавляемся от классической иерархии. Ответственность за принятие решений равномерно распределяется по всем командам.

Каждый из скводов отвечает за отдельный процесс/проект/продукт от начала до конца и включает в себя специалистов разных профилей. Это обеспечивает их автономность в работе. Связи между скводами поддерживаются с помощью представителей от каждой из групп.

Холакратия предусматривает не должности, а роли — то есть сотрудники могут одновременно исполнять несколько ролей в компании, они не привязаны к одной должности. Если возникает необходимость в реорганизации (например, из-за изменения условий рынка), гибкий подход позволяет пройти этот процесс быстрее и без серьезных трудозатрат.

Мы не беремся утверждать, что в Railsware представлена холакратия в чистом виде. Но мы внедрили определенные элементы плоской организационной структуры на разных уровнях, и они доказали свою эффективность. Особенно интересен кейс о том, как мы определили стратегию развития всей компании на следующий год с участием каждого сотрудника. Давайте посмотрим, как это работает.

Формирование стратегии

Стратегическая сессия на 45 человек и открытая дискуссия — абсолютно неконтролируемый процесс. Поэтому мы организовали сбор и анализ информации в четыре этапа. Для каждого была создана своя инфраструктура, которая на 95% состояла из Google Spreadsheets+Forms, Hangouts. Коммуникацию до и во время сессии вели через BigMarker и Slack.

Этап 1. Опрос

Все сотрудники были распределены в сбалансированные группы. Основные параметры распределения — роль в компании, стаж работы, проект, локация.

Каждый сотрудник (Railswarian) в формате ретроспективы выделил топ-3 «что в компании хорошо» и топ-3 «что улучшить».

Инструменты: Google Forms + Google Spreadsheets.

Пример того, что хорошо

RWNsGood 1Good 2Good 3
Railswarian 1People, transparent, open and honest environment, easy to give/receive feedback.No hierarchy and bureaucracyRemote work
Railswarian 2Commitment and strive for greatnessI do like it that Railsware is running product labs and has plans to grow those. Our products have potential to become very well earning. I like it that we are not just consultancy, but we are able to build our own products.Building a strong team. Demanding approach to hiring process, looking for only best members to the team and further contribution to employees’ learning and professional growth.
Railswarian 3Ability to make decisions independently and define terms of execution.Company cares of its employees, it is a very rare but valuable attitude. People stay in the company for many years and a few companies can boast with such results.Good that we’ve got a chance to work on own products and grow new ones to a paid state and stable revenue.

Пример того, что улучшить

RWNsImprove 1Improve 2Improve 3
Railswarian 1More self-education. We’re good but there is plenty of room for becoming better. More knowledge exchange between products. Less expecting everyone else to be perfect and all-knowing.Because of mixed messages I still do not know, which policies work and which do not. Travel freedom, conferences attendance, hardware — I still have questions and would be happy to read clear and final information somewhere.We need force engineers to be more involved to company marketing. Stimulate them to do open source, write blog posts.
Railswarian 2We need to further invest in own product part of the company and nurture product culture. This is the only real chance to become a top notch employer and continue building strong team.Grow designers team and work with in-house designers instead of ones selected by clients.RWNs hence trolling, sometimes mean comments. Every feedback should be given, it just can be given in different manner than RWNs got used to.
Railswarian 3Development teams may face issues their colleagues have already solved. We don’t know about that. Also it’s interesting to know general information about project state.People should commit to be a Railswarian culturally, but for this we should define what we praise, what we dislike and what is it to be a Railswarian. More product-oriented collaboration and experience exchange around the teams (technology, approaches).

Этап 2. Приоритизация

Каждая из групп получила список пунктов «хорошо» + «улучшить» своих участников. Во время сессии в условиях ограниченного времени группе нужно было определить свои топ-5 «хорошо» + топ-5 «улучшить» пунктов. Таким образом, проверяли индивидуальные пункты и выбирали наиболее важные.

Инструменты:

  • BigMarker — для проведения крупных удаленных митингов. В сумме получилось 9 локаций по всему миру, 11 подключений.
  • Google Spreadsheet — для работы со списками «хорошо» / «улучшить».

Этап 3. Классификация

Следующая задача — разбить пункты по направлениям и зашить в стратегию. Интересно, что мнения большинства команд во многом сошлись. Но работать с сырыми данными (пусть и прошедшими групповую верификацию) было достаточно сложно, поэтому мы классифицировали весь полученный материал:

  • Необходимо было убедиться, что каждый пункт относится к одному контексту. Поэтому мы разбивали пункты, затрагивающие несколько контекстов, на более атомарные и конкретные.
  • Каждому из единичных пунктов был присвоен тег. В итоге получили 33 тега, по каждому из них — от 1 до 6 пунктов.
Top 5 Good pointsTagsTop 5 Improve pointsTags
I do like it that Railsware is running product labs and has plans to grow those. Our products have potential to become very well earning. I like it that we are not
just consultancy, but we are able to build our own products.
__________________
— 5 points, by RWN 15, RWN 18, RWN 27, RWN 35
Own productsWe need to further invest in own product part of the company and nurture product culture. This is the only real chance to become a top notch employer and continue building strong team.
__________________
— 4 points, by RWN 7, RWN 15, RWN 18, RWN 35
Own products
Building a strong team
Demanding approach to hiring process, looking for only best members to the team and further contribution to employees’ learning and professional growth
__________________
— 3 points, by RWN 7, RWN 18, RWN 35
TeamStronger employer brand, need more visibility through meet-ups and conferences where we could share our knowledge.

Lack of open source software development — the signal to developers — it is a good advertisement in developers society.
__________________
— 4 points, by RWN 7, RWN 15, RWN 27, RWN 35

Employer brand
Open source
People, transparent, open and honest environment, easy to give/receive feedback
__________________
— 2 points, by RWN 15, RWN 27
Open feedbackPeople should commit to be a Railswarian culturally, but for this we should define what we praise, what we dislike and what is it to be a Railswarian.
__________________
— 2 points, by RWN 18, RWN 27
Being a Railswarian
  • Каждый из 33 тегов попадал в одну из крупных категорий: культура, собственные продукты, бизнес-модель компании, организационное управление, политики и процедуры, операционная деятельность, продакшн, обучение, работа с людьми, развитие бизнеса (маркетинг и продажи).
  • По количеству собранных голосов определили приоритеты направлений.
  • Последний этап верификации полученных данных — вторичное голосование всей команды за все теги и категории.
TypeCategoryTagVotersTotal pointsText from topics
GoodCultureDeveloping environmentRWN 23...10.0We’ve got stable and successful clients. And everyone has work to do and room to expand their skills.

Always evolve, Always improve

Most railswarians have grown to self-manageable, high-diligence people with good enough technical skills that allows to deliver good quality service to our clients.

ImproveRW LabsOwn productsRWN 7...17.0Try to crystallize own products strategy

Allocate more time of people for own products + hire missing people like growth hacker, Pdm. Than define model how and when any RWN can participate in own product.

We need to further invest in own product part of the company and nurture product culture. This is the only real chance to become a top notch employer and continue building strong team.

More railsware-owned projects. We need to expand in this direction.

ImproveBusiness modelCompany strategy and goalsRWN 15...10.0Clearly state company goals

Railsware as a product stopped its growth once 75$ rate was applied. As the result railsware may lose «old» railswarians, as there is a limited room for growth.

Unclear perspectives of business model evolution

Инструменты: Google Spreadsheets + Google Forms — для голосования и обработки результатов.

Этап 4. Реализация

Теперь у лидеров направлений есть конкретные приоритизированные данные о том, куда компании стоит двигаться дальше. Учитывая уровень зрелости и вовлеченности команды во все процессы, мы можем с уверенностью положиться на ее мнение и использовать полученные данные для выбора направления развития.

Далее дело за реализацией: определить стратегические цели компании -> тактику -> план действий -> контроль выполнения.

Все топ-пункты с указанием приоритета добавлены в структуру компании. Далее каждый из сотрудников может отметить свою заинтересованность в каждом из направлений работы. Так мы определяем проектные команды.

Итоги

Как принимать стратегические решения в холакратии, используя опыт всей команды, а не только личную интуицию? Мы сделали это следующим образом.

Организация процесса:

  • Сбор отзывов каждого сотрудника в формате топ-3 «что в компании хорошо» и топ-3 «что улучшить».
  • Верификация фидбэка в группах по 5-6человек — выбор топ-5 пунктов «хорошо» и топ-5 «улучшить» от каждой группы.
  • Классификация пунктов от команд.
  • Определение приоритета по каждому пункту (подход MoSCoW) путем общего голосования.
  • Распределение всех пунктов по структуре компании с указанием приоритета.

Инструменты:

  • GSuite — сильный акцент на Google Spreadsheets + Google Forms с применением DataBlending подхода.
  • BigMarker — для проведения крупных онлайн-митингов.
  • Инструмент для фиксации и трекинга прогресса по целям (можно использовать JIRA или другие инструменты, в нашем случае — структура компании).


Помимо процесса, воплотить идею в жизнь помогли следующие элементы холакратии:

Организационная структура:

  • Вместо привычной иерархии, компания состоит из проектных групп (скводов). Существуют отдельные скводы по разработке продуктов, финансовым проектам, организации корпоративных мероприятий и т. д.
  • Лидеры скводов контролируют реализацию проектов, обучают и ведут команду за собой, помогают в коммуникации целей и подходов всей компании. Они выступают связными между группами и организацией, помогают всем двигаться в одном направлении в нужном темпе.

Подходы к принятию решений:

  • В компании действует подход коллективного лидерства. Часто решения принимаются командой с помощью голосования.
  • Коллективное лидерство не работает без двух ключевых качеств команды — зрелости и проактивности. Без них существует риск получения некачественных решений, а проекты могут остаться не закрытыми.
  • В проектные команды входят специалисты разных профилей: разработчики, продакт-менеджеры, финансисты, менеджеры по работе с людьми. Так мы принимаем решения более объективно, учитывая мнения специалистов разных направлений.

Культура:

  • У каждого участника T-shapedкоманды есть свой взгляд сразу на несколько направлений работы компании. Так их решения учитывают разные аспекты жизни организации.
  • Культура открытой обратной связи помогает каждому делиться своим мнением с другими и совершенствоваться самому. Каналы по проектам также находятся в открытом доступе, поэтому каждый может отслеживать статус.


Важное условие — готовность компании доверить сотрудникам принимать решения — не только в рамках своих прямых обязанностей, но и на уровне всей организации. Так вы повысите осознанность и вовлеченность каждого участника. Как результат, получите более объективные оценки от всей команды и возможность применить их в дальнейшем стратегическом планировании.


Читайте также:Власть сотрудникам: нужна ли холакратия украинским IT-компаниям

Проблемы вхождения в IT: стоит ли идти на курсы

$
0
0

[Об авторе: Николай Лотоцкий — более 15 лет занимается разработкой программного обеспечения. Знаком со всеми этапами работы на проекте и развил карьеру от должности QA Engineer до Technology Expert. Несколько лет был JavaScript Software Architect и принимал активное участие в разработке сложных масштабируемых приложений. Кроме того, есть опыт работы с PHP, .NET, Python. Более трех лет проводит различные курсы и тренинги]

Как активно практикующий преподаватель я часто сталкиваюсь с жалобами, что в последнее время попасть в IT становится все труднее и труднее. С другой стороны, как человек, активно принимающий участие в разработке, не могу не отметить, что в отрасли есть устойчивый дефицит кадров. Давайте же разберемся, стоит ли начинать изучение IT на курсах и чего от них ожидать.

В данный момент наблюдается огромный наплыв «вайтишников». Понятно дело, экономический кризис — а тут зарплата в долларах, плюс нормальные офисы, обустроенное рабочее место, внятный график работы. Мотивация людей, стремящихся в IT, проста и понятна. Опять же, огромное число курсов с объявлениями в метро, что мол IT-шники на метро не ездят. У среднего индивидуума рождается мысль: «А чо? Чем я хуже?». Ведь я в метро, а они на метро не ездят! Пойду-ка я на курсы!

На курсах их встречает приветливый менеджер и обещает, что вот мы-то вас научим! Только надо оплатить. И тут мы сталкиваемся с первой проблемой. Когда-то в 90-егоды были популярны кассеты «Метод Илоны Давыдовой». Распространители сего метода обещали, что достаточно будет просто прослушать пять или шесть пленок в плейере, и вы заговорите на английском сами по себе. Так вот, в последнее время складывается впечатление, что 75% слушателей курсов желают увидеть этакий вариант «Метода Илоны Давыдовой». Теперь перейдем к проблемам.

«Я же заплатил, меня научат»

Это упорное убеждение есть везде. Я пропустил половину пар — но меня ж научат, я ж заплатил. Я пришел на пару с бодуна и не отстреливал ничего — но я заплатил, меня научат! Я не делаю домашнее задание — но я ж заплатил, меня научат! Я буду просто слушать, ничего не делать — но я ж заплатил, меня научат! Это первый бич слушателей, приходящих на курсы. Они считают, что им кто-то что-то должен. Да, вам должны. Вам должны отчитать нормально курс — и ничего более! За вас не должны делать домашние задания. За вас не должны посещать пары.

IT — это усердие и тяжелый труд

Самое главное, что я говорю студентам: IT — это не легкие деньги. Это 90% попа-часы и 10% понимание. IT — это усердие, это тяжелый труд, это кропотливая работа, которая на первый взгляд кому-то не видна, и на второй, кстати, тоже. Какой бы ни был классный преподаватель, он не сделает за вас главного — надо научиться работать. И если преподавателю не все равно, поверьте, он будет забивать на ленивых студентов и будет пытаться обучить усидчивых. Как по мне, это и есть задача преподавателя — отделять агнцев от козлищ. Давать шанс тем, кто его заслуживает, и предоставлять не заслуживающих его самому себе.

Возможно, программирование — это не ваше

Так бывает. Я, например, всегда хотел уметь лепить из глины. Но годы попыток вылепить что-то более-менее достойное и даже покупка гончарного круга — не дали желаемого результата. Выходили какие-то поделки раннего палеолита. В конце концов я понял, что это не мое. Я продал гончарный круг другому «гончару» и успокоился. Я сказал себе правду: это не мое. Так что будьте честными с самими собой. Это самое главное. Но если программирование это не ваше — это еще не повод не идти в IT. Там есть много различных отраслей и направлений.

Диплом не имеет никакой ценности

С советских времен мы привыкли, что без бумаги человек — не человек. Так вот, диплом, который вам дадут на курсах, не имеет абсолютно никакой ценности при поступлении на работу. Ценность имеют только знания. Диплом курсов — это даже не кусок картона в рамке, хотя рамку потом можно будет использовать, для того чтобы вставить в нее семейное фото. Так вот задумайтесь, стоит ли покупать рамку для семейного фото за такие деньги, если ее можно купить гораздо дешевле в любом переходе метро? Как по мне, не стоит. И опять же, на своем примере скажу, что студентам, которые, на мой взгляд курс, не прошли, я своей подписи на дипломах не ставлю. И обращаюсь к другим преподавателям: не ставьте подписи на дипломах тех людей, которые, на ваш взгляд, не выполнили требований курса. Есть еще опыт советской академической школы, где просто писалось: «Человек прослушал курс».

Выбирайте соответствующий уровень курсов

Всегда обращайте внимание, на какой уровень слушателей они рассчитаны. Не старайтесь сразу идти на курсы для продвинутых разрабов. Иногда бывает, на курсах по каким-то библиотекам на JavaScript видишь людей, которые толком и не отстреливают, что такое JavaScript вообще, и имеют смутные представления о программировании как таковом. Опять же, может, не стоит сразу лезть в дебри. Стоит сказать себе правду и начать с азов.

Коммерческие курсы в наше время — это бизнес

Очень часто уровень преподавательского состава оставляет желать лучшего. По сравнению с IT там платят сущие копейки. И вследствие этого на курсах работают либо энтузиасты, как, надеюсь, ваш покорный слуга, которые видят в этом возврат своего общественного долга, либо же там работают позеры, которые рекламируют собственную крутость, самоутверждаясь за ваш счет, в том числе и финансовый. Такие люди обычно тусят со студентами, что, на мой взгляд, делать нельзя ни в коем случае. Грань «преподаватель — студент» всегда должна быть. По окончании курсов многие студенты стали моими друзьями, но это произошло только по завершении курсов.

«А интересно ли мне это вообще?»

В конце концов стоит задать себе этот вопрос. Если не интересно — может, лучше не стоит идти в IT? В этой отрасли выгорают даже те люди, которым было когда-то интересно. А если работа вообще не очень-то в струю, то потом будете ее тихо ненавидеть и писать трэды про мажоров, покупающих сыры по 500 гривен.

Так стоит или не стоит?

По окончании коммерческих курсов в отрасль попадает, по моим расчетам, где-то 10% слушателей. Это не повод не идти на курсы. Это повод задать себе вопросы: «Мое ли это?», «Готов ли я работать или только буду имитировать бурную деятельность?». Далее стоит почитать интернет, нет, не отзывы о курсах, а данные о той технологии, которую вы собираетесь там изучать. Может, курсы и не нужны? Может, стоит завести GitHub и просто начать педалить? Может, стоит просто принять участие как падован в опенсорс-проекте? Там вы научитесь гораздо большему, чем смогут вам дать любые курсы. Заодно и сэкономите скудные бюджеты, кризис же в стране все-таки. И несмотря на мрачный тон статьи, пробовать стоит.


Я каждый раз, собираясь забрасывать преподавательскую деятельность, вспоминаю имена Д. Левада, М. Олешко, А. Захаров, Ю. Максимович, И. Сыров и другие. И тогда понимаю, что я должен идти в аудиторию. Должен потому, что хочу дать шанс именно таким ребятам — ребятам, которые хотят и могут, и именно для них, а не для кого-то другого я должен (именно должен) выполнять свой общественный долг. Потому что были люди, научившие меня, и теперь мое время отдавать долги.

P. S. Огромное спасибо моим учителям Андрею Коцарю (девелопмент), Дмитрию Сыркину (QA) и Максиму Кортунову (менеджмент). Именно благодаря вам я стал тем, кем стал.

Технічна співбесіда на Java-розробника: питання і поради щодо підготовки

$
0
0

[Про автора: Зеновій Верес — керівник освітнього напрямку Lviv IT Cluster, Solution Architect в компанії SoftServe, асистент кафедри комп’ютеризованих систем автоматики у Львівській політехніці]

За останні 10 років я провів понад 300 технічних інтерв’ю Java-фахівців — як Intermid, Senior рівнів, так і TechLead/Architect. Існує багато коментарів як кандидатів, які пишуть про неадекватні запитання, так і інтерв’юерів, які нарікають на недостатній рівень кваліфікації спеціалістів.

Хочу поділитися своїм підходом до проведення технічних співбесід, спостереженнями та загальними рекомендаціями, які, на мою думку, можуть допомогти кандидатам справлятися із завданнями успішніше. Звісно, існує багато різних методик та варіантів організації процесу, тому одразу наголошу — все, викладене нижче, є моїм особистим досвідом.

Цілі інтерв’ю та підхід

Перш за все, хочу почати з цілі технічного інтерв’ю. Я завжди ставлю собі завдання виявити сильні сторони фахівця. Згодом на основі цієї інформації рекрутер може пропонувати кандидата на конкретні проекти, які будуть цікаві йому, і де він зможе принести максимальну користь команді та компанії. Я не маю завдання завалити фахівця чи показати, що він чогось не знає. Для мене найважливіше — з’ясувати, що він знає.

Очевидно, що зробити об’єктивну оцінку рівня знань надзвичайно складно за короткий проміжок часу — як правило, технічне інтерв’ю триває близько години, іноді — півтори. Саме тому я готуюсь до інтерв’ю заздалегідь, спершу перечитую резюме та профіль кандидата (Candidate Profile), який він сам заповнює, оцінюючи свій рівень знань (knowledge area) та володіння технологіями. Перший блок співбесіди традиційно ознайомчий — я зазвичай задаю декілька вступних запитань, щоб познайомитися та розрядити атмосферу.

Досвід роботи

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

Запитання

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

Зважаючи на те, що я прихильник практичних завдань, то дуже часто описую певну задачу і прошу кандидата розказати, як би він її вирішив. Приклад такої задачі для архітектора/технічного лідера: для описаного вами проекту, яким чином ви б забезпечили підтримку додаткових 5000 користувачів одночасно; яким чином ви б організували заливання 1000 записів у базу даних з використанням Spring/JPA і т. п.

Відштовхуючись від отриманої інформації, я переходжу до запитань по об’єктно-орієнтованому дизайну. Я очікую, що людина із рівнем Intermid і вище знає, для чого слід використовувати шаблони проектування (GoF/GRASP/SOLID/Layered Arcitecture). Від кандидатів Senior-рівня я очікую розуміння, коли і котрий з шаблонів слід застосовувати, а також як виконувати рефакторинг коду із використанням шаблонів (рекомендую книгу Д. Кірієвскі «Рефакторинг з використанням шаблонів»). А також ситуації, коли використання шаблону може мати негативний вплив або бути невиправданим. Також до базового набору я відношу запитання по SQL/DB Design, програмного доступу до бази даних (DB Access), що включає в себе знання JPA/Hibernate. Звісно, від кандидата також очікується і знання мови програмування Java та змін, які були внесені у Java SE 8/9 s Java EE 8 (Jakarta EE). Зауважу, що на даний момент менше уваги приділяється багатопоточності, адже наявність багатьох фреймворків ізолює розробника від потреби створювати та керувати новими потоками.

У випадку наявності досвіду по Spring обов’язково задаю низку питань — перш за все, з якими компонентами цього фреймворка працював кандидат. А також запитання по REST/SOAP сервісах.

А тепер найцікавіше — які саме запитання слід очікувати на інтерв’ю? Я зазвичай починаю зі складніших запитань, але якщо кандидату вони виявляються заскладні, то поступово переходжу до простіших. Для економії часу читачів не буду наводити список стандартних запитань (чому слід перевизначати equals та hashCode, яким чином інтерфейси дозволяють реалізовувати інкапсуляцію та ін.) — по кожній із зазначених вище сфер є достатньо запитань в інтернеті. Зупинюся більше на запитаннях, пов’язаних з архітектурою, та запитаннях «з родзинкою».

Про архітектуру:

  1. Опишіть архітектуру проекту — яким чином ви її документували, як вносили зміни, що було причиною внесення змін? Назвіть основні якісні характеристики (quality attributes) системи — яким чином ви їх досягли, чому для системи важливі саме ці атрибути, які у вас є обмеження, які припущення ви зробили при проектуванні системи? Рекомендую почитати книгу Len Bass «Software Architecture in Practice», 3rd Edition.
  2. Які фактори вплинули на вибір фреймворків для проекту, які були альтернативи, що було основним фактором відхилити альтернативи? Яким проблеми виникали при виконанні запитів до бази даних, як ви їх вирішували? Як реалізовували REST-сервіси, яку бібліотеку обрали, як реалізовували HATEOAS-принцип?
  3. Яку версію Java використовували на проекті? Що для вас є найважливішим у версії Java SE 8/9? Що входить в Java EE, яким чином відбувається реліз Java EE (Jakarta EE)? Що саме з Java EE ви використовували? Чи стикалися ви з out of memory error? Якщо так, то як саме вирішували та відслідковували використання ресурсів? Чи стикалися з memory leak? Якщо так — як шукали причину, як організовували роботу з пам’яттю?

Звісно, це лише декілька запитань з великої кількості можливих, але зазвичай саме вони допомагають зрозуміти рівень знань та досвіду роботи кандидата на проекті. Інколи буває, що людина губиться у відповідях, що, не виключено, є результатом стресу, тому я переключаюся на теоретичні запитання, щоб кандидату було комфортніше і він заспокоївся. А також я не задаю всі ці запитання одночасно :)

Каверзні запитання

Іноді я відходжу від стандартної канви і ставлю запитання зовсім іншого характеру. Роблю це не для того, щоб підловити, а щоб зрозуміти хід думок кандидата. Трапляються випадки, коли людина завчила запитання суто по Java і навіть не хоче подумати, хоча відповідь може бути дуже простенькою. Наприклад, запитання по типах колекцій є достатньо стандартними. А ось запитання на кшталт «при яких операціях відбувається економія часу, коли ми працюємо з HashMap та за рахунок чого відбувається така економія; які операції при цьому відбуваються повільніше, у порівнянні з ArrayList» показує, наскільки кандидат розуміє принципи роботи даної колекції. Крім того, така методика зазвичай використовується саме для того, щоб подивитися, як людина відреагує на такі запитання. Інколи «правильна відповідь» не найважливіше, що ми хочемо почути. Такі завдання дозволяють нам побачити ваші soft skills, глибину мислення та підхід до вирішення непростих завдань.

Поради

  • Найголовніша порада — будьте чесними, починаючи з резюме. В ньому варто чесно відобразити технології та фреймворки, з якими працювали саме ви, а не які в цілому використовувалися на проекті. Пам’ятайте, що на початку інтерв’ю кожен кандидат має 100% довіри — з кожною невідповідністю цей кредит падає і з кожним разом все швидше.
  • Відображайте в резюме всі проекти, над якими працювали, навіть якщо їх багато. Це дозволить побачити всю картинку розвитку вас як фахівця. Також це дає уявлення, чи неперервний досвід ви мали, чи були перерви, з якими технологіями стикалася.
  • Чесно розкажіть про ваше особисте ставлення до проекту — подобався\не подобався, чому зупинилися саме на таких технологіях, чи були виклики і як з ними справлялися, яка була взаємодія команди в таких випадках, як приймали рішення. Це дозволить зрозуміти, наскільки ви були залучені до проекту та жили ним, а також який ви командний гравець.
  • Ставте запитання. Переконайтеся, що перед тим, як почнете відповідати чи розв’язувати задачу, ви правильно її розумієте. Не варто часто просити повторити запитання. Якщо хочете дізнатися більше про проект, команду чи компанію — запитуйте. Відсутність запитань може означати, що ви не зацікавлені в компанії чи позиції, на яку проходите співбесіду.
  • Зробіть домашнє завдання. Під час інтерв’ю з рекрутером вам надають первинну інформацію про проект — не соромтеся розпитувати та просити трохи більше деталей. Це дозволить вам зрозуміти специфіку проекту та краще підготуватися до технічної співбесіди — освіжити теоретичні знання, заглянути в код, зрозуміти, яка інформація з вашого резюме може бути найактуальнішою.
  • Заспокойтеся та не нервуйте. Співбесіди — це стресова ситуація для будь-кого. Можливо, ви подалися на позицію, на яку дещо не вистачає кваліфікації, чи навпаки — здається, що в описі вакансії йдеться саме про вас. В будь-якому випадку ви хвилюєтесь. Важко розкрити всі свої переваги, коли нервуєшся. Тому заспокойтеся, підготуйтеся та розкрийте свої сильні сторони.
  • Погугліть перед інтерв’ю. На інтерв’ю задають достатньо стандартні запитання, до яких можна і потрібно підготуватися.
  • Запишіть запитання, на які ви не знали відповіді під час співбесіди або незадоволені своєю відповіддю. Потім пошукайте відповіді для себе — це дозволить вам розвиватися.
  • Завжди просіть надати інтерв’юера відгук про інтерв’ю — які у вас виявлені сильні сторони, а над чим слід попрацювати.

Как харизма лидера мешает развитию компании

$
0
0

[Катя Осадчук — СEO Indigo Tech Recruiters, экономист, профессиональный психолог и в прошлом HRD с более чем 10-летнимопытом]

В какой-то момент жизни основатель компании понимает: неплохо, чтобы бизнес работал на него, а не наоборот. Ведь именно с этой целью бизнес и создавался — реализовать классную идею в продукт или услугу, собрать команду единомышленников, найти клиентов, начать получать кучу денег и наслаждаться результатами, оставив важный след в истории. Желательно лежа на пляже, взбираясь в горы или просто находясь рядом с близкими людьми.

Но что делать, если собственник сформировал компанию вокруг персонального бренда? Проще говоря, вокруг своей личности. И его уход означает распад бизнеса из-за потери известности.

Как обычно зарождается бизнес?

У человека есть идея, которая превращается в цель. Человек горит этой идеей и зажигает других людей. И вот в момент, когда у идеи появляются последователи, которые готовы вместе идти к цели, вместе трансформировать ее в продукт или услугу — автор идеи становится собственником компании и лидером своей команды.

Именно собственник формирует круг клиентов и привлекает партнеров, сотрудников своей харизмой и бесконечной верой в продукт. Лучшие хедхантеры — это собственники компаний. Они могут с такой страстью в глазах рассказать о грандиозных планах, что самые крутые сотрудники готовы прийти на более низкую зарплату ради общей цели и ценностей. И я не говорю об этом как о манипуляции. Собственник верит в свою идею и передаёт эту веру другим.

В самом начале все действия в компании и причина этих самых действий неразрывно связаны. Основатель может лично рассказать о своих идеях и планах каждому сотруднику и клиенту — и, конечно, его энергия и страсть вдохновляют людей на то, чтобы присоединиться к команде.

Плюс такого подхода — эмоциональная связь с клиентами и сотрудниками через теплые отношения. Минус — это не масштабируется. Бизнес, построенный на харизме собственника, имеет ограничения в росте.

Собственник не может заряжать своим энтузиазмом каждого из 1000 сотрудников

Проблема в том, что когда компания начинает расти и случаются первые успехи, основатели перестают рассчитывать только на себя. Они нанимают людей, которые в свою очередь тоже нанимают людей и те тоже нанимают людей.

Новые люди начинают принимать решения, и эти решения основаны на том, ЧТО мы должны сделать и к ЧЕМУ мы должны прийти. То, ЧТО они делают, увеличивается — доход, прибыль и другие показатели улучшаются. Однако ПОЧЕМУ они это делают, становится неясным. Собственник не может каждый день заряжать своим энтузиазмом каждого из 100-300-1000 сотрудников.

И здесь начинается самая сложная проблема, с которой сталкивается каждая компания. Появляется разрыв — активности растут, доходы растут, но теряется миссия.Компания успешна, но сотрудники и клиенты начинают говорить: «Да вроде все хорошо, но что-то не то». Клиенты и кандидаты постепенно начинают уходить к конкурентам.

И тогда компания начинает изучать конкурентов и спрашивать клиентов: что нам сделать, чтобы вы были довольны? Как нам превзойти конкурентов и куда двигаться дальше? Хотя вначале своей работы никто не спрашивал об этом — команда шла по собственному пути, у нее было много энергии и энтузиазма для этого. Помните знаменитую фразу Генри Форда: «Если бы я спросил у своих клиентов, что им нужно, то они бы попросили более быструю лошадь».

Разрыв происходит даже в таких компаниях, как Apple. В 1985 совет директоров уволил Джобса и компания пошла вниз. Такая же история была и со Starbucks и Dell. И всем собственникам пришлось вернуться. Почему? Потому что они ушли вместе с энергией, миссией, видением, креативностью, которая не была передана дальше. Она была в их головах, в их личностях, в их харизме.

Это не значит, что собственники должны оставаться у руля вечно. В конце концов, мы все знаем, что случилось со Стивом Джобсом. Как это ни прискорбно.

Это значит, что компания должна формировать свой бренд, свою идентичность на основе миссии, видения и ценностей, в которые верит основатель и его последователи — команда, клиенты.

То, о чем вы думаете, что делаете и о чем говорите, — должно совпадать

Есть 2 способа ведения бизнеса:

  1. Через вдохновение, доверие, отношения, общие цели и ценности.
  2. Через манипуляцию или стимулирование.

Мы часто видим, как бизнес действует через манипуляцию и стимулирование — демпинг, воровство чужих идей, приукрашивание реальности. А вот как созидать, вдохновлять и вдохновляться — знают не все.

Почему Apple успешен? Почему машины Tesla покупают, несмотря на внушительную цену и пока недостаток электрозаправок? Почему значок Nike люди вставляют себе в уши в виде сережки или даже наносят на тело в виде татуировки? Это же корпоративный логотип! Почему? Потому что это говорит что-то о них!

Когда человек открывает крышку Maка в кафе, он хочет показать всем: смотрите, я креативный, я успешный, в моих ценностях — think different. Я — особенный.

Да, без крутого маркетинга и больших бюджетов всемирную лояльность к бренду не сформируешь. Но важно понимать, что особенность известных брендов в том, что они продвигают идею, в которую верят и ценности, которым следуют.

То, о чем они думают, что делают и о чем говорят, — совпадает. Нельзя написать на сайте красивые слова, которые не являются действительностью, и при этом ждать, что у тебя появятся последователи. Клиенты появятся: в лучшем случае они не станут последователями, в худшем — разочаруются, потому что громкие лозунги не соответствуют действительности.

И это касается как клиентов, так и сотрудников. Все пекутся о бренде работодателя, но мало кто задумывается о том, что он неразрывно связан с брендом компании и формируется так же.

Когда нам в Indigo Tech Recruitersважно было понять, кто наш клиент — мы свели всю статистику самых прибыльных сделок за прошлый год и затем составили портрет таких клиентов, чтобы определить, в чем наша ценность для них — то самое уникальное торговое предложение. Когда понятен портрет, ценность и конкурентное преимущество, становится понятно, какие изменения внедрить для полного удовлетворения клиента и какими месседжами, через какие каналы, инструменты и визуализацию продвигать свой бренд.

Так же и с сотрудниками — поймите, кто ваши топ-перформеры и какие они. Это ядро вашей целевой аудитории — и для формирования правильной культуры внутри компании, и для формирования бренда работодателя, а также привлечения подходящих сотрудников.

Операционные круги бренда — простая визуализация формирования любого бренда, которая позволит постепенно перейти от бренда, основанного на личности, на бренд, основанный на ценностях и миссии основателя, но существующий без него.

Операционные круги бренда

Технологии не помогают формировать доверие

Что еще важно учесть? Рост бизнеса через лояльность, вдохновение и следование идеи не нарабатывается только трафиком или технологиями.

Технологии — это чудесно. Я верю в технологии. Я верю в то, что они делают нашу жизнь комфортной, безопасной и более интересной. Но технологии, холодные рассылки и SEO не помогут в формировании доверия. А доверие — это то без чего невозможна лояльность к бренду.

Технологии не помогают в формировании человеческих взаимоотношений. Да, они могут помочь нам познакомиться с любимым человеком на Tinder, Badoo и т. д. Не знаю весь рынок сайтов знакомств. Но общаясь только в Тиндере, мы не начинаем доверять человеку и не скажем — пожалуй, это мой человек на всю жизнь и нам не обязательно видеться вживую, чтобы в этом убедиться. Настоящие человеческие отношения вне компетенции технологий.

Существует такая вещь, как зеркальные нейроны. Они помогают формировать эмпатию и устанавливать связь между людьми. Когда нам кто-то улыбается, в нашем мозге активизируется участок, как будто мы сами улыбаемся. Так возникает эмпатия. Через эмпатию устанавливается доверие.

Именно поэтому холодное письмо и даже телефонный звонок никогда не заменит личную встречу, и даже видеоконференция не сработает так, как живое общение за чашкой кофе. Все они должны быть нацелены на то, чтобы в конце концов увидеться с человеком. Именно поэтому Стив Джобс, Марк Цукерберг, Илон Маск не упускали случая выступить публично на большие аудитории.

Для того, чтобы у компании были последователи — нужны 3 важные вещи

1. Мы должны понимать, зачем мы делаем то, что делаем.
Если мы не знаем, то как об этом будет знать кто-то еще? И это про миссию. Да, цель каждой компании заработать деньги, цель каждого человека — обеспечить себе и близким комфортную жизнь, и это тоже про деньги. Но не все про деньги.

2. Мы должны определить, как мы это делаем.
И это про видение и про ценности. По каким принципам мы работаем, а по каким нет.

3. Мы должны верить в то, что мы делаем.
Когда мы делаем то, во что мы верим. Когда мы поступаем в соответствии с ценностями, которые разделяем, случается что-то важное. Появляется собственный психологический комфорт и доверие людей к тому, что мы делаем. Кандидатов, клиентов, партнеров и даже нашей семьи.


Люди верят в то, во что верим мы. Они становятся приверженцами так называемого бренда.

И этот бренд перестает быть основан только на личности одного человека. Ценности основателя ложатся в ДНК компании, и компания действует, исходя из них.

И тогда основатель может быть уверен, что бизнесом управляет команда единомышленников, а он/она может наконец-то чаще бывать с семьей, или лежать на пляже, или взбираться в горы, или строить новые бизнесы.

Ах да... при условии, что нанят толковый СЕО. Но об этом в другой раз...

Проблемы вхождения в IT: почему кандидаты не подходят, или Что делается не так

$
0
0

[Об авторе: Николай Лотоцкий — более 15 лет занимается разработкой программного обеспечения. Знаком со всеми этапами работы на проекте и развил карьеру от должности QA Engineer до Technology Expert. Несколько лет был JavaScript Software Architect и принимал активное участие в разработке сложных масштабируемых приложений. Кроме того, есть опыт работы с PHP, .NET, Python. Более трех лет проводит различные курсы и тренинги]

В прошлой статьея затрагивал тему подготовки соискателей для вхождения в отрасль. Теперь давайте же посмотрим на проблему нехватки специалистов с другой стороны баррикад. Никогда проблема не бывает односторонней, если в ней задействована больше, чем одна сторона.

Техлид хочет видеть в соискателе самого себя

Сначала давайте разберемся, кто создает описания вакансий? Их создают техлиды. Как по мне, основная проблема в том, что каждый техлид хочет видеть в соискателе самого себя. То есть берем свой опыт, отнимаем от него 5-6 лет,берем свой багаж технологий, отнимаем от него то, что за эти 5 — 6 лет совершенно устарело, и вуаля — готовы требования к кандидату. По итогу нам нужен перспективный джун с опытом работы не менее 10-12 лет,со знанием PHP, JavaScript, .NET и Python и желанием выучить GoLang. После этого добавляется английский, знание процессов и методологий гибкой разработки. И как вишенка на тортике — «Большим плюсом будет»: опыт работы с BigData, опыт в создании нейронных сетей и т. д. Так гордо вырисовывается пунктиром портрет вашего техлида, помолодевшего на 5 лет и не отягощенного знаниями COM, VisualBasic и WinForms.

Когда рекрутер получает такую заявку, полагаю, что волосы у него на голове и не только на голове, встают дыбом. Потому что, если и есть такой человек, то это Толик из R&D, который составил описание требований и который и так уже работает у нас. Далее все бегут к проектному менеджеру, к которому, собственно, человек и пойдет работать, а он гордо заявляет рекрутерам: «Такие люди есть, и их много, вы просто плохо ищете». Ну и, как говорится, завертелось.

Зреет всеобщее недовольство

Теперь мы перемещаемся на два-три месяца вперед. Поиск кандидатов не принес желаемых результатов. Проектный менеджер давит на рекрутеров, потому что они плохо ищут. Всем рекрутинговым агентствам были обещаны бонусы, превышающие средний бюджет маленькой африканской страны. Техлид, который составлял вакансию, рассказывает, что в его время и народ был смышленее, и деревья выше, и вообще на дворе сплошной мрак, деградация, разврат и коррупция. А проектная команда либо же овертаймит, как Стаханов в забое, или же многие проектные активности были поставлены на паузу.

В любом случае заказчик теряет деньги, качество продукта страдает, а также зреет всеобщее недовольство. У проектного менеджера — рекрутерами, у команды — овертаймами, рекрутеры так вообще ненавидят всех — от техлида до кандидатов, которые каждый раз не подходят по критериям (ребята, без обид, но так оно и есть).

Что делать

Надо разбираться, что мы делаем не так? Как можно выйти из тупика, который не выгоден никому. В этой ситуации все находятся в проигрыше: перспективный кандидат не может найти работу, мы не можем удовлетворить всех потребностей заказчика, команда не может нормально функционировать, так как у ее членов совершенно нет времени. Конечно, можно пойти по пути «сильных» людей и обвинять в своих несчастьях кого-то третьего, а лучше всего списать все на конъюнктуру рынка и поколение дегенератов, но мы не будем так делать и разберемся, что мы делаем не так.

У меня есть одно правило. Если каждый новый шаг требует у меня на порядок больше усилий, я останавливаюсь и пытаюсь понять, что все-таки идет неправильно. Может дело не в обстоятельствах, а во мне? Может изначально, что-то было сделано неверно?

Первое — нужно описывать не того, кого хочется нанять, а обязанности, которые будет исполнять тот или иной работник. Если нам нужен формошлеп, то не стоит писать в требованиях «большим плюсом будет знание теории нейронных сетей». Нет, я не предлагаю снизить планку в ноль. Но, по-моему мнению, планка прохода должна быть снижена до приемлемой величины, и задирать ее не имеет никакого смысла — можно потерять очень хороших перспективных кандидатов.

Второе, что стоит сделать, — это поговорить проектному менеджеру с техлидом. Техлид должен осознать, что если не будет человека, то ему придется делать все самому, а также, самое сложное, — что сам он не успеет сделать всего намеченного, потому что у него есть семья или личная жизнь, хобби, планы на отпуск и так далее. Да, он может описать своего идеального кандидата. И рекрутеры могут параллельно с низким приоритетом искать этого супермена. Но полагаться на такую позицию нельзя ни в коем случае, так как ее закрытие — дело случая. А все, что связано со случайностями, а не четким процессом, нам в бизнесе не подходит. Да, мы можем себе позволить положиться на волю случая, когда у нас есть неограниченный ресурс времени, но это бывает редко и в основном только в продуктовых конторах.

Третье, что надо сделать, — поговорить с рекрутерами. Может, ищем не по тем критериям? Может, стоит показать пару-тройку страниц LinkedIn, по всем параметрам подходящих под требования? Может, стоит рассказать, кого еще мы можем рассмотреть, чтобы расширить поле поиска. Техническим парням нужно осознать, что рекрутеры, какие бы толковые они ни были, не обладают тем бэкграундом, который позволил бы им расставить допуски в поиске кандидата.

И четвертое, самое сложное. Надо мыслить на перспективу. Может, стоит взять кандидата на вырост? Может, кому-то стоит дать шанс? В некоторых случаях можно пойти на минимальный риск. Если вы видите, что человек адекватен, ему интересен ваш проект и он полон способности работать, то почему бы и нет. Вам же кто-то когда-то дал первый шанс? Попробуйте, по крайней мере, у вас всегда есть в запасе испытательный срок. Да этим не стоит злоупотреблять, но и пренебрегать этой возможностью тоже не стоит.

Итак

  • Всегда надо исходить из должностных обязанностей человека, а не из хотелок к нему, иначе дело затянется на неопределенный срок.
  • Нельзя выставлять завышенные требования. Они должны быть составлены на основе тех должностных требований, которые вы предъявляете к кандидату.
  • Не бойтесь давать адекватным, я подчеркиваю, адекватным людям шанс. Пробуйте брать людей на вырост.
  • Пытайтесь смотреть на мир реально и не пытайтесь воевать с окружающей реальностью, потому что именно она определяет ваше бытие.

Кризис IT-образования: как быть компаниям и молодым специалистам

$
0
0

[Максим Почебут — директор образовательных программ ЕРАМ в Украине, вице-президент ассоциации «ИТ Украина». Прошел путь от преподавателя до заместителя декана факультета, является кандидатом технических наук, доцентом. Развивает сотрудничество ЕРАМ с 15 ведущими техническими вузами Украины, реализовывая образовательные программы для студентов]

Давайте рассмотрим, что движет «миллениалами» в карьерных устремлениях, почему онлайн-обучение не «похоронит» классические вузы, чем хорош ранний старт и как мировая система образования пытается противостоять кризису.

Об украинской специфике мирового кризиса образования

Мы живем в эпоху настолько быстрых перемен, что нам часто не хватает гибкости для адаптации к ним. Эта проблема характерна для всех сфер и отраслей: например, крупному бизнесу не хватает управленцев «нового формата», способных оперативно реагировать на вызовы современности. Перемены в индустриальном сегменте диктуют спрос на специалистов в тех отраслях, которые еще 5-7лет назад не существовали вовсе. Образовательная сфера не успевает оперативно трансформироваться, и это проблема мирового масштаба, которую обсуждают на всех профильных конференциях и форумах, пытаясь найти пути решения.

В Украине глобальный образовательный кризис имеет национальную специфику, обусловленную экономическими и политическими факторами. Приоритетная проблема украинского образования — борьба за удержание кадрового вузовского состава, в то время как мировое образование сосредоточено на поиске способов удовлетворения возникшего спроса на высококвалифицированные профессиональные кадры. Экономическая ситуация в стране не позволяет предложить конкурентные зарплаты хорошим преподавателям в университетах, что побуждает их переходить в «практики».

Ведь IT-индустрия на сегодняшний день создает очень достойные условия. К сожалению, стимула возвращаться назад к преподавательской деятельности у них нет. Плюс, из-за недостаточного финансирования страдает материально-техническая база вузов.

На фоне этих проблем очень агрессивную борьбу за лучших абитуриентов проводят наши ближайшие соседи — Польша, Венгрия, Словакия. Они предлагают сравнимый образовательный контент, усиленный лучшей материально-технической базой. Кроме того, огромный плюс, например, соседней Польши — R&D центры крупных технических компаний, таких как Intel, Google, при университетах. Уже со второго курса они предлагают лучшим студентам практику, проекты, стажировки. Их стратегия проста — нужно находиться рядом с «мозгами» — и она работает. К сожалению, политическая, законодательная и экономическая ситуация в нашей стране пока отпугивает компании-гиганты от реализации аналогичных проектов в Украине.

Учитывая все перечисленное, лучшие абитуриенты все чаще выбирают университеты соседних стран, и это также негативно сказывается на качестве украинского образования в целом.

Добавим оптимизма: наше IT-образование держится на персоналиях. Выдающиеся личности, фанаты своего дела есть в каждом вузе. Такие люди формируют костяк и ценности коллектива. Они авторитетны и хорошо представлены в украинском IT-сообществе, к их мнению прислушиваются, у них хотят учиться. Именно эти профессионалы способны вдохновлять студентов, быть теми наставниками, которых мы запоминаем на всю жизнь.

Об онлайн-образовании

Опасения, что онлайн-обучение «похоронит» традиционное классическое образование появились около 8 лет назад. Однако за этот довольно продолжительный период времени ничего подобного не произошло, хотя большое количество платформ на сегодняшний день предлагают слушателям свой контент бесплатно.

По моему мнению, причина в том, что самостоятельное обучение требует огромной самомотивации. По разным оценкам, только от 10% до 40% людей, начавших курс, успешно его заканчивают. Этот показатель варьируется в зависимости от платформы и курсов. Но и это еще не все. Даже тому студенту, который усердно выучил материал и успешно прошел тесты, необходим ментор — более опытный человек, который поможет разобраться в некоторых нюансах, проверит полученные знания, даст обратную связь, рекомендации. А зачастую за менторское время нужно платить. Обучаясь исключительно онлайн, добиться успеха невозможно. И эксперты, и критики, и футуристы считают, что будущее за смешанными типами обучения, включающими онлайн, классические тренинги, проектное обучение.

О том, почему success stories могут оказать «медвежью услугу»

Характерной проблемой последних лет является переоценка молодыми специалистами своих профессиональных качеств. «Миллениалы»-максималисты, вдохновленные историями успеха своих «ярких» ровесников (а есть немало молодых людей, достигших карьерных высот и зарабатывающих солидные деньги в 24-25 лет),переоценивают свою профессиональную подготовку. Некоторые считают, что небольшого багажа знаний, зачастую не подкрепленного опытом, достаточно для того, чтобы претендовать на высокую оплату труда. Получается, что хорошие мотивирующие примеры стимулируют не к развитию, а к желанию получить все «здесь и сейчас».

Более того, некоторые, преимущественно небольшие, «незрелые» компании соглашаются на запросы молодых соискателей, тем самым оказывая молодежи «медвежью услугу» и необоснованно «разогревая» рынок. Да, они удовлетворяют сиюминутные амбиции, но не стимулируют к дальнейшему росту и развитию, что негативно сказывается в долгосрочной перспективе. Крупные компании обычно придерживаются другой стратегии: они ориентируются на карьерные планы, помогая молодым специалистам набираться практического инженерного опыта и выстраивать профессиональный путь поэтапно.

Об образовательных программах ЕРАМ

Образовательные программы ЕРАМ стартовали в Беларуси в начале 2000-хгодов и впоследствии масштабировались на другие страны. Цель бизнес-ориентирована и проста. Мы даем студентам необходимые специализированные знания, чтобы они начали сотрудничать с нашей компанией. К сожалению, пробелы в знаниях выпускников, а также отсутствие минимального практического опыта, не позволяют нам сразу брать их на свои проекты.

На данный момент мы работаем с 15 крупнейшими украинскими университетами. В рамках сотрудничества мы проводим огромное количество профориентационных (извините за это ужасное советское слово) и технических ивентов, приглашаем интересных спикеров, рассказываем о возможностях карьерного роста. Согласитесь, зачастую студентам неоткуда брать нужную информацию подобного рода. Несмотря на кажущееся обилие ее в интернете, она чаще всего неправильно структурирована и может просто оттолкнуть. Иногда студентам, особенно молодым, лень разобраться в «страшных» аббревиатурах и понятиях, поэтому подобные мероприятия помогают им найти свой путь в карьере.

Кроме того, мы помогаем университетам обновлять материально-техническую базу и ежегодно оказываем поддержку командам по участию в различных турнирах по командному программированию. В этом году команда от Киевского национального университета им. Шевченко при поддержке ЕРАМ отправилась на финал чемпионата мира по программированию (ACM) в Пекин.

Мы работаем не только со студентами. В прошлом году стартовала наша новая инициатива — краткосрочные (до 4 недель) программы стажировки для преподавателей. Частично проблема образования заключается в том, что университетские лекторы не обладают актуальными знаниями, хотя именно они должны «держать руку на пульсе». Причин много. Иногда у них физически нет времени на самостоятельное повышение квалификации, а тот «апгрейд», который им предоставляют университеты, проходит в формальной форме, да и нет должной мотивации. Я, как практикующий тренер и преподаватель, знаю по опыту, насколько сложно подтолкнуть себя к изучению чего-то нового, если вокруг не происходит ничего значимого и вдохновляющего.

Наш проект волонтерский, мы проводим его во время летних или зимних каникул, чтобы не отвлекать от основной работы. Рассказываем об индустрии, о проектах, даем возможность практического погружения, делимся свежими трендами и технологиями. Проект реализуется в Киеве, Харькове и Львове, в нем уже приняли участие более 50 преподавателей.

О свитчерах и равных шансах

Популярность IT-индустрии с ее стабильностью, высокими заработками и комфортными условиями работы привела к тому, что все большее количество людей решает сменить вид деятельности. Зачастую за их плечами определенный стаж в другой отрасли и базовое образование, никак не связанное с технической отраслью. Значит ли это, что так называемые свитчеры что-то теряют в карьерных возможностях? Действительно, на первых курсах закладывается база знаний для карьерного роста инженера, но если мы возьмем за 2 стартовые точки начало профессионального пути человека, прошедшего технический вуз, и не прошедшего, то на шансы на успех у них равны. Отличие только в том, что у того, у кого нет базовой подготовки, путь к успеху может быть дольше и кривая его будет несколько иной. С другой стороны, нельзя сказать, что все, прошедшие технический вуз, «крутые ребята». Очень важно хотеть и уметь учиться, правильно применять знания, которыми делятся с тобой преподаватели и менторы.

К примеру, гуманитария, решившего строить карьеру в IT, ничто не останавливает. Главное — иметь критическое мышление, желание учиться и развиваться, быть мотивированным. Как правило, свитчеры черпают знания не только в процессе работы, но и слушают дополнительные курсы, тренинги. И часто их запредельное стремление к успеху приводит к впечатляющим результатам. Более того, с развитием индустрии более примитивные операции автоматизируются, и на первый план выходят способности находить нестандартные решения, с чем гуманитарии иногда справляются даже лучше.

О ранних стартах, английском языке и проактивной позиции

Если я посоветую студентам только полноценно учиться, не уделяя внимания практике, все 5-6 лет,я буду нечестен и по отношению к ним, и к самому себе. Процитирую одного из уважаемых преподавателей крупного киевского университета: «Мы даем студентам возможность учиться смешанно, потому что на данный момент мы не способны дать им все необходимое для работы и успеха. Если будут создаваться искусственные административные препоны, мы просто поведем себя не честно по отношению к нашим будущим коллегам, мешая получить дополнительные знания и конкурентные преимущества».

Мой совет первокурсникам — пользуйтесь теми неограниченными возможностями, которые сейчас вам предоставлены. Ходите на технические ивенты, тематические встречи, тренинги, ярмарки вакансий, следите за DOU порталом и календарем. Просматривайте сайты крупных компаний, где можно найти четкий перечень знаний и компетенций, требующийся от молодого специалиста. Общайтесь, заводите связи, придерживайтесь проактивной позиции. Определите свою цель и идите к ней, отбросив лень и сомнения. Не тешьте себя иллюзиями. Ожидание того, что все придет само и без усилий, не оправдывается.

Старайтесь брать максимум из каждой составляющей образования современного успешного человека — классическое образование, курсы и практика — идите в университет, учитесь, решайте интересные и сложные задачи. Несмотря на все проблемы современного образования и критику вузов, из 10 преподавателей вам наверняка попадется хотя бы один, который даст вам «путевку в жизнь».

И главный совет, с него следовало бы начать, повторить и им закончить: учите английский!

Как сократить ручное тестирование и можно ли без него обойтись

$
0
0

С развитием технологий мир меняется. Все больше функций и процессов автоматизируются, все менее востребован ручной труд. И это применимо не только к рабочим специальностям, но и к самой IT-индустрии. Manual QA как отдельная специализация может со временем уйти в историю.

Вокруг тестирования ходит очень много разговоров, но на практике крайне мало команд качественно покрывают тестами свой код. В статье я расскажу о том, как мы в Railsware трансформировали привычный процесс ручного тестирования в набор подходов к разработке.

Мы говорим только о собственном примере, но он является достаточно показательным, так как в портфолио компании присутствуют продукты и платформы различных размеров и сложностей для разнообразных индустрий.

Разработка с ручным тестированием

До 2011 года наша команда работала по весьма привычному алгоритму разработки программного обеспечения, ему же следует большинство аутсорсинговых фирм на сегодняшний день.

Проджект-менеджеры готовили задачи инженерам, те, в свою очередь, поскорее писали код, не особо заботясь о качестве, и отдавали разработанную фичу на тестирование. QA обычно находил множество багов и нестыковок, отправлял фичу на доработку. И этот цикл повторялся по нескольку раз. Причем зачастую, поправив баги в одном месте, инженеры порождали новые в других местах.

Тогда ходило много разговоров о юнит и интеграционном тестировании, но на практике не так много команд (включая нас) применяли эти подходы. Если за тебя баги будут искать другие люди, писать тесты — уже не твоя головная боль.

Я не утверждаю, что во всех проектах, где есть отдельные QA команды, не пишутся тесты, но такое совпадение можно заметить достаточно часто.

Трансформация подходов к тестированию продуктов

В процессе перехода Railsware к модели software consultancy, о которой мы писали ранее, нам необходимо было значительно повысить качество создаваемых продуктов и, соответственно, квалификацию команды. Ведь без этих составляющих выйти на новый виток развития компании не представлялось возможным. Как часть процесса трансформации, был усовершенствован и наш подход к тестированию.

Мы изучали успешные примеры на рынке и экспериментальным путем выявили для себя несколько ключевых подходов и техник, которые используем и сегодня:

  • Юнит-тесты и интеграционные тесты — неотъемлемая часть кода. Абсолютно все инженеры на всех проектах обязаны сопровождать фичи автоматическими тестами.
  • Непрерывная интеграция (Continuous Integration) — система, при которой автоматические тесты прогоняются при любом изменении кода. На рынке существует множество решений для такого рода автоматизации, вот некоторые из них: Jenkins, Circleci, Travis CI.
  • Обязательное использование валидаторов качества кода, таких как Rubocop, ESLint.
  • Pull Request Policy. Любой код, который попадает в основную ветку проекта (master branch), должен быть проверен и утвержден одним или более участником, но не самим разработчиком.
  • Парное программирование — техника разработки, которая предполагает совместную одновременную работу двух инженеров над одним кодом.

При дисциплинированном применении перечисленных подходов, технический долг в вашем проекте существенно сократится. Следовательно, сократится и количество багов в системе.

Значит ли это, что мы полностью исключили мануальное тестирование?

С внедрением подходов, описанных выше, загрузка мануальных тестировщиков на проектах существенно сокращалась. Для full-time загрузки тестировщиков привлекали part-time сразу на несколько проектов (если говорить о небольших и средних продуктах). Но эта модель оказалась неэффективной: QA не погружался полностью в контекст тестируемого продукта, не был в курсе всех принимаемых решений. Такая вовлеченность приносила больше проблем, чем пользы. Потому мы покрыли функцию мануального тестирования с помощью еще одного подхода, который позаимствовали у наших голландских коллег по проекту Philips Directlife (у них на тот момент уже не было собственных QAs).

TestFest — это сессия мануального тестирования, которая проводится перед большими релизами. В ней участвуют инженеры, продакт-менеджеры, иногда UI/UX дизайнеры, команда со стороны клиента. Об этом подходе мы напишем отдельную статью, но если коротко, то на несколько часов вся команда становится мануальными тестировщиками.

Результат TestFest — список багов, каждый из которых получает свой приоритет и добавляется в общий скоуп.

Применение данного подхода естественным образом убрало какую либо потребность в отдельном человеке на позиции manual QA.

Выводы

Railsware постепенно ушла от необходимости иметь отдельного manual QA в команде.

В процессе трансформации бизнес-модели мы, в первую очередь, стремились повысить качество кода. За счет применения новых подходов к разработке количество багов значительно уменьшилось, как и объем работ для тестировщиков. Part-time загрузка QA не позволяла им полноценно погружаться в контекст продукта, что сказывалось на результатах работы. В итоге, роль мануал QA была полностью исключена из организационной структуры, а функция тестирования распределена между участниками команды.

Разработчики, в свою очередь, смогли значительно улучшить качество создаваемого кода за счет изменений подходов к разработке. Это повысило их квалификацию, и, как результат, качество создаваемых продуктов.

В таком формате мы разрабатываем продукты (как небольшие, так и достаточно крупные платформы) вот уже 7 лет. Очевидно, что в продуктах есть баги. Но если сравнить качество продуктов Railsware до и после трансформации QA — последние выигрывают со значительным отрывом.

Мы не отрицаем, что существуют очень специфические и сложные продукты, которые не мануальным способом без специально выделенных людей протестировать сложно. Но в остальных случаях мануальное тестирование продуктов может быть заменено набором подходов к разработке, что приведет к уменьшению технического долга и повышению качества продукта в целом.

Переходим на Java 10: проблемы и решения

$
0
0

Итак, прошел уже месяц с выхода Java 10. Уже даже успел подойти первый апдейт. А это значит — пора переходить и нам :) Вслед за переходом на Java 9.

Установка

Джаву, как всегда, можно скачать и установить вручную. Но это не мой путь. Я обычно предпочитаю устанавливать из готовых пакетов (которые, к сожалению, выходят месяц-два спустя). Например, так:

sudo add-apt-repository ppa:linuxuprising/java
sudo apt-get update
sudo apt-get install oracle-java10-installer

Проблема с IntelliJ IDEA

Первая проблема, с которой я столкнулся, была в IDE. Я сидел на IntelliJ IDEA 2017.3. И при добавлении JDK 10 в проект идея отказывалась признавать корневую директорию JDK как «The selected directory is not a valid home for JDK». Проблема легко решается переходом на 2018.1.2. Но должен предупредить — в новой версии идеи довольно много неприятных мелких багов. Надеюсь, ситуация в Эклипсе получше.

Проблема с maven-compiler-plugin

Первым делом после подключения JDK 10 я попробовал собрать проект мавеном. Не получилось:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project push: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile failed.: IllegalArgumentException -> [Help 1]</em>

Гуглинг помог быстро найти проблему, а именно в maven-compiler-plugin. Как оказалось, этот плагин использует внутри старую версию библиотеки asm, которая не поддерживает Java 10. К счастью, ее легко можно пофиксить, изменив зависимость в плагине:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.7.0</version><configuration><source>10</source><target>10</target></configuration><dependencies><dependency><groupId>org.ow2.asm</groupId><artifactId>asm</artifactId><version>6.1.1</version></dependency></dependencies></plugin>

Проблема с maven-surefire-plugin

Проект собрался. Настало время билда с тестами. И опять получился нежданчик. Теперь уже в maven-surefire-plugin:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project Blynk: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test failed.: NullPointerException

Я особо не искал причину, а по опыту переезда на девятку — просто проапдейтил плагин к последней версии 2.21.0, что и решило проблему.

Опять IDE

Сборка с тестами прошла успешно, и ничего не отвалилось, что уже довольно неплохо (в отличие от девятки). Теперь я попробовал запустить тесты из идеи. И получил довольно странную ошибку:

Release version 11 not supported

Выяснилось вот что. Во-первых, «Language Level» в модулях проекта оказался на Level 11. Во-вторых, настройка «Module JDK» в каждом из модулей была на 9-ке.Похоже на какую-то багу новой Идеи. В общем, после проставления корректных версий вручную — тесты запустились и успешно прошли.

Travis CI

Так как наш проект open-source, мы используем бесплатный и публичный Travis Cloud для прогонки тестов. 10-кавсе еще не имеет нативной поддержки от Тревиса, поэтому пришлось искать обходные пути.

Travis.yml:

language: java

before_install:
 - wget https://github.com/sormuras/bach/raw/master/install-jdk.sh

matrix:
 include:
     - env: JDK='OpenJDK 10'
       install: . ./install-jdk.sh -F 10 -L GPL</em>

Lombok

Если вы используете или собираетесь использовать библиотеку Lombok в вашем проекте, то с десяткой придется подождать. Так как Lombok fails with JDK 10. Хотя, с другой стороны — это отличный повод выпилить его из вашего проекта.

P. S. 10-кауже 2 дня крутится на наших продакшн-серверах. Пока никаких проблем выявлено не было. В отличие от 9-ки,никакого изменения по перформансу или потреблении памяти замечено не было.

Я уже перевел часть кода на var. Пока хорошо. Вот, например, кусок кода, который мне нравится больше всего:


А вы уже попробовали Java 10?

Для тех, кто же все-таки решил перейти на 10-ку, —вот отличная рекомендация, когда использовать var:

Рабочий продукт - прежде всего, или Когда не стоит увлекаться кодом и тестами

$
0
0

Когда приходится начинать или перенимать новый проект, всегда возникает заветное «а давайте все перепишем», «а почему технология X а не Y» и под конец — «а этот код писали индусы». Резюмируется все фразой «давайте перепишем и вместо Y используем X». Но когда начинаешь спрашивать: «Почему технология Y применима к этому проекту?». В ответ слышится невнятное: «Ну, новее, интереснее...», «Мне было бы интересно получить опыт по ней».

Дальше обычно спрашивают: «А как обстоят дела с тестами?». Ответ так же, как и на встречный вопрос «Какой вид тестирования интересует?», — невнятный... Обычно он повторяется, как мантра: «Юнит-тесты». А на просьбу «Продай-ка мне юнит-тесты применительно к этому проекту» в лучшем случае говорят: «Любую строчку кода стоит покрывать тестами, потому что так надо». О продаже юнит-тестов речь даже и не заходит. А теперь давайте попробуем разобраться, что не так с этими вопросами и ответами.

Чудо-оружие разработчика

История человечества представляет собой цепочку войн и конфликтов, которые обросли легендами и байками. Если присмотреться к ним, то станет ясно, что победителями становились не благодаря лучшей организации, силе духа или отсутствию проблем со снабжением, а благодаря чудо-оружию. Так появились в мифологии экскалибур, меч-кладенец, дюрандаль и др.

С развитием технического прогресса роль «вундервафли» сильно возросла. В XX и уже XXI веке многие военачальники объясняли свои проигрыши тем, что «у него-то сверхоружие, да вообще и гранаты у меня были не той системы». К чему эта аналогия? В разработке сейчас происходит тоже самое. Многие специалисты прикрывают свою криворукость или неграмотность использованием того или иного фреймворка, библиотеки или технологии, которая всю работу сделает за них. Как говорит народная мудрость, на сосенке не могут вырасти яблоки, но часто проблема не в инструментах.

В неокрепшем сознании девелопера рисуется идеальный фреймворк или библиотека с одной функцией «сделать_все_зашибись()», которая сделает все как надо без помощи мозгов разработчика. Рядом с методом «сделать все зашибись», как серебряная пуля, лежат юнит-тесты. По мнению 75% разработчиков, это та вещь, которая позволяет писать без багов. То есть нужно просто стоит внедрить в проект тесты. Причем часто люди просто не имеют понятия о том, что вообще-то существуют разные виды тестирования, и то, что они хотят внедрить в проект, — скорее всего, далеко не юнит-тесты.

Давайте разбираться по порядку: как поступать в той или иной ситуации и почему возникают эти проблемы.

Фактор времени

Если вы делаете свой личный проект, то это ваше личное дело, на каком языке или фреймворке вы его разрабатываете и сколько времени это все у вас занимает. Никто кроме вас, ну и может, пары-тройки бедолаг, которых вы совратите к себе в кунаки, не почувствует вашей боли.

Однако 99,99% разработчиков педалят на дядю, и при этом ответственность повышается в разы. Все потому, что в дело идут чужие деньги, которые вы берете за то, чтобы у заказчика не было технических проблем. Также для вас важным становится фактор времени. Как говорит народная мудрость, дорога ложка к обеду. Время выхода той или иной фичи становится для вас и клиента архиважным фактором. Прощелкаешь неделю — утратишь целевую аудиторию, конкуренты запустят что то поинтереснее.

В таком случае важен не инструмент, с помощью которого вы разрабатываете решение, а конечный результат. Под результатом я понимаю рабочий продукт, сданный в срок. Технологии и поддерживаемость кода в будущем отходят на второй план. Кстати, когда вы педалите на себя, попытайтесь тоже сфокусироваться на результате, а не на инструментах. Это будет очень полезно для конечного продукта.

Выбор технологии на проекте

Это очень щекотливая тема. Если заказчик «спускает» вам решение, то не надо с пеной у рта доказывать, почему стоит использовать другое. Постарайтесь выяснить, на основании чего он его выбрал. Если это обусловлено требованиями бизнеса, то не остается ничего другого, как подчиниться. Но если вы видите, что заказчик не прав, ваша обязанность — предупредить его. Причем аргументы типа «этого нельзя сделать, потому что сделать нельзя» тут не работают. Бизнес диктует условия, и бизнес же платит за них. Поэтому готовьтесь обосновывать каждое свое слово, каждую сказанную фразу.

Если же заказчик объясняет свое решение тем, что «я погуглил, и мне выдало», то смело включайте режим пламенного борца за полюбившийся вам фреймворк или технологию. Но опять же не забывайте про аргументы. Сразу подготовьте список линков на технологию, список компаний, которые ее используют, обучалки для новичков и так далее. Дайте клиенту погрузиться в технологию. Забудьте аргумент «модно, стильно, молодежно» — это не работает для бизнеса. Лучший инструмент — это тот, который вы досконально знаете. И если вы приведете примеры и покажете успешные проекты, сделанные вами на известном вам фреймворке или технологии, это будет лучшей его рекламой.

Как бы ни был заманчив новый инструмент — осознайте, что его использование — это риск. Риск натолкнуться на грабли, о которых вы еще не знаете. К тому же большинство модных, стильных, молодежных технологий и фреймворков, которые только начинают свой житейский путь, очень сильно хайпятся. Ясное дело, что большинство статей, докладов на конференциях и вопросов на форумах (заданных первопроходцами по граблям) будут посвящены именно им. Поэтому и у вас, и у заказчика может создаться искаженное впечатление, что все человечество их использует, а вы до сих пор стоите в стороне от прогресса. Это может привести к тому, что вместо того, чтобы сосредоточиться на результате, вы будете исправлять проблемы, вылезающие при обкатке нового тула или технологии.

Если у вас уже есть рабочая версия или компания разрабатывает продукт с дальним горизонтом планирования, можно пойти на оправданный риск, заранее проинформировав о нем заказчика. Однако, если заказчик — стартап, который нанял команду из страны третьего мира, продав дедушкину лесопилку и заложив бабушкино фамильное серебро в ломбард, то лучше не рисковать, а использовать то, что даст 100% результат.

Про стартапы

Работать в стартапах, с одной стороны, интересно, а с другой — чрезвычайно сложно. Почему интересно? Стартапы — это новые и не очень идеи (украинские стартапы не в счет, тут на 90% не новые идеи). В стартапах люди идут на риски. Тут можно протолкнуть что-то новое, использовать новый подход. Можно настроить все под себя. Не устраивает стандартный git-flow — не проблема, модифицируй. Хочется ввести свои стили кодирования — да не вопрос.

Но есть и обратная сторона. Если уже посчастливилось работать со стартапом, привыкните к мысли, что это проект с нуля. Как вишенка на тортике — полное отсутствие требований как таковых. Привыкайте к тому, что концепция будет меняться каждый раз, когда заказчик будет находить новых инвесторов. Так что главное, над чем стоит работать в стартапах, — это гибкость вашего решения. Внушите команде, что то, что вы делаете сегодня, — завтра вы будете дружно выпиливать. В настоящих стартапах мало кто знает, что будет в конце. И будет ли конец вообще. Свыкнитесь с мыслью, что для вас важны успешные релизы к сроку, покрытие тестами, оптимизация алгоритмов и чистота кода.

Животрепещущий вопрос — чистый код

Чистый код очень важен для дальнейшего развития проекта. Без понимания этого написать что-то более или менее стоящее не представляется возможным. Однако есть и кое-что важнее, чем чистый код — это работающий продукт! Если код продукта написан идеально, но при этом были пролюблены все сроки, а заказчик пошел по миру, потому что вы в очередной раз решили порефакторить метод — то, как по мне, лучше рабочий код с костылями и подпорками.

Всегда стоит понимать, где золотая середина. Если у вас распланированы бюджеты на три года вперед, и есть план развития продукта еще на 10 лет — то тут надо стараться писать хрустальный код. Процессы код-ревью, строгая типизация, линтеры, тесты и здравый смысл вам в помощь. Но, если заказчик в понедельник вечером говорит, что в среду утром код должен быть уже доставлен в Париж на сельскохозяйственную выставку, то понятное дело, что тут уже не до красоты, и надо писать лишь бы работало, как автомат Калашникова, потому что так требует бизнес.

Конечно, надо привыкать писать сразу хорошо, однако не всегда это выходит чисто физически. Понятное дело, всегда надо сказать заказчику, а лучше отписать письмом, что будет сделано как попало и переиспользование кода, написанного при столь сжатых временных сроках, будет весьма затруднительно.

И теперь задумаемся о проблеме так называемого индусского кода. Большинство наших разработчиков любят поливать парней с Индостана отходами жизнедеятельности, не вникая в причины, по которым был написан тот или иной кусок кода. Для начала примите за утверждение: наши говнокодят не меньше, а с количеством вайтишников в отрасли мы по говнокоду скоро будем впереди планеты всей. Так вот, попробуйте войти в условия разрабов, написавших тот или иной кусок кода. Против индусов работает закон больших чисел. На жалкие 40 тысяч кодеров и иже с ними в Украине приходится 1 миллион кодеров с Индостана. Понятное дело, даже если принять, что процент говнокодеров у них и у нас одинаков — то у них кодеров аналогичной квалификации будет на порядок больше.

Тесты

Вернемся к нашим баранам. Тесты несомненно важны. Они сразу помогают локализовывать ошибки без траты времени на их обнаружение при тестировании. Однако, чтобы тесты были, их кто-то должен написать. Плюс к этому вы должны позаботиться о настройке инфраструктуры CI системы. Тесты без CI мертвы. Их будут запускать единицы, да и то когда нечем будет заняться. Тесты — это такой же софт, как и ваш разрабатываемый продукт. Они рождаются живут, изменяются, устаревают и умирают. А теперь стоит понять, что это все время. К тому же тесты окупают себя через достаточно большой промежуток времени (адепты TDD — прошу не кидать в меня камни). А у нас уже понедельник, а поставка на вторник, потому что в среду сельскохозяйственная выставка.

Надо задаться вопросом, а стоит ли писать тесты. Может стоит написать, а в оставшееся время лучше пройтись по функциональности? Опять же девелоперского тестирования никто не отменял, и вот оно обязательно в любом случае! Да это просто проверка — работает или не работает фича, которую вы делали, после завершения работы над ней и до команды `git push`.

Не все тесты одинаково полезны. Можно написать тест так, что он будет обеспечивать нужный процент покрытия, но будет абсолютно бесполезен. Примеры таких замечательных тестов вовсю ходят по сети.

Выводы

Итак, что в сухом остатке? Увлекаясь так называемым «Technical Excellence», мы должны не забывать о главном — о продукте. Да, важен именно конечный продукт, а не тесты, кристальный код, использование новых технологий и методологий разработки. Никогда не стоит забывать, что конечный результат нашей работы — это не уходящий в ноль burndown chart, не 100% покрытие тестами кода, не выполнение условий линтера, а именно рабочий продукт — и есть цель, к которой мы должны стремиться.

Предиктивный найм, или Как предложить оффер в два раза быстрее

$
0
0

[Про автора: Евгений — програм-менеджер в сфере ИТ с многолетним опытом. Он отвечает не только за ряд проектов и аккаунтов, но также в роли менеджера по технологиям (technology manager) развивает в GlobalLogic экспертизу DevOps и «предиктивный хайринг» DevOps инженеров]

В этом материале я расскажу о том, как мы меняем подходы к заключению контрактов с новыми техническими специалистами. Мы хотим сделать этот процесс эффективным не только для компании и наших клиентов, но и удобным для инженеров.

Прежде чем говорить об изменениях, я расскажу о том, как чаще всего происходит привлечение новых технических специалистов в сервисных IT-компаниях. А также пройдусь по недостаткам текущего положения дел как для самих компаний, так и для инженеров.

Традиционный подход

Итак, рекрутеры ищут специалистов внутри компании или на рынке. Подходящих по резюме кандидатов приглашают на HR-интервью, а затем на техническое собеседование. Если исход успешен, кандидат, как правило, проходит интервью с менеджером проекта и одно или несколько интервью с представителями заказчика (в зависимости от конкретного проекта и договоренностей с клиентом). Если кандидата отклоняют на каком-либо из этапов и предлагают ему попробовать себя на другую позицию или другой проект, весь процесс за исключением HR-интервью приходится проходить заново. При этом у кандидата по-прежнему нет гарантий, что его возьмут хоть на какой-то проект.

Минусы для инженеров

Во-первых, им нужно проходить много собеседований. Хотя компании и стараются уменьшить количество интервью на альтернативные проекты (если на изначальный проект кандидат не подошел), это не всегда возможно.

Во-вторых, собеседования приходится совмещать с задачами на текущем проекте. Часто это неудобно по времени и забирает у кандидата энергию и силы, мешает качественной подготовке к интервью.

В-третьих, обратная связь после каждого этапа интервью приходит далеко не сразу. Кандидат вынужден ждать дни или даже недели без каких-либо гарантий, что его возьмут.

В силу третьей причины кандидаты часто ходят на несколько собеседований параллельно, чтобы повысить свои шансы на быструю смену компании или проекта. И соглашаются на предложение, которое поступает быстрее. Даже если это менее интересный и перспективный проект. Ведь, как правило, именно на интересных проектах бывает много этапов интервью.

Конечно, вышеописанное происходит не всегда. Есть много примеров, когда удается найти очень интересный проект, не столкнувшись с горой трудностей, но тут уж как повезет.

Минусы для компании

Первый минус, по сути, тот же, что и у кандидатов, — большое количество собеседований, которые занимают много времени. Мало того что нужно организовать множество встреч с кандидатом, включая общение с заказчиком. Так еще в случае успешного прохождения собеседований — ждать 2-4недели перед тем, как он сможет выйти на проект.

Второй минус — риск потерять кандидата, потому что в другом месте предложение ему сделали быстрее. Так часто бывает, когда заказчик склонен долго выбирать инженера на проект из нескольких претендентов, даже если в процессе он потеряет несколько хороших кандидатов.

Третий минус в том, что даже за несколько собеседований сложно выбрать идеального кандидата. Вот почему менеджеры проектов и представители заказчиков склонны долго думать и пробовать альтернативные кандидатуры. Идеальное соответствие всем требованиям, как мы знаем, встречается редко. А вот если специалист уже пробыл в компании какое-то время и о нем есть хоть какая-то обратная связь, решение насчет него принимать намного легче.

Предиктивный подход

Мы решили вместо поиска кандидатов по принципу «сначала проект, потом компания», искать наоборот — «сначала компания, потом проект». Если по итогам первого технического интервью мы считаем, что кандидат подходит на один или несколько наших проектов, мы сразу же предлагаем ему сотрудничество и подписываем с ним контракт. То есть мы готовы платить ему деньги и брать на себя все риски еще до собеседования с менеджером проектов и конкретным заказчиком.

Никакого подвоха нет. С кандидатом мы подписываем такой же контракт и несем такие же взаимные обязательства, как и с любым специалистом, которого мы берем прямо на проект (там где это необходимо, мы продолжаем применять традиционный подход). Нам важнее не потерять хорошего специалиста, даже если какое-то время мы будем искать ему проект. Никаких отличий в компенсационном пакете при этом нет. Испытательный срок начинается с дня прихода в компанию и не зависит от начала участия в проекте.

За годы ведения бизнеса у нас сформировались ключевые направления экспертизы — такие как Java, .NET, C/C++, Embedded, DevOps, Mobile, UX/UI design, QA, JS. Мы выбираем людей не с точки зрения 100% соответствия какому-то проекту, а с точки зрения соответствия технологическим направлениям, которые мы развиваем.

Если нам понравился кандидат как технический специалист, то мы всегда найдем и предложим ему подходящий проект и хорошего заказчика. При этом у нас есть возможность и ресурсы подписать контракт с человеком до прохождения им всех собеседований и выполнять перед ним свои финансовые обязательства в то время, когда мы только ищем ему проект и он проходит все интервью.

Опыт показывает, что в среднем для этого нужно 26 дней с момента подписания контракта (то есть даже быстрее, чем если бы мы ждали выхода человека с рынка). Но очень часто находим специалисту проект вообще в течение недели. И это не единичные случаи. С апреля прошлого года мы предиктивно привлекли около 200 инженеров в компанию, а не на конкретный проект. Из них более 100 человек в Киеве, и 70% из них уже определились с проектом.

Отвечу на возможный вопрос, который также задают многие кандидаты, — есть ли какой-то максимальный срок нахождения в компании без проекта. Хочу ещё раз подчеркнуть, что мы относимся к найденным предиктивно инженерам так же, как и к остальным инженерам, и, соответственно, решение принимается индивидуально по каждому случаю. Но, так как смена компании всегда сопровождается определенным стрессом и кандидаты ожидают некоей стабильности от нового места, то мы гарантируем минимум 6 месяцев нахождения в компании. Это не максимальный срок, и, как я сказал, решение по каждому случаю принимается индивидуально.

Плюсы для кандидата

По большому счету, плюсы в том, что они перечеркивают минусы, описанные ранее в классическом подходе:

  • Кандидат получает предложение сразу же после успешного прохождения технического интервью. В среднем на это уходит не более 3-4 дней.
  • Когда специалист переходит в компанию, он может выбирать проект и готовиться к последующим интервью уже в спокойной обстановке, когда нет задач по текущему проекту и давления от того, что ему срочно нужно сменить компанию.
  • За время «адаптационного периода» специалист может больше узнать о компании, влиться в процесс еще до того, как станет получать проектные задачи.
  • Возможность заняться саморазвитием, пока подыскивается проект, подтянуть те знания, на которые всегда не хватало времени, или поучаствовать в каком-то из внутренних исследовательских проектов компании, так называемых Proof-of-Concept или PoC. Мы не хотим, чтобы люди, которые пришли в компанию без проекта, сидели без дела и скучали. Наоборот, мы всячески приветствуем развитие и участие в активностях, полезных для компании и самих новичков. Также у нас есть довольно сильная тренинговая база, которая доступна для всех специалистов.
  • И последнее, но немаловажное, — это то, что у инженеров есть возможность выбрать проект из предложенных опций или отказаться от неинтересного. Мы, конечно, ожидаем, что ребята, которых мы берем предиктивно, не ищут проект-единорог (тот, о котором все говорят, но никто не видел — там, где все хорошо и не бывает плохо:) ), но и понимаем, что возможность отказаться от чего-то неинтересного должна быть тоже. И это нормально воспринимается и HR-ми, и менеджментом.

Плюсы для компании

  • Мы быстрее находим нужных специалистов. Если мы уверены, что кандидат нам подходит, не нужно ждать подтверждения заказчика.
  • Это выгодно для проектов. Проектные менеджеры и клиенты часто более охотно берут кандидатов, которые хотя бы несколько недель уже провели в компании, потому как даже за такое короткое время можно узнать, насколько инженер «вписывается» в проект, намного лучше, чем за несколько собеседований.
  • После успешного интервью с клиентом специалист практически сразу же выходит на проект. Не нужно ждать «привычные» 2-4недели для перехода кандидата из другой компании.
  • Кроме решения тактических задач по стафингу конкретных проектов, мы решаем здесь и системную стратегическую задачу. С помощью такого подхода можно более эффективно искать и привлекать в компанию специалистов, без горящих сроков и прессинга со стороны клиентов.

Как правило, мы находим проект специалисту быстро. Кандидаты довольны, а значит лояльны к компании и склонны сотрудничать с нами дольше. А даже если кандидат не подошел на один, два и более (совсем крайний случай) проектов, мы сохраняем его в компании, и что еще более важно, помогаем ему получить новый опыт и навыки.

Выгода для бизнеса

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

В конечном итоге, это позволяет растить бизнес быстрее, так как если клиенты имеют возможность быстрее получить много людей на проект, они начинают рассматривать компанию в частности и Украину в целом как более привлекательное место для разработки своих продуктов. И я уверен, что все больше сервисных компаний будут применять такой подход к привлечению инженеров. Это также хорошо для инженеров, потому что чем больше бизнеса идет на рынок, тем больше на нем выбора и предложений.

Могу привести пример, как гипотетический заказчик, которому нужно срочно сделать проект и ему понадобится хотя бы 20 человек как всегда «на вчера», будет выбирать между Украиной и Индией. Компания в Индии говорит, что предоставит этих 20 человек за неделю, а компания в Украине предлагает их найти за три месяца. И даже если заказчик очень не хочет в Индию, то решиться на Украину ему достаточно трудно. Но если компания в Украине говорит, что найдет этих же 20 людей за месяц или полтора, то шансы уже значительно повышаются в пользу Украины :)

Возможные минусы

В этой статье я сделал упор на преимуществах нового подхода. Но добавлю, что в зависимости от ситуации или пожеланий соискателя, этот подход может оказаться менее подходящим, чем другие. Например, в таких случаях:

  • Соискатель хочет при переходе в новую компанию сразу же приступить к новому проекту без единого дня «даунтайма». Даже при традиционном подходе это далеко не всегда происходит, но шансы выше, чем при предиктивном.
  • Соискателю важен только проект и не важна компания (аутстаффинговый подход при выборе компании для работы). В таком случае человеку нужно понимать, на каком проекте он хочет работать, и выбирать до тех пор, пока не будет найден «тот самый» проект.

Буду рад получить ваши комментарии и ответить на вопросы по теме статьи.

Viewing all 499 articles
Browse latest View live


Latest Images