Речь в Йельском университете 2
From The Joel on Software Translation Project
Автор: Джоэл Спольски
Переводчик: Вадим Кадученко
В оригинале статья называлась Talk at Yale: Part 2 of 3 и была написана 4 декабря 2007
Перевод 1 части статьи - Речь в Йельском университете 1.
Перевод 3 части статьи - Речь в Йельском университете 3.
После нескольких лет в Редмонде, в течение которых я так и не смог приспособиться к окружению, я опрометчиво взял и переехал в Нью-Йорк. Там я несколько месяцев работал консультантом в Microsoft Consulting, но это закончилось полным провалом. Потом, в середине 90-х, на заре появления Интернета, я провёл несколько лет в Viacom. Это огромная многопрофильная корпорация, которой принадлежат MTV, VH1, Nickelodeon, Blockbuster, Paramount Studios, Comedy Central, CBS и много других компаний в индустрии развлечений. Именно в Нью-Йорке я впервые увидел, чем зарабатывает на жизнь большинство программистов. Это ужасная вещь, которая называется «программы для внутреннего использования». Это страшно. Вы никогда не захотите работать над чем-то подобным. Вы программист в компании, которая производит, ну, скажем, алюминиевые банки, и нет никакой готовой программы, которая управляет обработкой этих банок так, как им нужно. Они нанимают программистов «для внутреннего использования» или обращаются в компании наподобие Accenture или IBM, которые присылают им программистов по неоправданно высоким расценкам. Написание программ для внутреннего использования так страшно по двум причинам. Во-первых, эта работа не приносит удовольствия из-за некоторых вещей, о которых я скажу чуть позже. Во-вторых, это страшно, потому что именно так выглядит работа 80% программистов, и вы должны быть очень, очень осторожны после окончания университета, иначе вы обнаружите, что пишете программы для внутреннего использования. И вот что я вам скажу: эта работа может измучить вас до предела.
Итак, почему же быть программистом, который пишет программы «для внутреннего использования» - это отстой. Во-первых, вы никогда не будете делать всё так, как надо. Вам всегда придётся делать всё так, как будет дешевле. Слишком дорого нанимать этих программистов – обычно компания вроде Accenture или IBM просит по 300 долларов в час за услуги какого-то выпускника Йельского университета по специальности «Политология», который закончил 6-недельные курсы по .NET и зарабатывает 47 000 долларов в год и надеется, что эта работа даст ему достаточно опыта, чтобы поступить в бизнес-школу. Нет, нанимать таких программистов слишком дорого, поэтому не получится использовать Ruby on Rails, и всё равно, насколько крут Ruby и насколько хорош будет Ajax. Поэтому вы открываете Visual Studio, запускаете мастер, кидаете Grid на страницу, подключаете его к базе данных, вуаля, всё работает. Что ж, неплохо. Всё, пора переходить к следующему заданию. В этом вторая причина того, что такая работа – отстой: как только программа становится достаточно хорошей, вам приходится прекращать работу над ней. Как только реализован основной функционал, проблема решена, и улучшать программу абсолютно нерентабельно, для бизнеса в этом нет никакой выгоды. Поэтому все эти программы «для внутреннего использования» выглядят как собачий завтрак – если сделать их красивыми, это не принесёт ни цента. Забудьте о гордости за свою работу, за своё мастерство, которому вас научили на курсе CS323. Вы будете производить никчёмный мусор, а потом спешно патчить прошлогодний никчёмный мусор, который в своё время не был сделан как надо, 27 лет такой работы и вы получаете золотые часы. Ой, золотые часы больше не дают. 27 лет и у вас кистевой туннельный синдром .
Если вы программист в компании, производящей программы, и работаете над обычным проектом, или онлайн-проектом, как Google или Facebook, то чем лучше продукт, тем лучше он продаётся. Ключевой момент в разработке программ для внутреннего использования: как только программа «достаточно хороша», работа прекращается. Когда вы работаете над конечным продуктом, то вы можете улучшать, наводить блеск, заниматься рефакторингом, а если вы работаете над Facebook, то можете целый месяц оптимизировать код Ajax для выбора имён, делая его по-настоящему быстрым и крутым. И все эти усилия стоят того, потому что они делают продукт лучше, чем у конкурентов. Итак, вторая причина, по которой работать над конечным продуктом лучше, чем над программой для внутреннего использования: результат вашей работы совершенен.
Третья причина: если вы программист в компании, разрабатывающей софт, то ваша работа напрямую относится к тому, как компания зарабатывает деньги. Это прежде всего означает, что менеджеры заботятся о вас. Это значит, что у вас будет хорошая зарплата, отличный офис и неплохие шансы на повышение. Программист никогда не сможет стать генеральным директором Viacom, но вполне сможет подняться до генерального директора компании, выпускающей софт.
Продолжим. После Microsoft я устроился в Viacom, потому что я хотел изучить что-то, связанное с Интернетом, а Microsoft в то время полностью игнорировал это направление. Но в Viacom я писал всего лишь программы для внутреннего использования, и в корпоративной иерархии отстоял на несколько уровней от тех, кто каким-либо способом зарабатывал деньги для компании. И я скажу, что совершенно неважно, насколько критично было для Viacom качественно реализовать этот интернет-проект, потому что когда пришло время размещать людей в офисе, программисты сидели по трое в крохотных комнатках в тёмной части офиса без окон. А «продюсеры», я точно не знаю, чем именно они занимались, сидели в кабинетах с большими окнами с видом на реку Гудзон. Как-то на рождественской вечеринке в компании меня представили руководителю интерактивной стратегии или чего-то подобного. Очень высокий пост. Он сказал что-то неясное и неуместное о том, как важна интерактивность, и что за ней будущее. Это убедило меня в том, что у него не было ни малейшего представления о том, что происходит, что означает Интернет и в чём заключается моя работа, и он немного побаивался всего этого. Но какая разница, ведь он зарабатывает 2 миллиона долларов в год, а я всего лишь наборщик, «оператор HTML» или что-то в этом духе, полная ерунда, его дочь-подросток смогла бы это сделать.
Поэтому я переехал в офис компании Juno Online Services на другой стороне улицы. Это был интернет-провайдер, предоставлявший бесплатный диалап, который можно было использовать только для электронной почты. Это не было похоже на Hotmail или Gmail (они тогда ещё не существовали), потому что для доступа к этой почте вам не нужен был обычный доступ в интернет. Таким образом, их почта была полностью бесплатной.
На словах Juno зарабатывала на рекламе. Но оказалось, что реклама, направленная на людей, которые не могут заплатить 20 долларов AOL, не очень-то выгодный бизнес. Поэтому Juno поддерживали богатые инвесторы. Но, по крайней мере, Juno выпускала информационный продукт, в ней программистов высоко ценили, и мне нравилась цель компании – предоставлять электронную почту всем желающим. Я успешно проработал там 3 года программистом на С++. Но со временем я начал понимать, что принципы управления в Juno были старомодными. Предполагалось, что менеджеры нужны для того, чтобы говорить людям, что им делать. В высокотехнологичных компаниях на западном побережье менеджмент работал совсем наоборот. Работая в тех компаниях, я привык к тому, что менеджмент – раздражающая, нудная рутина, которой кто-то должен заниматься, чтобы умные люди могли делать свою работу. Точно так же должность заведующего кафедрой в университете – тяжкий груз, который никому не нужен, вместо этого все предпочитают заниматься исследованиями. Таков стиль менеджмента Кремниевой долины. Менеджеры нужны для того, чтобы убрать помехи, мешающие талантам делать отличную работу.
Juno основали очень молодые и очень неопытные люди – президенту компании было 24 года, и это была его первая работа. Нет, первая работа не в менеджменте, а вообще. И где-то в книге, или в фильме, или по телевизору он увидел, что менеджеры должны ПРИНИМАТЬ РЕШЕНИЯ.
Уж что я знаю точно, так это то, что у менеджеров меньше всего информации по техническим вопросам, и они последние, кто должен что-то решать. Когда я работал в Microsoft, к Майку Мэйплсу, главе отдела разработки программ, приходили люди с просьбой разрешить их споры о каком-нибудь техническом вопросе. А он играл в боулинг, шутил и предлагал им убираться к чертям из его офиса и решать проблемы самим, потому что он разбирается в сути технических вопросов хуже всех. Это было, мне кажется, единственным способом управления умными, высококвалифицированными работниками. Но менеджеры в Juno, как Джордж Буш, хотели принимать решения, но таких решений нужно было принять слишком много. Поэтому они практиковали то, что я называю «молниеносный мелочный менеджмент»: они появлялись из ниоткуда, вмешивались в детали какого-нибудь мелкого вопроса, вроде «как вводить даты в диалоговое окно», отвергая решения высококвалифицированных работников, которые изучали этот вопрос неделями, а затем молниеносно исчезали, потому что ещё один мелкий вопрос требовал вмешательства.
Поэтому я бросил эту работу, не имея никаких планов на будущее.
