Great software starts with understanding the problem.