Design is the devil, ever heard of intellectual property rights, if you write
a beautiful / ingenius piece of of code, would you want to share it!

The generic code can be written according to the design. Still I myself have
completed many projects with not one bit of design, here is what you have
to do.

1. Study the requirement
2. Design a DataBase with all the data kept in mind
a. Maybe create a non nonmalized table first then convert into the normalized
one.
b. Create a normalized table from requirements.
3. Study Reporting patterns. Then change/add fieds in database to accomodate
this. ( this may sound stupid, but trust me this point is very valid )
4. Design the use interfact to capture data.
5. Processing captured data depending of the type of application.
6. Before you jump to edit or delete module, start with some of the basic
reports. If the output is generated properly. Then great proceed..
7. Start building edit/delete administer modules.

During the completer process keep a end user with you to test and check what
you have made.

Trust me this works. I know we all like to use UML and what not to design
then start with the coding.
That is maybe because you cannot do it the other way round. No offence pun
unintended

Who is John Galt? ( Remember Ayn Rand? )