8 месяцев работы в Microsoft
Это перевод статьи Ahmet Alp Balkan, программиста из Сиэттла, о его 8 месяцах работы в Microsoft. Его представления о работе до попадания в компанию-гиганта во многом сходились с моими нынешними, поэтому я рад, что нашел эту статью. Мне, как еще вообще не работавшему по специальности программисту, было интересно узнать о жизни в крупных компаниях, поэтому я решил, что я не один такой и перевел эту статью для вас.
Два года назад, я попал в Microsoft Windows Azure стажером в той же самой команде, к которой я присоединился прямо после окончания колледжа и в которой работал на протяжении 8 месяцев.
Я решил собрать все то, что я узнал за последние 8 месяцев. Может показаться что все дерьмово, но это не так. Я понял, что каждый увидит подобные проблемы во всех больших компаниях. Большинство из них не относятся только к Microsoft. Каждая компания имеет свои проблемы. Я не говорю, что все плохо. Это просто пару уроков, которых я не ожидал в колледже (что-то вроде статьи про «ожидания против реальности»). Итак:
- Не ожидайте документации в корпорации. Я видел, что большинство информации внутри компании передаются путем разговора. Некоторая часть находится только в email и более нигде не сохранена. Так информация течет по цифровому миру. Если каких-то людей собьет автобус, никто не сможет заняться их работой или кодом. И это нормально. Если бы это была моя компания, в ней была бы огромная википедия.
- Дело не в том, что ты делаешь, дело в том, что ты продаешь. Ты можешь потратить дни, украшая свой код, делая его надежным и исправляя другие ошибки. До тех пор пока он не будет иметь практическую ценность и быть пригодным для продажи, код ничего не стоит. Никто не одобрит твою работу над стилем или архитектурными проблемами в их продукте, кроме того, люди могут обидеться.
- Не все обожают разработку. Ты не всегда будешь работать с людьми, получающими удовольствие от создания прекрасного програмного обеспечения. В большинстве, люди имеют другие дела (как например семья и дети), и написание лучшего кода не приоритет для них. Это нормально. Я понял, что не нужно ожидать энтузиазма ото всех.
- 2-3 часа кодинга в день – это хорошо. Перед тем как попасть на работу, я мог писать на протяжении 8-10 часов в день, занимаясь персональными проектами. Теперь, в рабочем окружении практически невозможно занять два часа конкретно на кодинг. Большую часть времени я трачу на выяснение того, как другой незакомметированный/недокументированный код работает, отлаживание странных вещей и принятия участия в ежедневных встречах. Конечно, я не один такой и бывают дни, когда в команде не происходит ни одного коммита. И это нормально.
- Не заниматься Open Source – это норма. Я почти не видел каких-либо блоггеров или разработчиков опен сорса в моей организации, отдающих свое время сообществу. Каждому нравится находить ответы на свои вопросы на Stack Overflow, но не каждый привносит в него вклад, отвечая на чужие вопросы. Я могу это понять.
- Мир снаружи многим здесь неизвестен. Я уверен, ты читаешь какие-либо сводки новостей о последних технологиях в блогах, Reddit или Hacker News каждый день. Здесь это редкость. Я был удивлен тем, что никто, кого я встретил из команды Windows Azure не слышал о Heroku или Rackspace, являющиеся прямым аналогом Azure. Это приемлемо, не каждый должен об этом знать.
- В корпорациях важно, чтобы работа была сделана. Если менеджер попросил тебя сделать кнопку там-то, которая делает что-то, никому не будет дело до того, что вы натворили. До тех пор, пока она работает – все в порядке и всегда может быть исправлено в будущем (я ни разу не видел, чтобы это происходило). А ведь в колледже мне говорили, что качество кода также важно, как и результат.
- Копипаст кода тоже не возбраняется. Если бы кто-либо вне компании увидел это, вас скорее всего ударили бы в лицо. Я видел исходники, скопипащенные по всему проекту. До тех пор, пока оно работает (смотри выше), никому нет дела, что ты написал неподдерживаемый код.
- Код ревью может быть пропущен в целях скорости. В моей команде принято – если ты работаешь с чьим-то кодом, ты должен отправить код ревью. В большинстве других случаев, этого не происходит и ты можешь прождать кучу времени, привлекая к себе внимание, пока тебе кто-нибудь ответит.
- Новейший софт, ну да. Никто здесь не любит последние версии софта. Почти 90% моих коллег используют старые версии Office, Windows, Visual Studio и .NET Framework. Есть распространенное мнение, что новые версии могут поломать существующий код. Это может быть причиной того, что некоторые предприятия до сих пор сидят на Java 1.3-1.5. Так, я понял, что не нужно ожидать последних версий ПО в компаниях.
- Твоя специальность обычно ничего не значит. Тысячи людей нанимаются прямиком из колледжа и зачастую случайным образом присваиваются к командам (которые ты не можешь поменять на протяжении 1.5 лет). Не важно, мастер ли ты MongoDB, умеешь создавать iOS приложения, разработчик Apache, разработал свою сетевую библиотеку, создал пользовательский интерфейс или основал стартап (не беспокойтесь, я не один из таких). Ты нанят для того, чтобы работа была сделана. Я не ожидал этого. Сложно найти место в компании, которое соответствует тому, что тебе нравится.
- В конце концов, ты работаешь на своего менеджера и его зарплату. Я не был уведомлен этим фактом в колледже.
- 6 марта состоится трансляция Xbox с показами игр Capcom, Nexon и EA
- Разработчики Skylanders и Crash Bandicoot из Toys for Bob становятся независимыми
- Microsoft планирует упростить апскейлинг игр на разных видеокартах