Увлечённые качеством

Перевод статьи «Captured by quality» Дэвида Хайнемайера Хенссона, сооснователя компании 37signals.
Делать вещи хорошо вдохновляет, делать их великолепно одурманивает. Словно есть прямая связь между достижением совершенства и безупречности и выбросом дофамина. Обратное тоже верно. Делая работу паршиво, и чувствуешь себя паршиво. Никому не нравится работать в разваленном магазине на сломанном стуле.
Так что трудно обвинять в чём-то приверженцев высказываний типа «качество бесплатно». Оно подтверждает приятные чувства, которые приходят от прекрасно выполненной работы, и оно подталкивает к мысли будто это абсолютно бесплатная сделка. Win-win и всё такое.
Но как всегда, легко зайти слишком далеко. Почти любое программное обеспечение, не являющееся жизненно необходимым, обладает убывающей отдачей от качества. Исправление всех дефектов до единого, искоренение даже самых немыслимых исключительных ситуаций и борьба с любыми проблемами производительности означают отвлечение от создания чего-то нового.
Вы можете сделать самое лучшее, самое гладкое, безупречное седло, но если рынок за это время продвинулся от передвижения на лошадях до автомобилей, это уже не поможет вашему бизнесу. Причём изменения необязательно должны быть такими глобальными. Производить лучшие барабанные тормоза непростительная глупость, когда на рынке уже есть дисковые.
Вы должны измерять ценность допиливания и улучшения существующего решения перед поиском чего-то нового и неизведанного. Это всегда происходит волнами. Вы начинаете с новой идеи и её корявой реализации. Потом пару циклов тратите на вычищение косяков до тех пор, пока та новая идея уже больше не новая и не криво реализованная, а уже известная и надёжная. Далее пора бы задуматься, стоит ли продолжать это делать.
Выгодно сделать хорошим то, что недостаточно хорошо, а далее скользить в зону, где вскоре будет шайба.

Комментарий Сета Година:
«Качество бесплатно» — это не просто высказывание. Это книга Фила Кросби.
http://www.amazon.com/Quality-Is-Free-Making-Certain/dp/0451625854
Безусловно стоит прочитать её, особенно прежде чем отвергать его тщательно сформулированный и легко поддающийся проверке аргумент.
Качество, о котором пишет Кросби, действительно бесплатно. Это качество, которое происходит из протоколов встреч, и это качество, которое обеспечивается организацией процессов и реализуется людьми-исполнителями, а не изобретателями.
Причина, по которой оно бесплатно, в том, что проще сделать свою работу хорошо сразу, чем доводить до ума в последствии.

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

Выбор часового пояса

Два самых распространённых способа ввода часового пояса в интерфейсах: выбор из списка (обычно содержит около сотни элементов) или указание точки на карте. Эти способы привычны, но есть изящное дизайнерское решение.
Читать далее Выбор часового пояса

Любовь

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

Поверхностный характер отношений внушает многим иллюзорную надежду, что глубину и силу чувств они могут найти в любви. Но любовь к себе и любовь к другому нераздельны; для любой культуры любовные отношения есть лишь более сильное проявление связей и отношений, превалирующих в этой культуре, так что не стоит питать иллюзию, будто от одиночества, к которому человек приговорен этим рыночным типом ориентации, можно вылечиться любовью.
Э. Фромм, «Человек для самого себя»

«Магические числа» в архитектуре

Мы подымались по крутой тропе, огибавшей гору. Вдруг аббатство встало перед нами. Меня поразила не толщина стен – такими стенами огораживались монастыри во всем христианском мире, – а громадность постройки, которая, как я узнал позже, и была Храминой. Восьмиугольное сооружение сбоку выглядело четырехугольником (совершеннейшая из фигур, отображающая стойкость и неприступность Града Божия). Южные грани возвышались над площадью аббатства, а северные росли из склона горы и отважно повисали над бездной. Снизу, с некоторых точек, казалось, будто не постройка, а сама каменная скала громоздится до неба и, не меняя ни материала, ни цвета, переходит в сторожевую башню: произведение гигантов, родственных и земле, и небу. Три пояса окон сообщали тройной ритм ее вертикали, так что, оставаясь на земле физическим квадратом, в небе здание образовывало спиритуальный треугольник. Подойдя ближе, я увидел, что на каждом углу квадратного основания стоит башня-семигранник, из семи сторон которой пять обращены вовне, так что четыре стороны большого восьмигранника превращены в четыре малых семигранника, которые снаружи представляются пятигранниками. Не может быть человек равнодушен к такому множеству священных числ, полных, каждое, тончайшего духовного смысла. Восемь – число совершенства любого квадрата, четыре – число евангелий, пять – число зон неба, семь – число даров Духа Святого. Величиной и планом Храмина походила на виденные мной позднее в южных краях Италии замок Урсино и замок Даль Монте, но была еще неприступнее, и робость охватывала всякого идущего к аббатству путника. Добро еще в то ясное утро у постройки был не такой мрачный вид, как в ненастную погоду.
Умберто Эко «Имя розы»

Синдром Данилы-мастера

