В начале 1982 года команда ПО Lisa старалась двигаться к тому, чтобы в течение следующих шести месяцев софт вышел. Часть менеджеров решила, что неплохо бы оценивать производительность каждого отдельного инженера в числе строк кода, написанных за неделю. Менеджеры создали форму, которую инженеров обязали заполнять каждую пятницу. В этой форме одно из полей отвели на число строк кода за неделю.
Билл Аткинсон, автор Quickdraw, один из главных дизайнеров пользовательского интерфейса и явно самый важный разработчик Lisa, посчитал число строк кода глупой оценкой продуктивности. Билл видел своей целью писать как можно более маленькие и быстрые программы. Показатель в число строк кода наоборот побуждал писать небрежный, раздутый и кривой код.
Как раз в это время Билл работал над оптимизацией фрагментов кода Quickdraw, отвечающих за вычисления. С использованием более простого и общего алгоритма он полностью переписал движок регионов [ключевой структуры Quickdraw, которая компактно представляет в памяти фрагмент экрана — прим. пер.]. После нескольких улучшений производительность регионов выросла в почти шесть раз. В качестве побочного эффекта в результате работы Билла размер программы упал на 2000 строк.
Билл как раз заканчивал доводить оптимизацию до ума, когда впервые подошло время заполнить новую форму менеджеров. Когда разработчик дошёл до поля с числом строк кода за неделю, он на секунду задумался, а затем записал: ?2000.
Не знаю, как на это отреагировали менеджеры. Одно мне известно точно: ещё через пару недель Билла уже не просили заполнять форму, и он с радостью её игнорировал.
kinall
Смеяться после слова «лопата»?