If you want to design software then you should study the problem domain carefully