Wednesday, September 19, 2007

Описание консалтинга

Введение. 



Наконец-то нашел достаточно времени для нескольких постов в своем 

За последнее время много что произошло, как в жизни так и в работе, о чем собственно решил и написать.
Скорее всего заведу новый тег "Записки консалтера" где буду публиковать интересные вещи о консалтинге.
Итак по порядку. Два месяца назад я решил сменить род деятельности и податься в консалтинг, Девелоперский консалтинг. И сейчас работаю в Сиднее в компанииwww.readify.com И вот собственно хотел рассказать что это такое, т.к. в России к сожалению консалтинга практически нет.
Причин для перехода было несколько. Во-первых, за последние 7 лет я перепробывал себя во всех ролях, от роли Code Reviewer, System Architect и заканчивая позицией Team Lead. Но в последние полгода понял, что простой девелопмент начинает приедаться, пропадает интерес. Т.к "драйва" в работе только процентов 20% в самом начале проекта, а остальные 80% это обычная рутина и баги, баги, баги :) (будь они неладны)
Во-вторых, последние 2 года я являюсь действующим MVP в области .NET/C#, что в моем случае представляет собой offline консалтинг. Те же консультации, и помошь в решении проблем только не персонально, а посредством форумов и груп новостей.
В итоге я понял, что у меня уже достаточно опыта чтобы комфортно себя чувствовать в живом консалтинге, и принести в свою работу 80% "драйва", а 20% оставить на баги или вообще на когото другого :)
Итак, что такое консалтинг - стандартное определение наверное есть в википедии, и со стороны это выглядит наверно клева :) Реальность немного другая - это когда ты в костюме, с 10ти килограмовой сумкой в которой пара ноутов, по жаре, трясешься час на автобусе или метро в район, где обычно никогда раньше не бывал (GPS в этом очень неплохо помогает),  первый раз к клиенту часа на 3-4.
Что за клиент и какие у него проблемы узнаешь заранее. Клиенты обычно разные, как от огромных и всем известных компаний, так и до компаний из 2х человек :) Обычно по емайл присылается простое описание проблем заказчика и того что он хочет получить - допустим ревью архитектуры, или помочь решить технические проблемы, допустим для офиса 2007 нужно кастомизировать Word, чтобы в некоторых полях показывал данные из базы. Никаких более деталей. Эта информация просто помогает обновить знания в данной области и как-то настроиться на нужды клиента.
После того как ты посидел с клиентом, и наконецто понял что ему действительно нужно, возвращаешься домой и начинаешь готовиться ко второму дню - продумывать различные решения проблем клиента. Обычно  готовится презентация с несколькими альтернативными решениями, и в идеале разрабатывается прототип. И потом уже на второй и последующих встречаех обсуждаешь с клиентом свои предложения. Но такие подходы бывают не всегда, иногда консалтера продают как члена команды, и приходится работать на стороне клиента в любой роли в течении некоторого срока . Обычно такое может продолжаться гдето от месяца и до полугода - все зависит от проекта.
В следующих постах продолжу описание работы консалтеров. Если у кого есть какие вопросы - все пишите в комментах.

Как это работает
 данном посте опишу как это выглядит изнутри (примеры взяты их разных консалтинговых компаний)
Работает это примерно так. Во всех консалтинговых компаниях есть "менеджеры по продажам консалтеров" :) (или просто sales manager), у которых есть skill matrix каждого консалтера. Когда появляется новый клиент менеджер определяет, кто больше всего по опыту подходит для данного клиента и кто находится в данном городе. В нашем случае компания во всех крупых городах держит несколько человек со опытом покрывающим как можно больший спектр технологий (оставаясь в рамках MS) чтобы "угодить" большему числу клиентов. Делаеся это для того, чтобы не возить консалтеров с других городов. Но это не всегда помогает и я, допустим, за последий месяц раз 5ть был в разных городах. После того, как sales manager находит нужного свободного консалтера, в нужном городе, и после согласования с ним желания заняться данным клиентом, консалтера прикрепляют к  данному клиенту. Планы обычно составляются на 2-3 клиента вперед. Т.е заранее знаешь чем и с кем ты будешь заниматься.
Клиент "покупает" консалтера на определенный срок. Это может быть как 1 день, так и полгода. У меня допустим были клиенты на 1 день и на 3 дня. Если повезет, то можно управиться быстрей и тогда появляются свободные дни между клиентами. Полностью свободными они не бывают, в это время обычно занимаешься внутренними проектами или апдейтишь свои знания, изучая последние технологии, типа акрополиса :)
С кем ты будешь общаться зачастую не знаешь. Мой напарник по консалтингу Mitch Denny называет это "The Fog of consulting" На самом деле это наиболее точная фраза описывающая факанность всей ситуации :) Т.к. до момента встречи ты имеешь лишь смутное представление о том, что нужно клиенту. И может оказаться так, что это вообще не твои скилы, или хоть и твои, но у тебя вообше "не стоит" заниматься этим. Удачность совпадения того чем ты хочешь заниматься, и того что нужно клиенту зависит от опытности sales manager (чтобы правильно сопоставил твои желания с потребностями) и консалтера - чтобы пропихнуть у клиента правильные технологии. В консалтинговых компаниях есть внегласное правило - "подсаживать" клиента на новейшие технологии, только обязательно правильно оценив риски всей авантюры :). Это делается по нескольким причинам. Первая - получить опыт в данной области; вторая - быстрей других подсадить клиента на данную технологию, и он будет уже "привязан" к определенной консалтинговой компании, т.к. у клиента будет недостаочно квалифицированных людей в этих технологиях.
Возвращаясь к теме присутсвия консалтера у клиента - при встрече ты можешь обшаться с совершенно разными людьми.  Это может быть как директор компании, так и просто группа разработчиков, которые тупят в какойто области и им нужен наставник :) Обычно клиенты в техническом плане слабей тебя, но иногда бывает что люди достаточно сильны, и им нужен просто свежий, не "замыленный" взгляд со стороны на проект - больше как архитектурное ревью или ревью кода. Исходя из этого консалтинговые компании стараются нанимать только лучших из лучших, потому что  на консалтере лежит довольно большая ответсвенность - т.к. потеря клиента из-за твоих технических промахов будет иметь довольно печальные последствия как для консалтера так и для компании. Бывают варианты, когда клиентская компания не хочет расширять свой штат, и просто приглашает временно несколько консалтеров на проект. В этом случае работа консалтера никак не отличается от обычного девелопмента с кучей багов :) Но из-за довольно высокой дороговизны консалтеров  до фазы багфиксинга никогда не доходит, и после как все "вкусности" были задизайнены и сделана основная работа, консалтеров разгоняют, и уже местные "с помошью ломика и такой-то матери" доводят проект до кондиции.
Следует понимать, что консалтинговая компания продает не человека клиенту, а технический потенциал всей компании через данного консалтера. Так что, если у тебя появляются какие-то проблемы, в которых ты не силен, то это нормально - ты просто обрашаешься к остальным в компании и совместными усилиями решаете проблему клиента. Данный факт имеет негативную сторону для консалтера - везде приходится таскать ноут, и у каждого клиента (если находишься on-site) утрясывать вопросы подключения к инету - чтобы иметь доступ к внутренним ресурсам компании(часто тебя посылают с инетом и тогда просто юзаешь 3G mobile broadband интернет).

В принципе в этих постах я изложил основы как работает консалтинг. Все интересующие вопросы плиз в комменты.
Post a Comment