В серии статей о софт скиллах мы собрали и упорядочили 18 личностных навыков и качеств, которые, по мнению Senior- и Lead-специалистов украинских IT-компаний, наиболее важны для профессионального роста.
В прошлых статьях мы уже рассматривали все, что касается коммуникацийи личностных качеств. В этой части обзора поговорим о том, какие навыки делают обычного специалиста профессионалом и как правильно организовать работу в команде.
Умение решать задачи
Специалист уровня Senior понимает, что его работа — не просто писать код, а решать определенные задачи клиента. И в особенности те, которые не могут решить младшие специалисты. Именно это формирует основу профессионализма.
Максим Ковтун, Chief Software Architect в Sigma Software:
Problem Solving — это некая пробивная сила, способность находить решения задач или проблем, с которыми вы ранее не сталкивались. Львиная доля IT проектов — это разработка ПО под нужды заказчика, который не смог использовать существующий софт. Это значит, что его потребности чем-то отличаются от тех, которые уже решены, а значит команда столкнется с какими-то новыми задачами или их комбинациями. Есть такая аналогия — «ледокол и катерки». Роль синьора — расчищать проектный путь для остальных членов команды.
Задача не обязательно должна быть решена своими руками. Решили ли вы проблему сами, нашли нужного человека или группу людей, придумали, как обойти проблему, не решая ее, — не имеет значения. Главное, что данной проблемы больше нет, и вы с командой можете двигаться дальше.
Мало заметить и обозначить проблему. От Senior- и Lead-специалистов ожидают инициативу в поиске ее решения.
Андрей Завадский, Engineering Team Lead в Innovecs:
Senior — это problem-solver. Заметив какую-то проблему, он не просто ее констатирует, а берет на себя проработку вопроса и формирует возможные варианты решения. В моем мире этот навык формируется где-то от Middle (зародыш навыка) до Middle+.
Есть неплохая книга: «Grit: The power of passion and perseverance» — о том, почему одни достигают успеха, даже если изначально нет таланта, а другие — нет, даже если он и есть. Меня этому научила работа. Меня очень «парило», что я приходил с проблемой, а решение принималось долго. Я понял, что нужно готовить анализ. Приходил с анализом, и все равно принятие решения было долгим. Понял, что нужны варианты: тогда человек быстрее выберет один, и я уйду довольным.
Чтобы правильно решать задачи, необходимо понимать принципы бизнеса, в котором вы работаете. А также осознавать, какую реальную ценность приносит ваш кусок работы.
Іван Попович, Java Developer & Team Lead у Conscensia:
Працюючи в різних компаніях, я бачив технічно сильних програмістів, для яких процес розробки був важливішим за результат. До певного рівня це навіть добре, адже зазвичай вони були захоплені своєю роботою. Проте це заважало їм перейти на новий рівень, який вимагав відповідальності за результат, приймання складних і непопулярних рішень, важливих для бізнесу замовника.
Я розділяю технічних спеціалістів на 4 основні групи:
- тобі допомагають виконувати задачі;
- ти виконуєш їх сам;
- ти допомагаєш іншим виконувати задачі;
- ти допомагаєш бізнесу замовника.
Щоб перейти на4-й рівень, необхідно бути максимально сфокусованим на результаті.
Константин Захаров, Solution Architect EPAM Ukraine:
Без глубокого понимания того, чего же на самом деле хочет заказчик, предоставить качественный сервис практически невозможно. Один из подходов для улучшения качества сервиса — погружение в бизнес клиента. Изучите домен, поищите в публичных источниках информацию о конкурентах. Проясните, как заказчик зарабатывает на данной системе, кто стейкхолдеры, что поможет повысить прибыльность.
На практике часто бывает, что сам клиент не понимает, чего он хочет. В этом случае ваша задача — выявить его потребности и выбрать наиболее короткий путь для достижения истинных целей. Вы должны уметь обосновать, как каждая строчка вашего кода влияет на бизнес клиента.
Погружение в бизнес иногда может в корне изменить заранее подготовленный план проекта. У нас был случай, когда перед разработкой архитектуры проекта мы предложили стартапу заполнить Business Model Canvas. В процессе работы над этим выяснилось, что запустить такой сервис не позволит законодательное ограничение. В итоге мы закрыли проект на раннем этапе, сэкономив бюджет и время.
Целостное видение
Целое больше, чем сумма его частей. Смотрите на задачу под разными углами, выявляйте скрытые риски и зависимости в смежных областях.
В’ячеслав Калашников, Software Architect в Luxoft:
Вміння піднятися над площиною задачі та оцінити її навколишнє середовище дуже допомагає за деревами побачити ліс. Не можна зрозуміти масштаб змін, необхідних для забудови якоїсь міської території, якщо просто ходити вулицями. А от helicopter-view дасть можливість побачити те, що з вулиць просто фізично не видно. У світі технологій теж вкрай бажано розуміти навколишнє середовище. Тоді рішення задачі буде більш генералізоване та дозволить зменшити кількість майбутніх змін.
Також варто вміти оцінити переваги та недоліки певних підходів та можливі наслідки від їх запровадження. Проте, щоб отримати цілісну картину, треба додати сюди й оцінку наслідків відмови від дій. Це дасть більш чітке розуміння ситуації, і ви зможете зробити більш аргументований вибір.
Максим Сидоренко, Senior Developer в Sitecore Украина:
На мой взгляд, старший специалист в первую очередь определяется отношением к своему окружению. Такой специалист пытается увидеть картину целиком, понять внутренние взаимосвязи и первопричины, отделить первостепенное от вторичного. Часто встречается ситуация, когда группа менее опытных коллег уже несколько часов топчется на месте, решая сложную задачу в лоб, а Senior решает ее за 5 минут — именно потому, что взглянул на ситуацию под другим углом.
В практическом смысле чтобы быть способным увидеть целостную картину, необходимо разобраться, как функционируют все ее составляющие.
Константин Захаров, Solution Architect в EPAM Ukraine:
Возможно, еще вчера вам не было интересно, почему именно так налажен процесс в команде, в чём ключевые преимущества Agile для конкретного бизнеса, насколько эффективен процесс доставки user stories, какие нефункциональные требования к продукту. Но для перехода на уровень Senior+ придется разбираться во всех этих аспектах — без понимания всего этого не построить оптимальный процесс разработки.
Управление временем
Самоорганизация — это процесс четкого регулирования собственного времени. Чтобы все успевать, важно правильно планировать время и распределять силы.
Александр Крачун, Full Stack Developer & Team Lead в Adtelligent:
Чтобы увеличить свою эффективность, приоритизируйте задачи. Я всегда разбиваю большую или сложную задачу на подзадачи и расставляю их в порядке приоритета. Затем, разложив все задачи по полочкам, я просто последовательно выполняю их, не распыляясь на все сразу. Так мне удается все выполнить в срок, не выходя из графика.
Рекомендую ознакомиться с 26 лайфхаками. Осознайте, обдумайте и начните вводить в практику несколько таких принципов. Как только они станут для вас в порядке вещей, приступайте к следующим «постулатам». Практикуйте, не ленитесь — результат не заставит себя ждать. Также рекомендую почитать статью «Тайм-менеджмент: управление временем».
Константин Захаров, Solution Architect в EPAM Ukraine:
Я рекомендую изобрести свою методику тайм-менеджмента, позаимствовав лучшие практики из уже существующих. Например, начать с простого списка задач в блокноте на неделю. Потом добавить дедлайны для каждой строчки. Позже можно расставлять приоритеты. Со временем такая система будет естественным образом эволюционировать, становиться более адаптированной под ситуацию на проекте. Также не забудьте о системе напоминаний, которая будет вовремя помогать вынырнуть из рабочего потока и напоминать, что пришло время для звонка или письма. Хороший старт — синхронизация рабочего почтового аккаунта с телефоном.
Чтобы грамотно распоряжаться временем, изучите разные лайфхаки. Сгрупированные митинги помогут реже переключаться, Pomodoro заставляет более осознанно решать задачи микроитерациями без ненужного погружения в рутину. Делегирование срочных и незначимых дел спасает концентрацию и минимизирует переключения, заглушки в рабочем календаре для личных дел помогают лучше использовать время дня.
Координируя команду, вы управляете не только своим личным временем, а и таймлайнами проекта.
Діма Павлов, Software Tech Lead в Terrasoft:
Раджу приділяти більше часу деталізації задач. З початку спринта все має бути розписано як по нотах. Кожен має розуміти, в який момент включатись в ту чи іншу задачу і на якому етапі його частина буде інтегрована з іншими. Звісно, таке планування займає деякий час, проте по факту це значно прискорює увесь процес.
Щодо інструментів, для декомпозиції задач і предметної області ми використовуємо mind maps, для індивідуального планування — Asana.
Умение делегировать
Как только у вас появляется собственная команда, необходимо учиться делегировать задачи. Во-первых, большой проект невозможно сделать в одиночку. Во-вторых, если взвалить на себя слишком многое, повышается риск ничего не успеть и выбиться из сроков.
Владимир Гарбар, Team Lead в HYS Enterprise:
Умение доверять помогает делать то, что в одиночку попросту невозможно. Если вы заслуживаете доверия, то почему другие не заслуживают? Только не надо наивно верить, что вас не подведут. Даже очень хороший специалист дает осечку в 5% случаев или около того. Будьте готовы к ситуации, когда что-то пойдет не по плану. Случилось — ну и что? Вовремя приходите на помощь. Согласитесь, 95% успешных случаев — это лучше, чем ноль, при полном недоверии.
Доверяйте, но проверяйте — вот и весь секрет развития навыка. Заодно узнаете, кому можно доверить больше, кому меньше, и сможете оптимально распределить нагрузку в команде.
Александр Крачун, Full Stack Developer & Team Lead в Adtelligent:
Изначально у меня существовала проблема: я считал, что лучше меня поставленную задачу не выполнит никто. Я тратил уйму времени на оттачивание каждой мелочи и выбивался из графика. Важным моментом для меня стало осознание того, как важно уметь не бояться передавать задачи любого уровня коллегам по команде. Правильное распределение работы поможет сдать проект в срок. Помимо этого, у вас появится дополнительное время для своего профессионального развития.
Рекомендую начать с прочтения книги «Делегирование и управление» Брайана Трейси.
Задача лида — не делать все в одиночку, а наладить рабочие процессы. Главное — не скатиться в микроменеджмент.
Павел Свинцицкий, Team Lead в Mobilunity:
Робити роботу за команду — не найкращий варіант. Буває, хтось з команди не знає, як виконати задачу, або ж пропонує не оптимальний шлях з точки зору швидкості імплементації, швидкодії рішення або можливості підтримувати імплементацію в майбутньому. У цьому випадку дуже важливо вказати правильний шлях, пояснити, чому це неправильно, чи як це зробити правильно, — але в ніякому випадку не брати задачу на себе і перероблювати її. На жаль, люди мають властивість ледарювати в ситуації, коли потрібно розібрати в чомусь новому чи складному. В результаті будете мати купу складних задач і мало часу на їх виконання.
Если вы управляете командой, то и глобальную ответственность за ее работу несете именно вы.
Артем Петров, Web-department Team Lead в Appus Studio:
Быть руководителем — это значит нести ответственность за поступки своих подчиненных. Если кто-то совершает ошибку, в первую очередь виноват руководитель. В одной европейской стране в ХХ веке был проведен масштабный эксперимент. Руководители предприятий были наделены абсолютной властью и абсолютной ответственностью. За любые достижения руководителя награждали, за любые неудачи — наказывали. Исходя из успехов экономики этой страны в тот промежуток времени можно сказать, что эксперимент был успешным. Невозможность «свалить» свои просчёты на какой-либо фактор стимулирует абсолютную ответственность за происходящее.
Навыки People-менеджера
Работая с командой, научитесь работать с мотивацией каждого человека. Не подходите к этому вопросу формально.
Артем Петров, Web-department Team Lead в Appus Studio:
Учитесь давать людям то, что им нужно. Человек приходит на работу для удовлетворения каких-то определенных потребностей. Даже если человек пришел только для того, чтобы заработать денег и не более, — это тоже его потребность. Если человек уходит с работы, значит компания не может дать того, чего человеку не хватает.
Задача руководителя — любым способом удовлетворить справедливые потребности сотрудников. Эта задача сложнее, чем кажется на первый взгляд. На прошлой работе мой коллега на вопрос о том, что он ждёт от работы и что ему нужно, назвал начальству одни пункты, а мне в приватной беседе — совершенно другие. Руководство подошло к удовлетворению потребностей сотрудника формально, не попытавшись разобраться в том, чего на самом делехотел человек. В результате долгосрочного контакта не получилось.
Павел Свинцицкий, Team Lead в Mobilunity:
Не забувайте хвалити команду за досягнення чи маленькі покращення. Проте й не спускайте косяки. І ні в якому випадку не заводьте «улюбленців», яким все сходить з рук. Дотримуйтесь правил, які самі встановлюєте. Адже вимога від ліда не спізнюватись на роботу виглядає безглуздо, якщо він сам кожен день спізнюється. Це стосується всього: чистоти коду, написання тестів і багато іншого.
Ваша задача — помогать развиваться остальным членам команды.
Максим Ковтун, Chief Software Architect в Sigma Software:
Все мы когда-то только начинали свою карьеру, учились, смотрели, как работают наши старшие коллеги, как они решают задачи, как думают и почему. Безусловно, можно выучиться и одному по книжкам и интернету, но работа с наставником намного эффективней. Здесь речь не идет об обязанностях лидера команды, а о том, что каждый старший специалист должен быть примером для младших, оказывать им поддержку и направлять их как в решении задач, так и в профессиональном развитии.
Іван Колодій, СЕО Ukietech та TechLead на проекті TenantCloud:
Якщо ви керуєте командою, критично важливим є knowledge sharing. Зазвичай програмісти жадібні і не хочуть викладати свої «конкурентні переваги» у вільний доступ. Цієї звички потрібно позбуватись і впроваджувати таку культуру, при якій всі будуть охоче ділитися знаннями. В такому випадку корисними будуть бонуси (матеріальні чи нематеріальні) та різні заохочення для контриб’юторів.
Стройте отношения с командой на принципах взаимоуважения.
Олег Дмитриев, TechLead в Webinerds:
Для комфорта в команде рекомендую наладить максимально дружеские отношения. Но это не значит, что нужно со всеми соглашаться. Не бойтесь быть не правыми и стоять на своем, учитесь грамотно аргументировать свои решения. Ни в коем случае не нужно думать, что вы умнее кого-то. Уважение коллег — краеугольный камень взаимоотношений.
Что еще почитать о менеджменте:
- «Мифический человеко-месяц, или Как создаются программные системы»Фредерика Брукса — об управлении проектами в области разработки ПО: повышение производительности труда программистов, организация коллективной работы, планирование и выполнение графика реализации.
- «Программист-прагматик. Путь от подмастерья к мастеру»Эндрю Ханта — охватывает темы от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации.
- «Менеджер 80/20. Главный принцип высокоэффективных людей»Ричарда Коха — о том, как работать меньше, а получать больше. Как известно, 80% результатов проистекает из 20% причин, а за 20% времени мы успеваем сделать 80% дел.
- «Тайм-драйв. Как успевать жить и работать»Глеба Архангельского — советы по организации рабочего времени и отдыха, мотивации и целеполаганию, планированию, расстановке приоритетов, эффективному чтению.
- «Deadline. Роман об управлении проектами»Тома ДеМарко — о работе с людьми: как выбрать из множества кандидатов нужного вам человека, каково оптимальное число людей в команде на разных этапах проекта, как оптимизировать работу, если перед вами поставлены жесткие сроки, как определять и решать конфликты.
- «7 навыков высокоэффективных людей»Стивена Кови — системный подход к определению жизненных целей, приоритетов человека и о том, как их достигать.
- «Черная книга менеджера» — о честном ежедневном труде и смелости.
- «The First-Time Manager»Лорен Белькер и Гэри Топчика — о менеджменте, найме и увольнениях, мотивации, доверии, управлении временем и стрессом.