hardware product development lifecycle