Well in programing professional areas exist some analisis to do for each project, but i dont think they are trully interesting in general and they are better in a company that is working for money and you have to do nice teamwork and each group of persons may have a role....
Doing all that analisis, functional, organical, data analysys, gant diagram,etc for each project sucks for me at least. I plan some thing but not using this structrue but my own:
What i do is, but its flexible, is:
1-I create a list of things to do (with a description) in the project and each time i work on some of that things i add some mark and new information to the thing to know in wich state is it. A thing maybe a object and then a other thing some or other functions of the object, a global vision, etc.
2-Then i start planning each of the things, this includes:
-I write a solution for the thing problem.
-If its needed i write the program using pseudocde. Note that this can be skipped when it dont need it or im modififng a system like XP scripts.
Note that any of these things can be skipped for whatever reason, like if im exploring and testing things rather than creating, the same when i modify a thing(in rgss thats always ), etc, and i can modifiy or add anything to each of the step without a problem.
I dont do flow diagramas but its true that all my programs are simple. What i do is to write using very descriptive pseudocode how the is going to work and be relationated.