Съешь еще этих мелкомягких булочек с тараканами, да выпей чего-нибудь по-крепче

Перепосчу статью http://habrahabr.ru/post/183130/ с Хабра полностью, ибо она шедевральна. Эдакий взгляд изнутри корпорации очень познавателен в плане «а как же на самом деле стряпаются булочки для офисных хомячков?»

Чему я научился за 8 месяцев в Microsoft

Моя стажировка в Microsoft Windows Azure началась ровно два года назад, сразу после колледжа, и проходила она в той же команде, с которой я проработал последние восемь месяцев.

Недавно мне в голову пришла мысль подвести определенный итог и рассказать о некоторых принципах, которым я научился за эти восемь месяцев. Читателю может показаться, что они делают работу не самой приятной — но нет, это не так. Я-то уже понял, что ровно те же самые проблемы есть во всех больших компаниях, и большая часть замеченного мною касается не только Microsoft — вдобавок, у каждой компании есть еще и свои собственные проблемы.

Не могу сказать, чтобы я был несчастлив, и не хочу ни на что жаловаться… но в колледже об этих вещах меня никто не предупреждал.

Итак, поехали.

  • Не надейтесь найти в корпорации документацию. Исходя из того, что мне довелось видеть — все знания в компании передаются в основном посредством разговоров и мастер-классов. Часть доступной информации передается по электронной почте и вообще нигде не сохраняется. В остальном мире сейчас так не принято — ведь если кого-то вдруг нечаянно собьет автобус, то никто другой не сможет легко взять и продолжить его работу (например, сесть и сразу писать дальше код). И тут это считается нормой. Если бы у меня была компания, то я бы предпочел иметь вики на тысячи страниц.
  • Важно не то, что ты сделал — важно то, что ты продал. Можно днями улучшать свой код и править чужие ошибки, но пока это не оказывает никакого влияния на продажи и результат усилий невозможно продать — ваша работа практически ничего не значит. Никого не интересуют ваши правки кода в погоне за его чистотой или стилистическим единством; никого не интересует и решение проблем с архитектурой. На вас даже могут обидеться, если вы будете заниматься подобным. Когда я был студентом, мне не это рассказывали.
  • Не всем есть дело до программирования. Вы не всегда будете работать с теми, кто нежно любит разработку софта. У большинства людей здесь есть в жизни что-то еще (семья, дети), поэтому стремление написать чистый код чаще всего не входит в их планы. И это нормально. Я научился не ждать энтузиазма от всех и каждого.
  • 2-3 часа чистого кодинга в день — это замечательная цифра. До того, как я попал на свою работу, я программировал 8-10 часов каждый день, сидя за своими проектами. А в новом окружении у меня едва удается писать код 2 часа кряду. Большую часть своего времени я провожу в попытках понять, как работает чужой некомментированный/недокументированный код, занимаюсь отладкой странного поведения программ и посещаю ежедневные собрания. Все сказанное касается не только меня, поэтому случается, что проходят дни без единого коммита во всей команде. И это тоже нормально.
  • Ничего не делать для других взамен — это нормально. В своей организации я не встретил ни одного блоггера или разработчика открытого ПО, который бы посвящал часть своего времени любой «отплатой» коммьюнити. Гуглить ответы на Stack Overflow — это с радостью, но свой ответ на вопрос там никто никогда не напишет. Я их понимаю.
  • Здесь не слишком осведомлены о том, что происходит во внешнем мире. Думаю, все вы каждый день читаете различные новости IT-тематики в блогах, на Reddit или Hacker News. Здесь это не принято. Я был удивлен, когда узнал, что никто из команды Windows Azure никогда не слышал про Heroku или Rackspace — а ведь это их прямые конкуренты. Это приемлемо, не всем же про это стоит знать. (Тут действительно поразительное сходство с Apple, если верить книге Адама Лашински «Inside Apple» — прим. переводчика)
  • Суть в том, чтобы делалось дело. Если менеджер просит вас о кнопке, которая будет делать то-то и это, то никого не интересует, чего вы там наворотите. Когда запрошенная функция начинает работать, можно считать, что задача выполнена — все остальное можно будет поправить потом. Хотя, честно говоря, сам-то я с этим обещанным «потом» никогда так и не сталкивался. В колледже мне говорили, что качество кода так же важно, как и сам результат его работы. Тут оказалось, что это не так.
  • Копипаст кода — это нормально. Если кто-то на Github застукает вас за подобным приемом, готовьтесь к расправе в темной подворотне. Тут же я не раз встречал исходники, которые просто копипастились из проекта в проект. Поскольку свое дело они делали (об этом — ниже), никого не интересовало то, что код абсолютно неподдерживаемый.
  • Ради скорости дела можно обойтись и без code review. Это один из обычаев нашей команды — если ты связался с чужим кодом, то ты должен отправить code review. Обычно же этим никто не занимается, и можно прождать уйму времени, прежде чем кто-то после десятого письма вам ответит.
  • Последние версии ПО, ага, как же! Далеко не всем нравятся последние версии. 90% моих коллег используют старые версии Office, Windows, Visual Studio и .NET Framework. Есть суеверие, что новые версии напрочь ломают устоявшийся рабочий процесс. Наверное, им руководствуются те, кто до сих пор запускает все свои приложения на Java 1.3 — 1.5. Так я отучился ждать использование последних версий ПО в проектах.
  • Ваша специализация не имеет значения. Студентов нанимают тысячами и случайно распихивают по командам (которые вы не сможете сменить еще полтора года). Неважно, развлекались ли вы с MongoDB, разрабатывали приложения под iOS, коммитили в Apache, дизайнили интерфейсы или «бустрапили» свой личный стартап. Вас наняли, чтобы вы сделали то, что вам скажут. Я не ожидал подобного. Здесь слишком сложно найти то место, где можно было бы заниматься тем, что любишь.
  • И в заключение. Вы работаете на своего менеджера и на его зарплату. Вот об этом мне точно никто раньше не говорил.

