Это одна из наиболее затасканных фраз в нашей отрасли. Все же, если на некоторое время задуматься о картине в целом, большинство из нас, видимо, согласится, что что-то мы «недоделали». За несколько последних десятилетий индустрия программного обеспечения достигла значительного прогресса в упрощении процесса разработки (кто-нибудь помнит еще ввод данных с перфокарт?). В то же время стоимость разработки определенных потенциально полезных компьютерных программ часто остается настолько высокой, что они становятся невыгодными.
Кроме того, при создании систем с помощью современных инструментов и парадигм часто наблюдается значительное отставание от графика работ. Разработка программного обеспечения по-прежнему не поддается количественным методам, применяемым в других областях конструирования. В мире программирования не столь уж редко берут некоторую наилучшую оценку времени выполнения нового проекта и умножают на коэффициент два или три, чтобы учесть непредвиденные затраты при разработке. Очевидно, что такая ситуация не удовлетворяет менеджеров, разработчиков и конечных пользователей.
«Фактор Гиллигана»
Было предположено, в шутку, что если бы у разработчиков программного обеспечения был святой покровитель, этой чести не удостоился бы никто, кроме Гиллигана, персонажа весьма популярного американского телешоу 1960-х «Остров Гиллигана». Гиллиган — загадочный, обутый в тапочки первый помощник капитана, виноватый, по общему мнению людей, оказавшихся на острове, в происшедшем кораблекрушении.
Но ясно, что виноват в этом не несчастный Гиллиган. Можно ли рассчитывать, что с помощью элементарных технологий, доступных в таких условиях, будут реализованы проекты таких сложных устройств, как бытовая техника и устройства связи? У него просто не было необходимых средств. Не исключено, что инженерные способности Гиллигана были на высочайшем уровне, но что можно собрать из бананов и кокосов?
И неизменно, раз за разом, кончается тем, что Гиллиган неумышленно срывает лучшие планы Профессора, неправильно используя и в конечном счете уничтожая его изобретения. Если бы он крутил педали своего самодельного неподвижного велосипеда быстрее (как его убеждали), все было бы хорошо. Но в конце неизбежно кокосы летят в воздух, а обломки пальмовых ветвей падают ему на голову, и бедного Гиллигана в очередной раз ругают за провал технологии.
Как ни драматичен этот образ, некоторые наблюдатели считают его поразительной метафорой программной индустрии. Как и Гиллигана, нас, разработчиков программ, часто вынуждают решать задачи с помощью явно негодных средств. Как и у Гиллигана, наши намерения правильны, но сдерживает технология. И, как несчастный Гиллиган, мы неизбежно навлекаем на себя гнев руководства, когда наши проекты завершаются с опозданием. С бананами и кокосами задачу не решить…
Делать правильно
Конечно, фактор Гиллигана — преувеличение, внесенное для комического эффекта. Но мало кто станет утверждать, что узкое место между идеями и их воплощением в работающих системах полностью исчезло. Даже сегодня стоимость разработки программного обеспечения значительно превосходит стоимость аппаратной части. Обязательно ли программирование должно быть таким сложным?
Рассмотрим ситуацию внимательней. В общем и целом причина сложности разработки программного обеспечения не связана с той ролью, которую оно должно выполнять, — обычно это четко очерченный процесс реального мира. Скорее она связана с отображением задач реального мира на модели, которые могут исполняться компьютерами. А это отображение осуществляется в контексте языков и средств программирования.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011