My current process using asp mvc is:
- Talk to the client a few times to find out what they want
- Extract from m y notes a list of nouns, or entities that need to be tracked.
- Make a list of the business rules to be enforced.
- Build the database, based of the list of entities.
- Do a wireframe that roughly lays out all the UI screens.
- Start coding models/classes for each entity.
- Start coding the UI views
- Go back and forth tweaking, modifying, redoing bits that I forgot, etc
- Suddenly get done and verify all the business rules are in place.
- Ship it.
I feel my process is very inefficient, because I almost always get half way through and realize I have forgotten 3 tables, or some of the tables I have are not needed, or actually I am going to code this another way, etc, etc. Is this normal? I mean, if the architecture process is done correctly, can you foresee most, if not all, problems in the development cycle so there isn't so much redo?
I know architecting is an established profession / process. I guess I am wondering if I am close to a workable method and just need to tweak some things, or am I totally off and need to grab a good book?