Специальный выпуск Bloomberg Businessweek, 11.06.2015
Специальный выпуск Bloomberg Businessweek, 11.06.2015
Содержание:
Часть 1. Человек в бежевом пиджаке
Часть 2. Что такое компьютер?
Часть 3. Почему программисты так болезненно относятся к языкам?
Часть 4: Почему программисты такие злые?
Часть 5: Совещание о валидации email-адресов
Часть 6: Как создаются приложения?
Часть 7: Триумф менеджера среднего звена
Программное обеспечение, или как его сокращённо называют «софт», появилось ещё в 1940-е. Это означает, что уже несколько поколений люди делают вид, что понимают, о чём говорят на совещениях про внедрение компьютерных технологий и код, на котором они написаны. Теперь, когда софт живёт в наших карманах, управляет нашими машинами и домами, и вообще доминирует в нашей повседневной жизни, мы больше не можем его игнорировать. Мир принадлежит людям, которые пишут код. И те, кто этого не понимает, останутся на обочине.
Этот выпуск посвящён тому, чтобы снять ореол загадочности с программирования и культуры людей, которые его создают. В нём будет немного технического языка и базовых математических концепций. Но мы постарались это компенсировать глубокими долгосрочными инсайтами, связанными с разработкой и практическим внедрением софта. На чтение материала может потребоваться несколько часов, которые, мы надеемся, будут способны прибавить пару десятков лет твоей карьере.
Джош Тирангейл, редактор Bloomberg BusinessweekЧасть 1. Человек в бежевом пиджаке
Ты образованная, успешная персона, способная к абстрактному мышлению. Вице-президент, которая тянет лямку старшего вице-президента. Твой офис, обставленный шикарной мебелью и щедро залитый дневным светом, вполне соответствует твоему почти двадцатилетнему опыту корпоративного управления.
Красивые медные таблички на стене рассказывают о твоих лидерских способностях внутри и за пределами компании. Одна — «Премия за партнёрство в инновациях, 2011» — от отдела продаж за поддержку их 18-месячной кампании по снижению «трения циклов», обеспечившая рост продаж на 6.5%. Другая — «За общественный ориентир, 2008» — от местной администрации за руководство командой волонтёров по покраске общественной школы.
В компании у тебя репутация очень осторожного и экономного человека. Ты это объясняешь тем, что не любишь платить за вещи, которые нельзя объяснить. Ты требуешь от подчинённых говорить простым языком. Этот принцип много раз тебя выручал на карьерном пути. Но всегда праваливался, когда речь заходила о разработке программного обеспечения.
Примерно каждые два года в твою размеренную жизнь врывается какая-то новая Интернет-штука. Которая требует вливания сотен тысяч (или миллионов) долларов на решение обтекаемо описанных задач с плавающими дедлайнами. Системы управления контентом, управление отношениями с клиентами, какие-то новые интеграции, мобильные приложения, «безбумажный офис», инициативы внедрения глобальных систем планирования ресурсов — не важно, как бы крепко ты ни старалась контролировать свой бюджет, расходы на софт вечно утекали между пальцев.
И вот опять. По ту сторону твоего (идеально организованного) стола сидит 30-летний парень с ноутбуком на коленках. На нём бежевый пиджак. Он пришёл обсудить крупный бюджет на абстрактый проект «изменения архитекруры сайта». Ему нужны деньги, твоя поддержка, новые сотрудники и внешние ресурсы. Исход этой встречи предрешён: вы дадите ему всё, что нужно, потому что CEO уже одобрил инициативу. Но если что-то пойдёт не так, отвечать будешь ты. Программисты безумно дороги, и по твоему опыту, проекты, которые начинаются с некомфортно крупных бюджетов имеют неприятную тенденцию только увеличиваться. Тебе надо понять, на что это в конечном счёте будет потрачено.
В гелерее Пантона цвет его пиджака называется «Taupe»
— Мы, по сути, упёрлись в пределы WordPress, — говорит он.
Кто вообще носит бежевые пиджаки?
Технический директор был уволен пол года назад. У него были усы и трое детей в колледже. Это было жёсткое увольнение. Чувак в бежевом пиджаке (ЧБП) работает на нового технического директора. Она пришла из Adobe, у неё короткая причёска и нет усов.
Вот, что они говорят: весь код, на котором работает наш сайт, должен быть заменён. Когда-то он был очень ценным и позволял компании держаться на плаву, но новый технический директор считает его плохим. Она говорит, что старый код превратился в спагетти, и поэтому все наши системы буксуют из-за него. Все сторонние сервисы, за которые ты оплачиваешь ежемесячную подписку устарели и больше нам не подходят. У конкурента корзина покупок анимированная, она помнит все клиентские заказы и по запросу генерирует счета. Наша корзина не помнит ничего.
Отдел продаж слоняется по офису, театрально вздыхая по поводу того, как им стыдно за наш сайт. На мобильных телефонах сайт не работает. Заказы пропадают на полпути. Пользователей разлогинивает без предупреждения. Кто-то должен всё исправить.
Именно поэтому к тебе и пришёл ЧБП.
Ладно, кто он такой? Программист? IT? Нет, он «Scrum Master».
— По поводу выбора платформы мнение команды разделилось, — продолжает он. — Часть предлагает выбрать Drupal 7 и прикрутить его к Magento. Но это всё ещё PHP. Другой вариант — делать бэкенд на Node.js, а фронтенд на Backbone.
Ты поднимаешь бровь. Он сочувственно поясняет:
— В этом случае всё будет написано на JavaScript: и фронт, и бэк.
Все эти слова тебе знакомы. Ты читала об этом на Википедии. И даже осилила целую книжку по оценке разработки программного обеспечения. Тогда казалось, что это имеет какой-то смысл.
Ты задаёшь универсальный вопрос для обозначения контроля над ходом переговоров:
— Вы посчитали стоимость обоих вариантов?
Он называет тебе сумму и сроки. По опыту ты точно знаешь, что эти числа занижены вдвое. Проект будет просрочен как минимум на год. Он обещает долгосрочные эффекты: лицензии Oracle стоимостью $85,000 в год больше не понадобятся, разработка переезжает на бесплатную open-source базу данных.
— Вообще-то это должно было быть сделано ещё при миграции на Magento, — говорит он. Намекая, что это должен был сделать его предшественник.
Разумеется.
Ты смотришь в свои таблицы и напоминаешь ему, что контракт с Oracle был продлён пару месяцев назад. Так что пока вам придётся продолжать по нему платить. Глубокий вздох.
Этот парень зарабатывает на треть меньше тебя. Он получил бакалавра в приличном государственном университете. У него 500+ контактов на LinkedIn. Этот плюсик после 500 тебя раздражает. Что это значит? Пятьсот пять? Или пять тысяч?
Ты чувствуешь, что по каким-то загадочным причинам этот парень превосходит тебя. Не в корпоративной иерархии, не по доступу к столикам в лучших ресторанах города и не по возможностям корпоративной юридической защиты. В чём-то другом. Он сидит перед тобой, поглаживая свою короткую бородёнку. У него загорелые руки, судя по всему он ходит в походы, на его носках вышиты ниндзя.
— И не забудьте, — говорит он, — кроме того, нам нужно заложить бюджет на приложения.
Это всё происходит на самом деле. Скрам мастер в носках с ниндзя пришёл в твой офис и говорит, что ему нужен бюджет на приложения. Если проект развалится, на его карьеру это никак не повлияет.
Ты привыкла использовать в работе метафору бочек с наличными. Ты слышала, что одна стандартная американская бочка вмещает $100,000 однодолларовыми купюрами. В следующем году ты сожжёшь почти целую бочку наличных только на то, что ваша база данных работает на Oracle. И теперь выясняется, что мы можем от этого отказаться. Ладно, одна бочка это не так страшно. Но никогда не бывает только одной бочки.
Этот проект на пять бочек или на десять? Или больше? Пока не ясно. Но запах сгорающих наличных ты чувствуешь очень хорошо.
На этом этапе переговоров ты обычно любишь посмотреть просителю прямо в глаза и спросить: «Оукей, у нас есть бюджет и сроки, но когда это будет сделано? По-настоящему. По-честному. С возможностью отчитаться о законченном проекте. Признайтесь мне, исповедуйтесь, снимите груз со своей души».
Но в этот раз ты себя останавливаешь. У тебя нет никакого желания снова выслушивать лекции покровительственным тоном про даты релизов, циклы гибкой разработки и непрерывную доставку. Ты пока не будешь обнажать своё невежество. Когда это будет сделано? Ты уже смирилась с тем, что для проектов софтверной разработки правильный ответ — никогда.
1.1. Зачем мы тут собрались?
Редактор этого журнала однажды подошёл ко мне с вопросом, могу ли я объяснить, что такое код?
— Нет, — ответил я. — Начнем с того, что я не очень хорош в математике. Да, я программист, но я с Восточного побережья. А не один из тех крутых парней из Кремниевой долины.
Я начал программировать около 20 лет назад, изучая oraperl — специальную версию языка Perl, переделанную для работы с базой данных Oracle. Через месяц после начала работы я повредил аккаунты 30 тысяч игроков в фэнтази баскетбол. Они завалили меня гневными письмами. После этого я решил подходить к таким задачам более ответственно.
То есть я не из тех, кому информатика даётся легко и естественно. Я люблю компьютеры, но то, как они работают, никогда не было для меня очевидно. Только после двух десятилетий попыток в нём разобраться, компьютер, наконец раскрылся передо мной. Вся магия испарилась. Теперь я могу поговорить о работе с ребятами из Amazon.com или Microsoft, и не испытывать при этом стыда. И я бы с радостью пообщался с работниками Google и Apple, но они так редко попадаются среди обычных людей.
Лучше всего я понимаю, как работает Всемирная Паутина (я писал код за деньги на Java, JavaScript, Python, Perl, PHP, Clojure, и XSLT). Но интернет — это малая часть громандого мира разработки программного обеспечения. Кто-то посчитал, что сегодня на планете существует 11 миллионов профессиональных программистов, и ещё 7 миллионов занимаются этим как хобби. Это сравнимо с населением агломерации Большого Лос-Анджелеса.
Только представь, что весь ЛА пишет код. Восточный Голливуд — это разработчики под MacOS, Западный ЛА — это мобильная разработка, Беверли Хиллс пишет код для финансов, а весь округ Оранж — под Windows.
И таких районов очень много. Есть люди, которые пишут код для микрокомпьютеров размером со спичечный коробок. Есть те, кто пишет софт для телевизоров. Программисты существуют для чего угодно. У них разные культуры, разные профессиональные и племенные традиции и ритуалы, с помощью которых они организуют свою ежедневную работу. Если бы мне сказали, что системный администратор ходит на курсы жонглирования, это звучало бы логично. А от проектного менеджера я бы ожидал занятий на трапеции. Я встречал информационных архитекторов, которые ведут списки своих друзей в электронных таблицах. А спецы по кибер-безопасности обычно избегают любых вечеринок.
К чему это я говорю: я один из этих 18 миллионов. Моя точка зрения и мой взгляд на код — один из миллионов. Код был частью моей жизни. Как и в каком-то смысле и твоей. И настало время проговорить и разобраться, как это всё работает.
Каждый месяц появляются вещи, которые упрощают нашу жизнь. Они позволяют делать штуки, которые до этого казались невозможными. Они позволяют создавать новые виды хаоса и новые виды порядка. Каждый месяц код меняет мир каким-то
интересным,
удивительным
или тревожным способом.