Ну, и принялся Данилушко за тот камень. Ни дня, ни ночи не знает. А Прокопьич помалкивает. Может, угомонится парень, как охотку стешит. Работа ходко идет. Низ камня отделал. Как есть, слышь-ко, куст дурмана. Листья широкие кучкой, зубчики, прожилки — все пришлось лучше нельзя. Прокопьич и то говорит — живой цветок-то, хоть рукой пощупать. Ну, как до верху дошел — тут заколодило. Стебелёк выточил, боковые листики тонехоньки — как только держится! Чашку, как у дурман-цветка, а не то… Не живой стал и красоту потерял. Данилушко тут и сна лишился. Сидит над этой своей чашей, придумывает, как бы поправить, лучше сделать. Прокопьич и другие мастера, кои заходили поглядеть, дивятся, — чего еще парню надо? Чашка вышла — никто такой не делывал, а ему неладно. Умуется (заговаривается. — Ред.) парень, лечить его надо. Катенька слышит, что люди говорят, — поплакивать стала. Это Данилушку и образумило.

П. Бажов, «Каменный цветок»

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

Польза с первого дня

— Как на тропу войны так не мал, а как на фильму…
— Стыдись, Белое Перо. Ты ещё не отпраздновал свою 16-ю весну.
Из к/ф «Человек с бульвара Капуцинов»

В свою первую компанию я пришёл 10 лет назад в качестве стажёра ещё будучи студентом. На тот момент компания разрабатывала систему, которой уже пользовалось несколько десятков организаций в разных регионах страны. При этом исходный код просто складывался разработчиками в папку на компьютере менеджера проекта, где потом руками в IDE собирался релиз. Мы вдвоём с таким же стажёром внедряли в компании сначала CVS, потом багтрекер, систему управления проектом, автоматическую сборку проекта и т.д. Это не было нашей основной работой (мы кодировали), а скорее нашей инициативой, которая не всегда встречала однозначное одобрение со стороны руководства. Так уж сложилось, что технологиям, используемым в разработке, тоже приходилось учиться самостоятельно.

Часто бывает так, что квалификации стажёра или свежеиспечённого специалиста не хватает для того, чтобы решать задачи на проекте. Крупные фирмы организуют курсы, на которых «доучивают» тем знаниям и навыкам, которые действительно пригодятся в работе и соответствуют современному уровню развития разработки. Небольшие фирмы постепенно адаптируют молодых специалистов прямо в рабочем коллективе.
Обычно программы курсов получаются слишком академичными, где даются все теоретические основы разработки и какого-то языка программирования. Но в них, к сожалению, не попадают навыки, приобретаемые гораздо сложнее, чем изучение языка, как например, подходы к решению задачи от постановки до конечного результата, умение взаимодействовать в команде и т.д. Адаптация в коллективе обычно сталкивается с ситуацией, когда поручить что-то реальное нельзя, времени у наставника не так много, чтобы провести индивидуальное обучение, а занять человека чем-то надо. Спасает задача «изучить» что-то или «разобраться» с чем-то, которая, разумеется, не делает человека более готовым к решению задачи. Обучение, изучение, чтение — это суть процессы, а задача должна всегда иметь конкретный результат и обозримые сроки исполнения.

Любая теория людьми с техническим образованием (пусть даже незаконченным) осваивается быстрее, чем нарабатывается опыт и набиваются «шишки». Сложности возникают и при увязывании теории и практики. Поэтому гораздо эффективней, если наставник просто введёт в курс дела: объяснит логику организации исходного кода на проекте; покажет, как запускать проект; объяснит маленький кусочек архитектуры, с которым на первых порах придётся работать стажёру. И сразу после этого поставит перед ним реальные задачи. В процессе работы возникнет множество проблем и вопросов, пока всё заработает и получится сделать хотя бы первую задачу. Но это будут уже правильные вопросы, нужные именно сейчас навыки, и что самое главное, это будут первые практические результаты. Тропа войны — это отличный способ научить  человека брать на себя ответственность.

Около полугода назад мне очень понравилась методика набора специалистов, описанная в статье «С корабля на бал». Мне хотелось бы дополнить её более конкретным тезисом: любой сотрудник должен приносить пользу с первого дня работы в компании. Желательно, чтобы эта польза была практической и связана с проектом компании. Можно и кофе готовить, в принципе, или в офисе прибрать, но лучше сделать статический анализ кода, например, заодно и с исходниками познакомиться, если уж навыков не хватает пока, чтобы начать кодировать сразу. Возможно, этот тезис покажется слишком жёстким по отношению к новичкам, но на мой взгляд, это именно то, что позволит этим новичкам однажды стать гуру. А вечная подготовка и системное изучение какого-либо вопроса на рабочем месте может сделать из них только теоретиков, а закончиться может и вовсе прокрастинацией. Некоторые воспринимают такое предварительное обучение как инвестиции в будущий вклад сотрудника, но более разумным представляется на начальном этапе инвестировать в сотрудника не больше того, что он инвестирует в проект и компанию. Ещё таким методом можно отсеять задолго до окончания испытательного срока большинство «пассажиров».

При приёме стажёру даётся пропуск в офис, в систему управления проектами и в SCM, а также возможность проявить себя, обратиться за советом и помощью к более опытным коллегам, а также научиться у них чему-то. Дальше всё только в его руках.

P.S. Написано полгода назад, но пределы песочницы хабра так и не покинуло)

Глава 21. Ежедневное достижение, «The Passionate Programmer: Creating a Remarkable Career in Software Development»