The process of writing programs by trial and error, in order to explore new concepts and find new solutions and algorithms. It is rarely amenable to conventional
SoftwareEngineering principles and tools, since the final result is not known in advance. Careful documentation and laboratory notes, and frequent
VersionControl check-ins, are important to ensure that the results are fully understood.
ExploratoryProgramming is primarily a technique of
ResearchAndDevelopment (R&D), that may also be used in
RapidPrototyping if the target involves untested design principles. Like with prototype code, exploratory code should never be moved directly into production, though in practice it all too often is.