Hi,
I am wondering whether there is any methodology to design the program logic which is agile-proof.
Currently for example I am developing an application for video recording and uploading. At the beginning it was planned just to enable the user to select the stored recordings from the library and edit title or upload the selected video. Then the program had to be modified to display the title dialog aoutomatically when the user stops recording. Now the program has to display the title dialog on record stop then it has to ask user if he wants to upload video and then the flow proceeds in accordance with user's selection.
There might be some better example to describe the problem of executing the program methods with different combination of condition states. The main question however is how to "keep the logic under control" during the development cycle.
It simple to make a complex design based upon predefined functionalities and then write the code from beginning to the end but I believe such cases are rare. Currently I write on paper all known scenarios, then run the debugger and make modifications in order to fix the logic and bugs. Unfortunatelly at some point when the complexity grows it becomes really painful to work this way. If there exists any methodology to simplify the development I would definitely like to learn about it so if you know any good book or just give any suggestion about the issue I would be very thankful!