В этой статье я описываю, как подразделяются IT компании-разработчики по типу своего бизнеса. Особое внимание я уделяю разработчикам коробочных программ, поскольку в следующей статье я хочу рассказать о своем опыте построения проектных команд для соответствующих проектов.
Проанализировав подход к ведению бизнеса таких компаний, как Google, Yandex, Microsoft, 1C, SAP, IBM, Luxoft, Apple, я разделяю их на три основные категории.
Категоризация компаний-разработчиков ПО
Компании-разработчики заказных программных продуктов
Большинство IT компаний принадлежит именно к этой категории. К этой же категории можно отнести все IT-отделы, поддерживающие инфраструктуру в компаниях, бизнес которых не связан с разработкой программных продуктов.
Заказная разработка программного обеспечения учитывает индивидуальные особенности бизнес-процессов конкретного заказчика. Разработка программного обеспечения на заказ позволяет получить программный продукт, повышающий финансовую отдачу, учитывающий перспективы развития организации и современные тенденции в области информационных технологий.
Заказная разработка и внедрение программного обеспечения наиболее часто применяется при решении следующих задач:
- автоматизация уникальных бизнес-процессов (уникальное производство или контроль специфических процессов любой природы и т.д.);
- интеграция существующих информационных систем: обмен данными между существующими информационными системами, создание единой системы отчетности на основе данных из различных систем и т.д.;
- модернизация существующих информационных систем: создание веб-интерфейсов к системам, расширение функциональности, разработка уникальных рабочих мест, адаптированных под мобильные устройства;
- интеграция бизнес-процессов различных предприятий: автоматизированный обмен электронными документами (заказы, счета и т.д.) между предприятиями партнерами;
- сбор данных из территориально распределенных подразделений: создание центральных хранилищ данных, синхронизация данных между филиалами или подразделениями, консолидированная отчетность;
В заказной разработке всегда существует заказчик, который гарантирует востребованность создаваемого продукта. Технологический процесс в таких компаниях построен таким образом, чтобы наиболее четко идентифицировать потребности конкретного заказчика и наиболее точно реализовывать программу под них. Риски, связанные с несоответствием требований заказчика реальным потребностям бизнеса, обычно несет потребитель продукта. Он же зачастую берет на себя риски, связанные с невозможностью (чрезмерно высокой стоимостью) изменения программы при изменении своего бизнеса.
Как следствие, кадровая политика в заказных разработках ориентирована на профессионалов, владеющих четко определенными инструментами разработки. На сегодняшний день существует несколько методологий, работая по которым возможно оценивать стоимость и реализовывать заказные проекты в соответствии с планом. Поэтому прежде всего компании-заказных разработчиков интересуют исполнительные и дисциплинированные люди, готовые в точности выполнять поставленные задачи. В таких компаниях, как правило, жесткий отбор по уровню владения инструментами разработки. Последствия текучести кадров достаточно серьезны, однако они могут быть в значительной степени нейтрализованы за счет технологичности производства.
Компании-разработчики коробочных программных продуктов
Коробочный программный продукт — это программное обеспечение, предназначенное для неопределенного круга покупателей и поставляемое на условиях «как есть», со стандартными для всех покупателей функциями. Коробочными программными продуктами являются, например, операционные системы Windows, Microsoft Office, поисковые системы Яндекс и Google, антивирусные программы, компьютерные игры и т.п.
При разработке коробочных программных продуктов, как правило, заказчик не гарантирует востребованности продукта на рынке. Риски, связанные с несоответствием продукта требованиям рынка, а также убытки от доработок продукта при изменении внешних условий несет производитель.
Как следствие, кадровая политика в коробочных разработках ориентирована не только на профессионалов, владеющих инструментами разработки, но и на специалистов по предметной области, обладающих инициативностью и умением прогнозировать изменение требований рынка. В результате, если для заказной разработки достаточно просто хороших специалистов, то для создания коробочных продуктов нужны «звезды». Поскольку требования к персоналу выше, то последствия текучести кадров могут быть критическими, так как технологичность производственного процесса не может нейтрализовать уход уникального специалиста.
Компании, занимающиеся локализацией иностранных продуктов под особенности местного языка и менталитета
Например, к этой категории относятся офисы Microsoft в России, а также компании, занимающиеся локализацией компьютерных игр. Данная категория выделена отдельно, поскольку она не относится в полной мере ни к заказным разработкам, ни к коробочным. Зачастую такие компании не работают самостоятельно, а являются дочерними по отношению к крупным компаниям-разработчикам коробочных программных продуктов. По принципам кадровой политики они ближе к заказным разработкам, поскольку большинство требований для них уже введено изначальным разработчиком, и от персонала требуется главным образом квалификация и исполнительность.
Проблемы и особенности ITкомпаний-разработчиков коробочных программных продуктов
Поскольку главным ресурсом IT-компаний является персонал, а коробочные продукты — это всегда уникальные продукты, то люди с опытом разработки именно в данном направлении являются необходимым ресурсом. Разработка коробочных IT-продуктов сродни научным исследованиям. Т.е. чтобы развивать, например, направление лазерной физики нужны ученые именно из этой области. Заменить их физиками-ядерщиками не получится, какими бы титулованными они ни были.
В разработке коробочного программного обеспечения требуются очень квалифицированные специалисты. Компании рассматривают очень много кандидатур, но относительно мало берут в штат. По сравнению с фирмами, занимающимися разработкой и внедрением заказного программного обеспечения, программисты коробочных продуктов – это элитные войска (спецназ) по сравнению с регулярной армией. Они более высокооплачиваемые, но и с гораздо более высокой квалификацией, каждый многое умеет. В этих компаниях практически нет так называемых «простых кодировщиков», которые занимаются программированием по кем-то подробно поставленной задаче.
Разработчиков, которые бы могли вписаться в коллектив и приносить высокую отдачу, очень трудно найти. Но компании идут именно по пути привлечения высококлассных профессионалов, и отдача от этого очень хорошая. Ведь если брать специалиста ниже классом, это означает, что придется вместо одного нанимать десять человек. Понадобится также брать начальника, который будет их координировать. Возникнет необходимость увеличивать обслуживающий персонал, разбирать конфликты между специалистами вследствие разницы в квалификации, что критически скажется на эффективности работы.
Другими словами, для создания коробочных программных продуктов требуются люди с опытом разработки программ (от архитектуры до пользовательского интерфейса) в данной сфере не менее 5 лет, хорошо ориентирующиеся в потребностях потенциальных потребителей. Люди с опытом программирования в какой-либо сфере более 5 лет сами по себе уже дефицитные специалисты. Здесь же речь идет не о простых разработчиках, но еще и о специалистах по предметной области, хорошо знающих бизнес будущих клиентов. Таким образом, подбор персонала оказывается нетривиальной задачей, а любая утечка кадров оказывает критическое влияние на успех проектов.
Еще сложнее обстоят дела с поиском руководителей разработки. Например, по технологии разработки в компании «Фирма 1С» очень большую роль играют руководители разрабатывающих отделов. Таких отделов у них около десятка. Каждый руководитель отдела ведет проект фактически самостоятельно, он идеолог и компоновщик. К постановке задач могут привлекаться внешние специалисты, что-то запрашивается у профессиональных бухгалтеров, у аудиторов. Так, версия 7.7 «1С:Предприятия» является результатом полутора лет работы, исходный код программы содержит около 950 тыс. строк, в ее разработке принимало участие около 20 специалистов. С руководителем фирмы согласовывались только содержание, сроки разработки, необходимые ресурсы и предполагаемая цена, а «отцом» продукта, организатором разработки является руководитель подразделения.
Другими словами, руководители разработки – это не просто специалисты с большим опытом разработки и знаниями потребностей бизнеса, но и идеологи продукта. Руководитель разработки – это носитель идеи, предприниматель, являющийся одновременно техническим специалистом с большим опытом работы (5−10 лет) в данной области. Количество таких специалистов на рынке фактически равняется количеству существующих коробочных программных продуктов, поэтому поиск и выращивание таких «звезд» внутри компании должно быть главным фокусом ее кадровой политики.
Рынок информационных технологий на сегодняшний день является бурно развивающимся, поэтому никакой руководитель компании, каким бы компетентным техническим специалистом он ни был, не сможет квалифицированно поставить задачу на разработку нового продукта. Ситуация осложняется еще и тем, что от постановки задачи до появления продукта может пройти срок до двух лет, а за это время рынок может измениться кардинально. Поэтому топ-менеджмент успешных IT компаний-разработчиков коробочных программных продуктов играет роль «оценщика» идей, которые рождаются как внутри компании, так и вне ее. Предложения по дальнейшему развитию продукта поступают именно от руководителей разработки, «снизу», а не «сверху», от топ-менеджмента. Конечно же высшие руководители компании должны иметь большой опыт непосредственной разработки компьютерных программ, в идеальном варианте это должны быть бывшие руководители разработки в данной области бизнеса. Однако любой практический опыт становится бесполезным уже через 2−5 лет, и все, чем может располагать руководитель IT-компании, – это способностью быстро понять суть чужой идеи и оценить ее перспективность и реализуемость.
Как можно заметить, весь основной персонал компании должен иметь большой опыт разработки программного обеспечения, а авторы (либо носители) идей должны непосредственно руководить их воплощением. Этот принцип должен обязательно соблюдаться при построении оргструктуры компании и проектных команд, и он лежит в основе успеха таких компаний, как Microsoft, Google, Яндекс, 1С. Но даже у этих гигантов, несмотря на их талант в области оценки тенденций рынка и управления персоналом, случались явные неудачи.
Примером такой неудачи можно считать участие Microsoft в «войне веб-браузеров». К моменту, когда Билл Гейтс посчитал, что рынок интернет-обозревателей является стратегически важным направлением, 80% рынка контролировалось платным приложением Netscape Navigator. Microsoft было принято решение купить не специалистов по созданию такого рода программ, а технологию (исходные тексты компьютерного кода) конкурента. Разработка Internet Explorer, браузера от Microsoft, была поручена талантливому, но неопытному разработчику Томасу Реардону. Ведущий разработчик не был идеологом продукта, поэтому Internet Explorer не более чем копировал идеи конкурента.
В результате, даже когда Microsoft стала распространять свою программу бесплатно, Netscape оставался лидером рынка. Добиться ухода конкурента Билл Гейтс смог только тогда, когда Internet Explorer стал поставляться бесплатно в полном функционале вместе с операционной системой Windows. Таким образом, Microsoft пришлось навсегда пожертвовать доходами от продажи данного вида продуктов. А рынок веб-браузеров стагнировал, поскольку с уходом конкурента не осталось идеологов, которые могли бы развивать продукт. Microsoft потеряла не только доходы от продаж, но и приобрела негативный имидж в глазах разработчиков в области веб-технологий.
На сегодняшний день Internet Explorer стремительно теряет долю рынка, а лидерство переходит к Google Chrome. Компания Google пошла более «правильным» путем: они привлекли Ларса Барка, разработчика технологий веб-браузеров с двадцатилетним опытом, а также группу бывших разработчиков Netscape Navigator. В результате ситуация на рынке выглядит так:
Доля рынка веб-браузеров (в %) по годам. Черная линия − Microsoft Internet Explorer, зеленая − Google Chrome.
Таким образом, если в компании в определенной области нет «звездных» специалистов и руководителей, то вероятность создания коммерчески успешного коробочного продукта своими силами крайне низка. Если высшее руководство компании считает перспективной какую-либо область рынка, то при отсутствии своего технически опытного идеолога в проекте надо готовиться к тому, что серьезный успех будет через 5−10 лет (в зависимости от сложности программного продукта). Столь долгий срок означает также, что компания-разработчик коробочных программных продуктов должна обеспечить удержание персонала в течение десятилетий. IBM и вовсе провозглашает принцип пожизненного найма, хотя это и не отражается в кадровых документах. В противном случае получится, что специалисты обучаются в вашей компании, а потом основывают свою специальность либо уходят к конкурентам, где реализуют-таки успешный продукт.
Еще одним весьма распространенным способом выхода на новый для компании рынок является покупка стартапов в интересующем направлении бизнеса. Естественно, поскольку основным ресурсом таких компаний является идеолог продукта и его команда, то кадровая политика организации должна быть нацелена на то, чтобы адаптировать лидеров-идеологов и их команды в существующую структуру компании.
Правда, крупные компании могут покупать удачные стартапы не только для того, чтобы заполучить их команды, но и для того, чтобы избавиться от конкурента. Однако в отличие от других отраслей, команде такой компании будет намного проще запустить еще один стартап либо продаться конкурентам, поскольку именно команда является основным ресурсом IT-компаний.
История ведущих IT компаний-разработчиков коробочных программных продуктов изобилует примерами удачных и неудачных покупок команд. Например, автором операционной системы MS-DOS (самой первой операционной системы от Microsoft) был Тим Патерсон. Он написал операционную систему в Seattle Computer Products с 1978 по 1981 год. В 1981 году Microsoft купила его разработку, а затем и его самого. Он работал в Microsoft с 1981 по 1982 год, затем основал свою компанию, которую Microsoft купила вместе с ним в 1986 году. Далее он работал там с 1986 по 1988, затем с 1990 по 1998 годы. Таким образом, Билл Гейтс цеплялся за Тима Патерсона всеми возможными способами, пока тот вообще не ушел из IT.
Не менее показательна история автора операционной системы Google Android Энди Рубина. С 1992 он разрабатывает операционные системы для мобильных устройств. Компания WebTV, в которой он работал c 1995 по 1999 год, была куплена Microsoft. Затем он основал еще одну компанию, которая также в конце концов была куплена Microsoft в 2008 году. Третью компанию, Android, Энди Рубин основал в 2003, а в 2005 году ее купила Google. Google смогла предложить этому разработчику такие условия, на которых он согласился сотрудничать, и на свет появилась новая операционная система, стремительно набирающая популярность на мобильных устройствах.