Компьютерра, 2006 № 29 (649) | страница 78
Причина такого печального положения дел - сильная непрозрачность индустрии софтостроения. Причем эта непрозрачность проявляется на всех уровнях: самому лучшему тимлиду [От «team lead» - глава команды разработчиков] крайне тяжело оценить скорость продвижения и качество кода отдельного модуля, который создают программисты его команды; опытнейший менеджер практически беспомощен в попытках осознать, укладывается ли в срок и соответствует ли требованиям работа различных отделов, находящихся под его началом; заказчик (если ПО разрабатывается на заказ) и предположить не может, получит ли то, что хотел; пользователь (если ПО тиражное) не имеет никаких гарантий по какому бы то ни было параметру (глючность, скорость, соответствие определенным задачам и т. д.).
Такая непрозрачность - вовсе не следствие злонамеренности «этих идиотских программистов» («этих разэдаких индусов», «этого злобного Micro$oft’a» - формулировка зависит от настроения, образования и воспитания), а является, в общем-то, фундаментальным свойством мира разработки софта [Частично эти проблемы затрагиваются в моей статье «Незваный гость на пиру воображения» («КТ» #644)]. Роль программиста не имеет точных аналогов в других профессиях (как бы кто ни пытался доказать обратное) - ни инженеры, ни изобретатели, ни писатели, ни журналисты не работают в условиях столь тесного переплетения чистого творчества, точных наук, практических «приемчиков» и сложных взаимодействий между членами команды. Впрочем, на причинах мы подробно останавливаться не станем, а рассмотрим следствия «особого положения» индустрии разработки ПО.
Основное следствие-проблема было сформулировано в 1986 Фредом Бруксом в статье «Серебряной пули нет - существенное и случайное в разработке ПО» ["No Silver Bullet - essence and accident in software Engineering, Brooks, F. P., Proceedings of the IFIP Tenth World Computing Conference, pp. 1069-1076, 1986. Возможно, проблема формулировалась и раньше, тем не менее именно статья Брукса стала классической] следующим образом: «Нет ни одного открытия ни в технологии, ни в методах управления, одно только использование которого обещало бы в течение ближайшего десятилетия на порядок повысить производительность, надежность, простоту разработки программного обеспечения». В более расширенной формулировке (из статей самого Брукса и рассуждений других видных деятелей computer science) можно утверждать, что разработка ПО (и вообще работа в софтверном окружении) всегда будет оставаться деятельностью с непредсказуемой эффективностью и неизвестным результатом. Причем Брукс был уверен (собственно, и до сих пор уверен), что «серебряная пуля» (средство сделать упомянутый процесс эффективным и предсказуемым) не только не существует, но и принципиально не может быть создана.