It is really hard to solve a problem right from the first attempt in software development. It never happened in my life. However, I didn’t completely fail either. I learn 3 rules:
- If you don’t talk to users, you will provide wrong solution in 100% of cases.
- If you just talk to users, you will provide wrong first solution in 100% of cases.
- If you talk to users, prototype, iterate and prototype again, you have a good chance to solve the right problem from the first attempt and the solution will be good. But still some re-work will be required after solution go-live.
In a nutshell, prepare to re-work. It is inevitable.