You would design software because you want to accomplish something that is not able to be accomplished with existing  software