Custom software development: steps, timelines, and deliverables | Impulse Lab