When I want to develop a new application, first I'm going to design a UML and specify project details and definition. But when I start development process, I determine that I should change some parts of my idea in order to become more popular software or easier logical steps for my users or simpler process or anything else.
Then, I change my code, redesign some parts of my UML and start/continue development process one time again and sure that this time I have a perfect project definition and UML, but after a while ( this time takes longer ) i determine again I should change something again ! So I get back and change my UML( sometimes not ! just continue the project without changing UML ) and so on. This process will happen over and over until I become tired or find (almost) the best state of the project or have time limitation problem!
So my question is:
'Can I design a perfect UML at the beginning of my project so that describe the best state ever !?'
- 'Should I swear in God never ever change my UML ( and project definition ) even if there is a better one and write current state to the end!'
Another question "Is changing some parts of a new idea, even if analyzed with hands of the best analyzer in the world, is inevitable ?( in order to find the best state )". I mean we can't fully simulate user experience, can we? We should see it in action.