La programación intencional (IP), también llamada software intencional, es la representación de las intenciones de la aplicación en una forma que puede ser procesada por una computadora. En este contexto, las intenciones consisten en datos que definen las funciones y propósitos que los programadores tienen en mente cuando conciben y desarrollan una aplicación. El término está asociado con Intentional Software Corporation, con sede en Bellevue, Washington. El concepto de propiedad intelectual se originó con el ingeniero Charles Simonyi cuando trabajaba para Microsoft.
El proceso de IP comienza cuando un programador define las funciones y propósitos previstos de una aplicación propuesta en formato WYSIWYG (lo que ve es lo que obtiene). Luego, un sistema automatizado utiliza esta información para generar el producto final. Los cambios sucesivos se realizan a nivel WYSIWYG utilizando un sistema llamado banco de trabajo de dominio.
La mayoría de los lenguajes de programación representan el código fuente como texto y dan nombres simbólicos a los objetos, variables o tareas. En un programa complejo, puede resultar difícil hacer un seguimiento de qué nombre se refiere a qué entidad. En IP, a todas las entidades se les asignan identificadores privados únicos, así como nombres simbólicos. Siempre que el programa se refiere a un objeto, variable o tarea, el identificador genera automáticamente un enlace a la entidad original. Si el programador cambia el nombre de una entidad, todas las referencias a ella se actualizan en ese momento. Esto reduce el riesgo de errores que pueden ser causados por la supervisión humana o por el uso manual de la función global de búsqueda y reemplazo en un editor de texto. También agiliza el proceso de control de versiones.