A computing innovation includes a program as a key part of how it works. Before writing code, developers investigate what users need through surveys, interviews, direct observation and user testing. They write requirements that describe how the program must function, design it with tools such as storyboards, and build prototypes to get early feedback. Development can be iterative, refining from feedback, or incremental, making each small piece work before adding it.