How to Design Perfect (Software) Products