Исследовательское программирование. Этот подход предполагает быструю реализацию рабочих версий программ выполняющие лишь в первом приближении требуемые функции. После экспериментального применения реализованных программ производится их модификация с целью сделать их более полезными для пользователей. Этот процесс повторяется до тех пор пока не будет полностью удовлетворён заказчик. Такой подход при-менялся на разных стадиях программирования По и в настоящее время он используется для разработки таких программ для которых пользователи не могут точно сформулировать требования.
Прототипирование. Этот подход моделирует начальную фазу исследовательского программирования в плоть до создания рабочих версий программ, предназначенных для проведения экспериментов с целью установить требования к ПО. В дальнейшем должна последовать работа по установленным требованиям в рамках какого-либо другого подхода.