Исследовательское программирование имеет следующие особенности:
- разработчик ясно представляет направление поиска, но не знает заранее, как далеко он сможет продвинутся к цели;
- нет возможности предвидеть объем ресурсов для достижения того или иного результата;
- разработка не поддается детальному планированию, она ведется методом проб и ошибок;
- работа связана с конкретными исполнителями и отражает их личностные качества.
В основе исследовательского программирования в большей степени, чем в других подходах, лежит искусство.
Компьютерный дарвинизм.
Название данного подхода было предложено Кеном Томпсоном (Ken Thompson). Подход основан на принципе восходящей разработки, когда система строится вокруг ключевых компонентов и программ, которые создаются на ранних стадиях проекта, а затем постоянно модифицируются. Все более крупные блоки собираются из ранее созданных мелких блоков.
Компьютерный дарвинизм представляет собой метод проб и ошибок, основанный на интенсивном тестировании. Причем на любом этапе система должна работать, даже если это минимальная версия того, к чему стремятся разработчики. Естественный отбор оставит только самое жизнеспособное.
Подход состоит из трех основных процессов:
- Макетирования (прототипирования).
- Тестирования.
- Отладки.
Одной из интересных особенностей подхода является максимально возможное распараллеливание процессов тестирования и отладки.