Медленное программирование
Итак, популярное на Западе движение cлоулайферов начинает проникать в ИТ, где оно породило свой собственный по отношению к коммерческому мейнстриму контртренд – медленное программирование. Это движение ориентируется не на дедлайны и отношения, выраженные критерием время/извлеченная выгода, а (о черт, далее – ненормативная для бизнес-среды лексика) исключительно на совершенство.
Медленное, вдумчивое программирование, осторожный и минимальный рефакторинг, никаких компромиссов между совестью и представлениями клиента, никаких окриков руководства и бесконечных митингов. Лишь кропотливый поиск максимальной эффективности решения и, конечно же, получение личного кайфа от такого рода медитативного программирования.
Часто происходит так: затянули проект, провалили все сроки, упорно «делали все на совесть», но оказалось, что все не так просто, как предполагали на этапе постановки задачи… Короче говоря, в конце концов всех уволили. Существует огромное количество подобных историй, но сегодня я расскажу лишь одну – про Рона Авицура (Ron Avitzur), программного инженера Apple. Вернее, уже бывшего инженера этой компании, хотя потом они его попытались нанять снова… Но давайте лучше по порядку.
Рон Авицур принимал участие в создании первых версий MacOS. Конкретно Рон отвечал за разработку калькулятора, встроенного теперь в эту ОС, но тогда все находилось еще в зачаточном состоянии. Сроки по созданию нового инновационного визуального калькулятора, концепцию которого, собственно, и разработала группа под руководством самого Рона, постоянно сдвигались.
Концепция была настолько нова, что задача состояла не только в том, чтобы «запрограммировать это», а скорее сводилась к поиску «как это вообще сделать». Творческий процесс программирования и разработки концептуально новых приложений – штука сложная сама по себе, но это вдвойне сложно, когда этот процесс монопольно контролирует менеджмент, нацеленный на жесткие сроки, отчетность, обязательства перед партнерами, прибыль… В общем вы поняли.
После очередного переноса сроков сдачи проекта Рона его закрыли (проект, а не Рона). Навсегда. Всех программистов его группы уволили, а менеджеров наконец перебросили «на более серьезные задачи». Предварительно менеджмент пытался спасти ситуацию, уговаривая Рона на компромисс: остановить разработку концепта и сделать более-менее обычный калькулятор с отдельными элементами былых задумок, ужавшись до требуемых сроков. Но Рон не видел никакого смысла в создании «еще одного калькулятора», поэтому сказал «нет».
Рон вспоминает, что этот день никак не выделялся: они, как обычно, сидели, погрузившись в работу. Зашедший старший менеджер очень кратко объяснил ситуацию, принятое решение и указал на коробки в углу, которые из-за крайней занятости так и не успели убрать со времен вселения в офис.
Собственно, тут и начинается настоящая история знаменитого графического калькулятора.