If you want to design software then you should analyze the problem first