Чтение онлайн

на главную - закладки

Жанры

Кодеры за работой. Размышления о ремесле программиста
Шрифт:

Сейбел: Давайте вернемся немного назад. Как начинался Живой Журнал?

Фицпатрик: Мы просто возились с друзьями со всякой ерундой, которой нам хотелось бы заниматься и которая казалась нам забавной. Комментарии в Живом Журнале были практически шуткой. Я проверял свою страницу, перед тем как идти на занятия. Мы только что придумали френдленту, и я увидел, что мой приятель написал какую-то глупость. Мне захотелось его подколоть, но я не мог ему ответить! И я пошел на пары, но во время занятий постоянно думал: «Как сделать систему ответов?» Я думал о существующей схеме и о возможностях ее изменения. Во

время двухчасового перерыва между занятиями я добавил систему комментариев, написал что-то хитроумно-ехидное и пошел на урок. Когда я вернулся, парень ответил: «Какого хрена? Теперь можно комментировать?!»

Все в Живом Журнале было чем-то вроде игры. Все, что связано с безопасностью — вроде постов только для друзей и закрытых постов, — появилось после того, как приятель описал, как пошел на вечеринку, а на следующий день проснулся пьяный в канаве. Его родители прочли это и подняли шум: «Как? Ты пьешь?» Вот он и предложил: «Брэд, надо сделать возможность блокировать чтение этого дерьма». А я ему: «Будет сделано!» У нас уже была система френдов (друзей), и мы сделали так, чтобы некоторые сообщения были доступны только друзьям, — оставалось не добавлять в друзья своих родителей, и все.

Сейбел: На заре Живого Журнала ваша жизнь, видимо, состояла из бессонных ночей, когда засыпаешь под утро после многочасовой работы. Насколько это обязательный атрибут жизни программиста?

Фицпатрик: По-моему, ночь — просто наименее напряженное время суток. Днем все время что-то происходит: то тебе хочется перекусить, то идешь на занятия, то тебе кто-то звонит. Тебя всегда что-то прерывает. Я не могу расслабиться. Если я занимаюсь работой за два часа до какого-нибудь собрания, то эти два часа не такие продуктивные, какими могли бы быть в тот день, когда собрание назначено на утро или его вообще нет. Если я знаю, что меня не будут отвлекать, то гораздо меньше беспокоюсь.

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

Сейбел: Поговорим о рабочем времени и интенсивности работы. Не сомневаюсь, что вы работали по 80, 120, 150 часов в неделю. При каких обстоятельствах это необходимо, а при каких — просто говорит о желании самоутвердиться?

Фицпатрик: Не уверен, что в моем случае это было необходимо или говорило о желании самоутвердиться. Мне было интересно все это, и это было именно то, что я хотел делать. Периодически что-то ломалось, но даже если ничего не ломалось, я продолжил этим заниматься, потому что постоянно работал над новыми возможностями, которые очень хотел реализовать.

Сейбел: Бывали ситуации, когда вам действительно приходилось оценивать необходимое время для реализации чего-то?

Фицпатрик: Да, когда я попал в компанию Six Apart. Это был мой первый подобный опыт, и произошло это три с половиной года

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

Думаю, постепенно я научился лучше оценивать время, но, слава богу, меня не просят об этом слишком часто. И сейчас, когда на носу дедлайн, я думаю: «Ура! Дедлайн!», — меня это так заводит, что адреналин так и хлещет, и я работаю и заканчиваю эту чертову работу. На самом деле, в Google дедлайнов нет. А бывает примерно так: «Как насчет того, чтобы это запустить? Есть такое ощущение?» Реальные сроки сдачи проектов ставятся редко и главным образом в такой форме: «Хорошо бы запустить это к такому-то числу», — и все прилагают для этого максимум усилий. Но если не заканчиваешь что-то в срок, то подводишь других. Большинство же проектов, над которыми я работаю, реализуются по принципу «Когда сделаем, тогда и сделаем».

Сейбел: Наняв программистов для Живого Журнала, вы руководили ими?

Фицпатрик: Я предполагал, что никому из них руководство не нужно, что все они будут работать самостоятельно, как я. Это был отличный опыт в управлении персоналом. Я понял, что есть те, кто делает только то, что поручено, без какого-либо стремления к совершенству. Они работают по принципу: «Сделано. Следующее задание?» — или ничего не говорят, а просто шарят по Интернету. Так что у меня было несколько таких неприятных случаев. Но, кажется, через год-другой я понял, что все люди разные.

Есть пуристы: они городят абстракцию на абстракции поверх абстракции. Они делают все страшно медленно и очень строги в вопросе оформления кода. Они считают себя мастерами программирования, а я доказываю им, что их код не работает, что он неэффективен и непохож на любой другой код, с которым взаимодействует.

Сейбел: Вы нашли способ извлекать пользу из работы таких людей?

Фицпатрик: С одним парнем я испробовал с десяток различных способов. Он был лет на десять меня старше, точно не знаю, я никогда его об этом не спрашивал — боялся, что задавать подобные вопросы незаконно. Но у меня было ощущение, что ему не хочется работать на какого-то паршивца. Мне тогда было 22. С этим парнем мы так и не сработались, и это был единственный человек, которого я уволил.

К остальным я в конце концов нашел подход и выяснил, что их мотивирует. У одного отлично получалось делать «заплатки» и создавать прототипы. Он писал на Perl как сисадмин. Он мог соединять различные вещи, писать скрипты командной оболочки, писать действительно ужасный код на Perl и на Си, но почему-то все это у него работало. Мы поражались: «Черт возьми, как ты умудрился изучить все это и как тебе удалось увязать все эти компоненты друг с другом?»

Мы устанавливали голосовой сервис для Живого Журнала: записываешь что-то и постишь в Живой Журнал. Было очень много динамичного. Адская работа. А ему нравилось. Он разобрался со всем и заставил это работать. Позднее мы полностью все переписали, но выяснили, как это работает, именно благодаря ему. Он набросал интерфейс, который мы потом доводили до ума. Как только я понял, что в этом его призвание, мы прекрасно сработались.

Поделиться:
Популярные книги

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Неудержимый. Книга XVIII

Боярский Андрей
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVIII

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Шаман. Похищенные

Калбазов Константин Георгиевич
1. Шаман
Фантастика:
боевая фантастика
попаданцы
6.44
рейтинг книги
Шаман. Похищенные

Совок

Агарев Вадим
1. Совок
Фантастика:
фэнтези
детективная фантастика
попаданцы
8.13
рейтинг книги
Совок

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Герцог и я

Куин Джулия
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Герцог и я

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

Плохая невеста

Шторм Елена
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Плохая невеста