Человеческий фактор в программировании

ОглавлениеДобавить в закладки К обложке

56Заметки из итальянского ресторана

Культурным сердцем Тосканы является город великого искусства и великолепной еды. Для американцев это Флоренция, для итальянцев — Firen-ze. Колонны часто встречаются в архитектуре Firenze. При написании этой колонки[46] я черпал вдохновение в одном ресторане. На мой взгляд, он может служить образцом самых лучших методов работы, на котором мы все можем учиться.

Ресторан Alle Murate — наверное, самый лучший ресторан Тосканы. Говоря это, я отдаю себе отчет в том, какую роль играет преувеличение в статьях о ресторанах. В один особенно незабываемый вечер, который я провел в этом заведении, я понял, что там ничего нельзя улучшить. Никакой приправы не требовалось добавлять, ни одна щепотка соли не была лишней. Даже гарнир не стоило сдвигать ни на волосок — настолько артистичной была сервировка.

Такое со мной случается редко. Подобно многим из тех, кто занимается программным обеспечением, я не могу смотреть на экран и не заметить при этом ляпы программистов или компоненты, которые следовало сделать иначе. Будучи странствующим консультантом, я также провел очень много вечеров в ресторанах, где мои собственные инстинкты шеф-повара всегда дают о себе знать. Когда я нахожусь в каком-нибудь ресторане, я всегда думаю о том, как бы я сам все устроил, будь он моим. Но только не в этомristorante.

Он был совершенным и идеальным. Его нель-зя было улучшить, не превратив во что-нибудь другое, чем он не должен быть и для чего не предназначался.

Три фактора, делающие это место совершенным, являются уроками для разработчиков программного обеспечения. Во-первых, безупречное внимание к деталям. Во-вторых, почти бесшовная командная работа. В-третьих, желание посетителя — превыше всего.

До последней детали

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

В ресторане Alle Murate внимание к деталям достигает той точки, когда оно становится едва заметным. Каждое блюдо — миниатюрное произведение искусства. Вилка, оставленная на тарелке, заменяется почти мгновенно. Каждый напиток, каждое вино имеет свой специальный бокал. Нет ни суматохи, ни вычурности — лишь внимание к каждой детали.

Работающие команды

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

В том ресторане все было по-другому. Небольшое помещение, где каж/ дый, похоже, отвечает за все. Умберто Монтана (Umberto Montana) стоит у руля, но весь персонал действует так, словно ресторан принадлежит всем им.

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


Логин
Пароль
Запомнить меня