I'm looking for a book or some sort of documentation that could help me plan the development of an application. I would like to have an idea what pros do before they actually start coding. It's too irritating to start coding and then remembering that I did not consider something and have to go back and change lots of pieces of code.