How software ideas are born: step-by-step guide on generating one for 2019