Компьютерра, 2006 № 29 (649) | страница 84



У самого производителя сегодня не намного больше средств обеспечения этой корректности, чем 10-20-30 лет назад, - автоматически проверить что можно (например, орфографию), тестировать автоматически или вручную [Разницу между проверкой и тестированием можно сформулировать так: проверка напрямую сверяет результат с «правильным» (что возможно далеко не всегда), а тестирование рассматривает его как «черный ящик»: на вход подали А - на выходе должно получиться Б] и опять же - полагаться на свой опыт-вкус-интуицию. Прогресс в стане производителей идет в основном не технологический, а методологический: скажем, все в той же разработке ПО - от когдатошнего максимально-формального процесса (определяем требования до начала работы, пишем кучу документации до начала кодирования, ни на йоту не отклоняемся от плана) - к сегодняшним гибким (agile) методологиям (требования могут меняться в процессе разработки, вся функциональность охвачена тестами, код, спецификации, требования непрерывно перерабатываются).

Впрочем, один из аспектов сегодняшнего прогресса софтверных технологий связан с вопросом «корректности результата» достаточно сильно: при использовании гибких методологий разработки софта одним из важных требований является то, что заказчик должен видеть «полуготовый, но уже полезный» результат разработки; в идеале представитель заказчика постоянно присутствует при процессе разработки: это дает команде разработчиков жизненно необходимый своевременный ответ на вопрос «а то ли мы вообще делаем?». Такие «тепличные» условия легко обеспечить, когда есть конкретный, единичный заказчик - но не в условиях массовой разработки, где по-прежнему приходится действовать по принципу «сделать нечто, послушать отклики пользователей, выпустить следующую версию и так ad infinitum».

В качестве альтернативы, приобретающей все большую популярность, можно ткнуть пальцем в веб-приложения (те, которые установлены на единственном сайте - а весь Интернет пользуется) как идеальную среду для получения отклика от пользователей - здесь и новую версию можно «выпускать» хоть каждый день безболезненно для пользователей; и пользователи «на виду» (можно собрать детальную статистику, кто из них как использует приложение); и пользователи эти больше расположены к общению с командой разработчиков (нет ощущения «программа у меня на компьютере, а разработчики где-то далеко»). Тот же Google Spreadsheet, на сегодня имеющий смешные по сравнению с Excel возможности, опережает последнюю только в одном: новая функция может появиться ПРЯМО СЕЙЧАС, а не «через пару лет, когда наконец-то будет выпущена следующая версия».