Недостатки работы в Google: Про рутину

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

Для рутинной работы нанимают высококлассных профи

Соглашусь. Лично в моей работе рутина занимает где-то процентов 50 времени. Но тут есть пара нюансов:

1) В компании, где все только будут писать код, и никто не будет его рефакторить, фиксить, чистить и все такое – очень быстро код превратиться во что-то неудобоваримое, с чем невозможно работать. Поэтому я отдаю себе отчет, что даже несмотря на то, что работа не самая интересная, она самая важная (и мне есть с чем сравнивать).

В Google, как мне кажется, соотношение здоровое – качество не идет в угоду “давайте запустим побыстрее, пофиг на качество”, но и процесс не тормозится “давайте еще напишем тест на случай, если прилетит НЛО и разбомбит все серверы”. Хотя вру – второй процесс тоже симулируется периодически, да. Зато мы знаем – никакие НЛО нам не страшны! :}

2) Чем выше человек поднимается по карьерной лестнице, тем больше они занимаются рутинной работой. Самое интересное делают Junior программисты и интерны, по-моему.

– Менеджеры занимаются организацией процесса – распределить проекты между командой; составить список багов для “Fixit Week”; следить за тем, чтобы все процессы работали отлаженно, и чинить где надо; разруливать ситуации, когда у разных команд разные приоритеты, хотя цель одна; коучить сотрудников; выбивать ресурсы для своей команды…

– Программисты постарше постоянно висят на саппорте – лично мне постоянно пишут в чате “А помните вы тут код написали 3 года назад? У нас тут есть вопрос…” или “У нас тут <фича, которая я даже не знала что у нас есть, так как ей лет 5 никто не пользовался> не работает – так и должно быть, или это баг?”  или “А как сделать <что-то о чем я вообще не имею понятия>?” или “А почему <Вася, который ушел из Google год назад> сделал вот так, а не иначе?”.

– На плечи техлида падают самые сложные баги. И еще чтение чужого кода, участие почти во всех мало-мальски существенных решениях (уровня выше, чем “как мне назвать эту переменную?”) и консультация других – ведь кто как не техлид знает все и вся о проекте? В итоге наш техлид тоже постоянно сидит на саппорте, только более высокого уровня.

При всем при этом меня эта ситуация устраивает:

1) Я считаю, что большинство рутины – это мега важно. Я работала в команде, где все конценртрировались на том, чтобы запустить все побыстрее, и тестов почти не писали. Не говоря уже о всяком более продвинутом тестировании – stress tests, regression tests и все такое. Стоит ли говорить, что с какого-то момента, мы не занимались ничем иным, чем чинили баги 24 часа в сутки, иногда по ночам, так как “у клиента не работает, а им срочно надо”. При этом активно добавляя новые баги, конечно же.

И я работала в команде, где кода тестов было больше, чем самого кода. Там все работало как часы. Почти все баги отлавливались очень быстро, даже не попадая в базу кода. А те, что попали, отлавливаются на 99% другими видами тестов. В итоге проект был почти беспроблемным, и несмотря на всю свою сложность и загрузку.

2) Сколько времени уделять рутине зависит от меня. Есть какой-то минимум, конечно, но если научиться организовывать свое время – например для вопросов других устроить один “консультационный” час в день – то можно всю рутину изолировать, и большинство (70%+) времени посвящать чему-то более важному.