Мне довелось побыть с обеих сторон баррикад — как со стороны менеджера, так и со стороны программиста. Отличаются они той фразой, которую чаще всего говорят заказчику.
Программист чаще говорит «нет»:
— Это не нужно.
— Это не получится сделать быстро.
— Все от этого давно отказались.
— Сервер это не потянет, придётся заказывать дорогой хостинг.
— Это невозможно в текущих рамках проекта.
Менеджер чаще говорит «да»:
— Да, наши программисты это вставят.
— Конечно, я добавлю это в ТЗ.
— Какая хорошая идея!
— Да, эти стопицот только что выдуманных вами свистелок можно включить в ту же стоимость.
— С этим программисты быстро управятся.
Причина — в соотношении зарплаты и трудоёмкости. Трудоёмкость для менеджера не меняется: он должен передавать программистам пожелания и следить за их выполнением. Для программиста трудоёмкость увеличивается при добавлении каждой новой фичи.
Есть проект. Есть количество работы. Есть сроки. Есть стоимость. Каждая новая фича увеличивает количество работы. В случае адекватности менеджера вместе с увеличением трудоёмкости будет отодвигаться срок сдачи и расти стоимость проекта. Но почти всегда менеджеры совершенно не имеют представления о трудоёмкости процессов, поэтому количество работы растёт быстрей, чем стоимость проекта и время на работу.
Особо неадекватные менеджеры могут предлагать заказчику свои идеи свистелок-перделок, обещая включить их в проект «бесплатно», в качестве бонуса.
Но первое, что я встретил в среде менеджеров — это святую уверенность в том, что именно они тянут на себе весь продукт, а кодеры мало того, что ничего не хотят делать, так и не успевают постоянно.
Небольшой ЦОД. Оборудован по высшему классу. Через несколько лет после запуска пропадает питание по городу. Причём по обоим вводам. ИБП протянули, сколько могли, потом должны были вступить в игру дизель-генераторы. Они не вступили. ЦОД гаснет. Клиенты в бешенстве.
Небольшая ревизия выяснила: батареи в ИБП установлены дешёвые и с меньшей ёмкостью, солярки в дизель-генераторах нет, масло не менялось с даты пуска ЦОДа в эксплуатацию. Кто виноват? Управляющий! Недоглядел. А чё глядеть-то, если оно без сбоев само работало столько лет?
Поменяли управляющего. Через месяц вырубаются оба ввода. Поочерёдно. ИБП держат, запускается дизель. Вот только сообщений от Энергосбыта не было. Дежурный энергетик звонит в Энергосбыт, там говорят, что у них всё в порядке. Интересно, думает энергетик, как это так: кабель по двум вводам порвали, а Энергосбыт не знает? Не может быть!
Идёт в щитовую. Там находит нового управляющего, нетерпеливо посматривающего на часы. На немое удивление энергетика управляющий уверенно возвращает питание, закрывает дверь своим ключом и созывает совещание. На нём выносит благодарности дежурным энергетику и инженеру за отличное состояние резерва. На вопрос, откуда доступ в помещение и знание, что и как дёрнуть, отвечает, что он отвечает за всё и должен иметь доступ везде и знать обо всём.
За год он дёргал вводы раза три. Однажды дёрнул утром 1 января и встречал заспанного энергетика с шампанским в щитовой. Ну, постепенно все привыкли и на рёв дизель-генераторов никто не обращал внимания. Только дежурный энергетик привычным маршрутом шёл в щитовую, потому как управляющий обратно вводы не включал, пока кто-нибудь не подойдёт.
Можно было бы это всё списать на чудачества нового управляющего, если бы не одно «но». Однажды, через полтора года после смены управляющего, опять вырубили оба ввода. Энергетик попёрся в щитовую, однако управляющего там не было. Через минуту прибежал управляющий с большими глазами и спросил, в чём дело. В это время в штатном режиме отработали бесперебойники и запустились дизеля. Управляющий с энергетиком, обгоняя друг друга на поворотах, побежали звонить в Энергосбыт.
Кто проектировал вводы в ЦОД, я не знаю, но лежали они в одной канаве и заходили сначала в одну подстанцию, а потом вторая ветка шла во вторую. Неизвестно откуда взявшаяся дикая бригада строителей копала канаву перпендикулярно канаве с вводами и благополучно её нашла. В конце концов аварийная бригада Энергосбыта обнаружила пустой обуглившийся экскаватор и полную тишину вокруг. Испугались ребята. А кто бы не испугался? Высоковольтный кабель — это не шутки.
Дизеля проработали в штатном режиме часов семь, пока устраняли аварию. Пару раз им подвозили солярку по договору, который сразу после вступления в должность заключил новый управляющий. Клиенты ЦОДа ничего не заметили. Только дежурный инженер, вынужденно разруливающий ситуацию, удивлялся: куда это делись энергетик и управляющий?
Как раскололся на корпоративке энергетик, после того как он понял, что ничего нештатного не произойдёт, проверил уровень солярки, посмотрел на журнал обслуживания ИБП и дизелей и позвонил поставщику с просьбой подвезти солярки, если не хватит, он взял бутылку, заныканную для Нового года, и пошёл в кабинет к управляющему. Тот, увидев энергетика с бутылкой, молвил:
— Раз с бутылкой пришёл, значит, всё работает. Наливай!
Довелось мне на днях посидеть с друзьями в баре. Собирал всех я, соответственно, приглашены были исключительно интересные мне личности, а это компания весьма разношёрстная: бородатый админ-линуксоид, дядя лет сорока — сорока пяти; мой друг детства, трудящийся менеджером по работе с клиентами, и девочка-дизайнер, тоже родом из моего раздолбайского юношества. Ну, и я, молодой инженер, содержащий в порядке небольшой зверинец в некоем государственном учреждении.
Общих тем у такой компании не так чтобы много, поэтому, само собой, мы потихоньку перешли на обсуждение всяческих айтишных прелестей. И знаете, что побудило меня написать сюда? Ни за что не догадаетесь. Отсутствие споров, брызгания слюной и взаимной ненависти.
Тихо и спокойно обсуждали достоинства и недостатки своих ОС и гаджетов старый линуксоид, который Убунту даже на планшет исхитрился впихнуть, менеджер-поклонник зелёного робота, дизайнер, влюблённая в надкусанное яблоко, и я, работающий с виндами от 2000-й до 8-й, имеющий айфон, айпод и планшет на Андроиде. Домашняя машинка, к слову, у меня под «восьмёркой» как под основной системой, а для подработок, которые случаются нечасто, я пользуюсь Убунтой.
К чему я это говорю? Наверное, просто хвастаюсь. А может, тихонько мечтаю о мире во всём мире и о том, что когда-нибудь люди научатся понимать, что во многих вопросах (да почти во всех) нет правильной и неправильной позиции, а есть только позиция, удобная каждому конкретному человеку. Так, глядишь, и поводов для реальных войн и интернет-холиваров станет меньше.
К сожалению, автор статьи «Moron-driven development» как-то упустил из поля зрения множество успешнейших проектов, изначально создаваемых разработчиками без менеджеров. Навскидку три известнейших примера: Minecraft, Google, Linux.
«Тот элемент работы, благодаря которому проекты в итоге успешно сдаются и получаются нормальными»? Не смешите. Работу как раз выполняют разработчики и инженеры, а менеджеры, каждый в меру своих познаний, вставляют палки в колёса.
Впрочем, у буржуев не всё так грустно. У них менеджеры адекватней, внутри организации существует определённый порядок обращений и трава зеленее.
У нас, если вдруг менеджер решает прикрутить к продукту свистелку-перделку, это его личный каприз. С этим капризом он идёт к начальнику, аргументирует выдуманной историей «все пользователи мечтают» — и программисту в обход начальников отделов и тимлидов приходит бумажка: «Сделать до среды!». Так как ответственности за провал продукта менеджер не несёт, подобное будет повторяться из раза в раз.
У буржуев работа над свистелками-перделками начинается, когда программист трудится над прошлым проектом. Менеджеры изучают существующие на рынке продукты, их аудиторию и придумывают свистелку, которая позволит обойти конкурентов. И это не просто их предположение — они должны обосновать. Плод труда отдела — пухлая папка с планируемыми расходами и доходами, и за это предположение составители отвечают рабочим местом.
Программист у буржуев не отвечает за успех продукта. Он отвечает за реализацию заранее оговорённой функциональности в заранее оговорённое время и для заранее оговорённого списка устройств.
У нас кодер Фёдор приходит на рабочее место, бережно убирает с клавиатуры принесённый кем-то на починку ноутбук и находит список того, что должен сделать до среды. Сделать он не успеет, ведь тот, кто ставил задание, совершенно не в курсе скорости, с которой запиливаются фичи, и даже не предполагает, что нужно время на тестирование. Но виноват окажется программист, так как, по мнению менеджеров, «не делает программу, а в свои буковки тычет».
В среду вместо релиза будет залита недотестированная бета, конкурентные преимущества которой будут удовлетворять только одного человека — глуповатую маму менеджера. А программисту подарят книгу по тайм-менеджменту, чтобы научился успевать.
Вам от сорока. Вы гордо зовётесь IT-менеджерами, IT-консультантами или IT-директорами, работаете в крупных конторах с филиалами по всей стране, где занимаетесь чем-то узкоспециализированным, вроде DBA или цисководства.
В вашей компании IT-отдел велик и могуч. Каждый знает только своё дело и чихать хотел на малейшее отступление от непосредственных должностных обязанностей.
Вам часто приходится вспоминать про просроченные SSL-сертификаты уже после того, как они просрочены и вам десять раз позвонили клиенты, а ваши пользователи, даже если у них просто отошёл разъём у мыши, обучены сразу же заводить заявку на «ремонт мышки» в вашей ERP-системе и ждать минимум полдня, потому что в вашем SLA прописан срок реагирования «от 2 часов».
Вы не ремонтируете и не апгрейдите железо самостоятельно. У вас только брендовое железо и серверы от крупного поставщика. Для любой операции вы вызываете «специально обученного» представителя сервисного центра, ведь иначе потеряется гарантия. Компания подождёт, ведь по SLA вы уже тоже написали, что «регламентное обслуживание серверов» может занимать минимум день.
Вы замечательно ладите с бухгалтерами, потому что не пересекаетесь с ними вообще.
Вы всегда одеты в строгий костюм и очень обижаетесь, когда вас называют как-то иначе, а не Иваном Ивановичем.
Вы очень любите компанию Microsoft. У вас десяток MCTS и парочка сетов MCITP, оплаченных конторой. У вас внедрена Microsoft Dynamics AX, одна подписка на обновление которой стоит от 200 килорублей в квартал.
Вы искренне верите, что Skype — удобный бесплатный VoIP-клиент без багов и что Microsoft сделает его только лучше.
Вы любите рассказывать, какая удобная ОС — WIndows, что в ней многое сделано для удобства администрирования и управления, даром что «удобство администрирования» для вас заключается в возможности накатывать софт через GPO.
Вы настороженно относитесь к Linux, ведь даже enterprise-решения Red Hat не стоят так много и с них нельзя получить откат, а попытка предложить вам перевод хотя бы части пользователей на Linux-десктопы наткнётся на шквал контраргументов.
Вы считаете, что Apple — переоценённая компания и её железо не дотягивает до последних девайсов на «роботе». Вы всем говорите, что никогда не купите себе айфон, потому что не видите смысла тратить столько денег на это устройство.
Вы считаете, что Google — «серый кардинал» IT-отрасли, только и думающий, как бы собрать о вас побольше данных и сделать с ними что-нибудь противоправное без вашего ведома.
Вы считаете, что Сергей Брин — уже давно не «русский», и подсознательно завидуете ему.
Сетевое оборудование вы берёте только от Cisco, Juniper или Allied Telesis. Конечно, эти железки не глючат никогда и стоят совсем недорого. Из их возможностей вы используете едва ли треть, которая, конечно, не может быть реализована на «обычном десктопном железе и Linux».
Вы считаете, что Microsoft Exchange Server или Zimbra Collaboration Suite с enterprise-подпиской — разумное вложение средств, ведь тогда по каждому багу можно будет звонить в техподдержку и терпеливо ждать, пока они разберутся.
Вы используете Internet Explorer последней версии и считаете его удобным, ведь он замечательно интегрируется со многими системами и доменными политиками. Кривость этой «интеграции» с другими браузерами вы списываете на кривизну самих браузеров.
Везде, где можно, вы стараетесь внедрять Kerberos-аутентификацию. Вы кривите губы, когда при вас упоминают NTLM. При этом часто вы не предусматриваете возможности аутентификации устройств, которые чихать хотели и на Kerberos, и на NTLM. Руководству вы объясняете это высоким уровнем безопасности, за который приходится чем-то платить.
Вы в принципе не пытаетесь найти бесплатные аналоги платного ПО. Вы не экономите деньги работодателя, а он за это регулярно платит вам премии.
Вы приобрели не просто корпоративный антивирус, но полноценный комплект из защитных систем. То, что пользователей не обучили пользоваться им даже элементарно, вас не волнует — это уже не ваша работа.
Вы знаете много умных аббревиатур вроде SLA, TCO, ROI. Вы также в курсе, что такое NAC, IPS/IDS, DLP. Вы очень гордитесь этими знаниями. При этом несведущим людям вы не утруждаетесь объяснять значение терминов — всё равно не поймут.
Вы не вполне понимаете, зачем нужен Sharepoint.
Вы делаете резервное копирование на стриммер, на отдельный LUN на СХД, на удалённый сервер в другом филиале и к чёрту на рога. Вы считаете, что всегда в случае очень высокой спешки сможете быстро и без проблем достать этот бэкап и развернуть его. Варианты, что магнитная лента на LTO-кассете может быть испорчена, LUN грохнет нерадивый помощник, а связь с удалённым офисом упадёт на неделю, вы не рассматриваете, ведь всё это не может случиться одновременно.
В вашей компании есть WPA2-Enterprise сеть с EAP-PEAP или даже EAP-TLS и смарт-карты. Ваш генеральный директор наверняка меняет доменный пароль вовремя, и вы не вынуждены каждый месяц сбрасывать пароль на старый, а ваши пользователи никогда не теряют смарт-карты.
Защищённые соединения в вашей компании используют только CA-сертификаты от Thawte или Comodo.
В свежепоставленной системе вы никогда не лезете в реестр, не отключаете службы. Вы одобряете все обновления от Microsoft, ведь у них отличный отдел тестирования и их апдейты не способны сломать какое-нибудь специфичное ПО вашей организации.
Никто не спорит, что enterprise-админы — грамотные специалисты и профессионалы своего дела, и порой им приходится поддерживать и внедрять то, о чем большинство админов не слышало и никогда не услышит. Да и кто я такой, чтобы всё это комментировать?
Но у меня к вам маленькая просьба: не смотрите свысока на своих младших коллег. Вряд ли вам сразу доверили работу с highload-решениями и business-critical приложениями. И раз уж вас так обижает звание «системный администратор», которое употребляют другие, можете гордо звать себя, например, IT-профессионалами.
5:59
Подорвался посмотреть, почему не сработал будильник, вчера поднятый на Cлакваре и настроенный на 6:00.
6:05
Звонок с работы. Станок отказывается выключаться. Мастер цеха в ахтунге. RDP через нет на сервак, TeamViewer на станок, «Пуск → Завершение работы → Выключить».
6:10
Вышел покурить и допить вчерашний кофе.
6:50
Зашёл сосед, забрал свой ноут, что принёс в три ночи бухой в хламину и попросил почистить.
7:20
Не получилось забрать выписки из клиент-банка. Есть у нас одна работница, которая приходит исключительно заранее.
7:30
Неправильно введённый пароль на ключ от клиент-банка заблокировал сессию на 15 минут. Бухгалтерия проинструктирована.
7:40
С намыленным черепом объясняю по телефону, что нужно сделать, чтобы просмотреть архив видеонаблюдения. Хорошо, что я купил водонепроницаемый и трудноубиваемый телефон.
8:00
У маркетинга закончился тонер в принтерах.
8:05
По дороге на работу — звонок от бухгалтерии: не идёт товарный отчёт по магазину на миллионы рублей.
8:10
Я на работе. Заправка картриджей, исправление косяков по товарному отчёту. Вдогонку несётся ещё куча заданий.
11:45
Я снова дома, и после банки «Бёрна» я наконец-то проснулся. И да — я в отпуске…
Носитель мании изобретательства снова готов порадовать читателей воспоминаниями, но на этот раз — из начала девяностых. На центральном телевидении тогда крутили один американский мультсериал, герои которого могли высоко и далеко прыгать — помните? А в научных и околонаучных передачах была популярна тема реактивных ранцев.
Ваш покорный слуга тогда сильно озаботился проблемой ДТП с участием пешеходов. Вот бы они могли вот так же, как на экране, перепрыгивать или перелетать через дорогу!
Грёзы разрушила очередная научная передача, где о реактивных ранцах заговорили с привлечением простой математики. Есть такой закон: чем более массово производят товар, тем он дешевле. Вот TFT-дисплеи, например: в том же начале девяностых «активная матрица» в ноутбуке считалась престижной характеристикой, а теперь они даже в самых дешёвых смартфонах. Что мешает и реактивные ранцы так же массовыми сделать?
Сами ранцы — ничто не мешает. Будут выпускаться такими же тиражами, как смартфоны — будут и стоить, как смартфоны. А вот расходники только дорожают. В той передаче подсчитали: на один перелёт через дорогу топлива уйдёт, как километров на десять на машине. И сами ранцы не будут делать массовыми и недорогими, как смартфоны, только потому, что уменьшится лишь цена «входного билета», а стоимость эксплуатации останется столь же огромной.
Ладно, а если удастся найти дешёвый и компактный источник энергии — такой, чтобы стоимость перелёта на ранце через дорогу стала ничтожной? Увы, препятствия останутся. Над дорогой не меньше опасностей, чем на ней — одни троллейбусные провода чего стоят!
Хорошо, возразите вы, но если такой источник найдут, то и троллейбусам провода будут больше не нужны. Да, но с таким источником будет выгодно делать весь транспорт летающим. А тогда средства безопасного перехода дорог будут не нужны по той простой причине, что исчезнет сам предмет перехода.
В общем, реактивный ранец для перелетания через дорогу — идея красивая, но, увы, она не пригодится ни в настоящем, ни в будущем. Так что пока, товарищи, учитесь переходить дорогу правильно — и наверняка доживёте до летающего городского транспорта и превращения всех улиц мира в пешеходные Старые Арбаты.
Каждый раз читаю в сети (как здесь, так и на других IT-ресурсах) про негодование разработчиков от менеджеров — чего стоят все эти истории про создание бритвы! — и каждый раз задумываюсь: уж не в параллельной вселенной ли я живу? Или, может, всё куда проще, и людям, как обычно, свойственно валить свои косяки и проблемы на кого-то другого, а также делиться по принципу «мы vs они» и «свой vs чужой»?
По моему личному опыту разработки, в котором были самые разные проекты как по тематикам, так и по размерам, менеджеры — это как раз тот элемент работы, благодаря которому проекты в итоге успешно сдаются и получаются нормальными. А вот проблемы начинаются как раз тогда, когда за руководство проектом садятся разработчики, любящие гнуть пальцы на тему того, какие они крутые специалисты по всему, или, что ещё хуже, когда проектом руководит сам заказчик (или его представитель), в большинстве которых сразу просыпается «творческая личность», начинающая выдумывать такой бред, который многим даже и не снился.
О проектах, ведомых разработчиками, можно долго рассказывать, но чаще всего там всё довольно-таки прозаично и упирается в неадекватные шапкозакидательские оценки сроков исполнения, абсолютно ублюдочную проработку интерфейсов, логики работы и юзабилити (ведь это всё «не нужно», «тут всё ясно и дебилу» и т. д.), посредственную поддержку и производительность на устройствах конечных клиентов (когда каждый раз «внезапно» оказывается, что средний домашний и офисный компьютер — это не десктоп с i7, 32 ГБ ОЗУ, 27-дюймовым монитором и последними версиями всего ПО). Впрочем, это всё банальные проблемы, которые так или иначе потом можно решить, хотя они и бесят, когда одни и те же люди умудряются регулярно попадать в них раз за разом и не делать выводов.
Куда опаснее ситуации, когда проектом руководит заказчик. Да-да, в этой ситуации все ещё хуже. Нет, заказчик не знает, чего он хочет. Нет, заказчик не «лучше знает», что ему нужно. Заказчик может потенциально знать цель проекта, его потенциальную аудиторию и особенности своего бизнеса, но он гарантированно не знает, как именно для этого должен быть сделан проект, чтобы он был хорошим, удобным, успешным и работающим. Честь и хвала тем людям, которые честно себе признаются, что они не являются специалистами в разработке, и доверяются специалистам, лишь общаясь с ними и обговаривая различные варианты реализации и всякие мелкие детали, однако это, к сожалению, очень редкое исключение. Почти всегда, когда проектом так или иначе рулит заказчик, всё происходит совсем иначе, и разработка превращается в ад.
Свистелки и перделки? Господи, да ведь именно заказчики в первую очередь и просят весь этот бред! Дурной вкус, желание выделиться, понты — объясняйте как хотите, но именно заказчики в первую очередь тянут подобное в проект. Нестандартные, выдуманные ими сами и абсолютно неинтуитивные/нелогичные элементы управления, меню, схемы поведения — шедевры креатива заказчиков. Рахитичные дизайны, кривые схемы вёрстки, цветовые схемы для инопланетян, несочетаемые шрифты, дикие пиктограммы, переусложнённые формы, бессмысленные анимации и прочее «добро» — это как раз результаты прямого доступа заказчика к руководству проектом. Про постоянные смены настроений, идей и многократные переделки уже сделанного я вообще молчу — да, кому-то такое нравится, вот только сроки сдачи проекта таким образом могут сдвигаться почти вечность. В итоге то, что можно было сделать, протестировать и сдать за три-шесть месяцев, делается более двух лет. Я не знаю, каким надо быть мазохистом, чтобы разработчику нравилось участвовать в этом балагане, даже получая за это приличные деньги.
А разгадка проста: менеджер, как руководитель проекта, играет роль фильтра между процессом разработки и заказчиком. Заказчиком, которому менеджер объясняет и рассказывает, что хорошо, а что плохо, что стоит делать, а чего делать не стоит, объясняет последствия для проекта в случае реализации тех или иных идей и фич — в общем, при общении с заказчиком менеджер как раз таки старается, чтобы проект получился нормальный, удобный, современный, актуальный, а главное, его можно было сделать в адекватные сроки и побыстрее успешно сдать. Преуменьшать этот труд можно либо по глупости, либо по наивности или максимализму.
Есть поверье: как только физик-теоретик появляется в лаборатории, в ней что-то ломается. Чтобы пошутить над Вольфгангом Паули, часы связали с дверью. Как только профессор откроет дверь, часы должны были остановиться. Но часы не стали: сломался передаточный механизм.
Пишем вдвоём программу. Логика сложнейшая, там и тут самопроверки.
— Иди сюда, программа пишет: «Mismatch on 0»! — кричит тестер.
Сегодня резко ухудшилось самочувствие: стошнило, поднялась температура до сорока, заболело горло. Полный набор для выдачи больничного. Так уж вышло, что денег на мобильном не оказалось, а «обещанный платёж» уже был израсходован.
Но ничего, ведь у меня же есть онлайн-кошелёк! И там много-много денег, которые я смогу перекинуть на телефон, чтобы сделать один звонок. Но живу я в глухомани, сижу с Йотовского модема, который плохо ловит покрытие и не может прогрузить все эти тонны перегруженного Яваскрипта.
Кто-то скажет: сам виноват, ты нищеброд, живёшь далеко. Ищи другие способы. Но мне, знаете ли, пофигу. Дерьмо — оно и есть дерьмо само по себе, каким бы я ни был неподготовленным и «безответственным».
Чёрт с ними, с игровыми форумами и магазинами одежды. Но, блин, мне нужно просто перевести деньги, быстро и без проблем. Вместо этого мне рисуют надписи «быстро, надёжно, три степени защиты» внизу страницы. А на деле верхняя форма входа не работает, кнопка «Войти на сайт» посередине не работает, и я не могу совершать операции со счётом.
У почты Google есть опция перехода на «простой HTML». Прекрасная просто опция: нажал — и можно читать письма, можно писать письма, можно отправлять их в спам. Сделайте же хотя бы это!
Мне до лампочки ваш «минималистический стиль» с хипстерской графикой. До фени то, что у вас сейчас модно делать всё на этом JS какими-нибудь хитрыми фреймворками, замещая правильный
<a href="…">
какими-нибудь
document.open
. Обезьян, которые делали фронтенд этого неработающего хлама, нужно гнать вон из профессии. Дилетанты!
По счастью, мне через пять минут позвонил обеспокоенный родственник и обеспечил все необходимые мероприятия по вызову врача.