Cette méthode de développement de logiciel part du principe que la production d'un logiciel est le résultat d'un processus cyclique d'évolution progressive d’une forme simple vers une forme complexe, chaque cycle d'évolution fournissant un prototype de plus en plus élaboré et de plus en plus proche du système à produire. En cela, elle s'oppose aux méthodes basées sur les paradigmes de la construction et de la fabrication.
Ce principe d'évolution repose sur des considérations épistémologiques à propos du mode évolutif de la croissance de la connaissance humaine. Par exemple, appliquant ces considérations à la définition des spécifications d'un logiciel: la personne utilisant un système informatique (ou un prototype de ce système) découvre et suggère continuellement de nouvelles façons d'utiliser ce système et donc remet en cause les spécifications initiales. Pour toute application non triviale, l'expérience confirme qu'il est difficile, voire impossible, de spécifier complètement les besoins de l'utilisateur à partir de la situation initiale. Par ailleurs le monde du client n'est pas fixé: c'est une autre raison de l'évolution des besoins, y compris durant le développement.
L’idée du prototypage n'est pas neuve, elle apparaît dans de nombreux domaines de l’ingénierie comme la production rapide d’un prototype, version partielle et économique du système à produire. La particularité du prototypage évolutif est qu’un prototype n’est pas jeté: au contraire, il est réutilisé pour produire l’évolution suivante. Dans cette méthode, un prototype est évalué par le développeur et le client, ou par le développeur seul (dans le cas où l'objectif du prototype est l'évaluation d'une solution à un problème de design); les améliorations à apporter au prototype sont mises en évidence et incorporées dans la version suivante (par exemple des améliorations de spécifications et de design, des spécifications supplémentaires). Ce cycle production-évaluation d’un prototype est répété jusqu’à atteindre un produit satisfaisant les besoins du client.
Grâce au prototype, le développeur et l'utilisateur disposent d’un système d’apprentissage et d’aide à l’élaboration du logiciel à produire: le développeur apprend à mieux connaître les besoins de l'utilisateur qui lui-même apprend ce qu'un système informatique peut lui apporter et à cerner les effets de l'introduction de ce système dans son environnement de travail.
Cette méthode implique une participation importante du client, à travers la phase d'évaluation terminant chaque cycle de production-évaluation. Elle convient d'autant mieux que le langage de programmation utilisé est de haut niveau ou spécifiquement adapté à l'application: langages et environnements orientés applications, langages à base de règles et langages de très haut niveau (par exemple, le Common Lisp). Du fait même de la méthode, le facteur de qualité dit de modifiabilité est un facteur essentiel pour tout projet mettant en oeuvre cette méthode.