А еще приведу пару-тройку ярких комментраиев к статье:

— Фактически нужно быть готовым к тому, что все данные с вашего компа могут оказаться в третьих руках и никто не понесет за это ответственность. Пока вас не коснулось — кажется не таким уж важным.
Главное работа идет, фиксы клепают, план выполняется.

— Нет документации? Так мы ж ее не продаем — зачем писать? Говнокод? Аналогично — сорцы ж не продаются. О конкурирующих продуктах не в курсе? Ну и фигня, мы их не продаем — чего нам париться. Распределение труда? А кто его покупает? И т.д.
Любому взрослому человеку понятно, к чему это приведет: тонны бажного, нечитабельного, неекстендабельного, незадокументированного кода, в который невозможно вносить никакие изменения не привнеся кучи регрессивных ошибок, а то и вообще не переписывая все с нуля. Бесконечные часы колупания в чужом говнокоде в результате которых только часы переписывания с нуля «рядышком» чтоб ничего не поломать, и, соответственно, рост сложности и повторения. Все эти часы вполне измеряются в долларах.

— ЦИТАТА «Вот так Microsoft и работает: на каждый продукт у них своя группа разработчиков, и каждый год-другой эта группа выпускает в свет новую версию своего продукта. Вот и все. И имеем мы тут, леди и джентльмены, чисто маркетинговую команду, которая посмотрела на все готовящиеся новые версии, решила, что им нужна «тема», чтобы Microsoft выглядела Великим Изобретателем и Рационализатором, и постановила: отныне звать всем свой очередной шедевр «.NET». Когда вы работаете в таком месте, как Microsoft, ничего нет хуже людей маркетинга у руля.»
russian.joelonsoftware.com/Articles/MicrosoftGoesBonkers.html

— По опыту скажу, что нечто похожее происходит во многих корпорациях. Т.к. главная задача — максимизация прибыли.

— Это называется капитализм.

— ключевые фразы для менеджмента скорость и результат. Им далеко наплевать, что «внутри». Делать деньги — вот основная цель.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s