Исследовательское программирование - важная часть цикла программной инженерии : когда домен не очень хорошо изучен или открыт или неясно, какие алгоритмы и структуры данных могут потребоваться для реализации, полезно иметь возможность интерактивно разрабатывать и отлаживать программу без необходимости проходить через обычные ограничения цикл редактирования-компиляции-запуска-отладки. Такие языки, как APL, Cecil, C#, Dylan, Factor, Forth, F#, J, Java, Julia, Lisp, Mathematica, Obliq, Oz, Prolog, Python, REBOL, Perl, R, Ruby, Scala, Self, Smalltalk, Tcl и JavaScript, часто в в сочетании с IDE обеспечивает поддержку исследовательского программирования за счет интерактивности, динамичности и расширяемости.
Для некоторых проектов разработки программного обеспечения это имеет смысл провести анализ требований и формальную спецификацию. Для других проектов разработки программного обеспечения имеет смысл позволить разработчикам поэкспериментировать с технологией и позволить спецификации программного обеспечения развиваться в зависимости от исследовательского программирования.
.