PRO TIP: code is now "cheap" so your first prototype doesn't necessarily have to start with the above framework... you can hack something together to understand the problem, limits, requirements. When clear.. create a plan and follow the above steps in order: output, input, process.