Programmers collect visions to express in natural language, then loop attempts to express the vision until it is actualized