When re-writing a project that you've already done it sometimes gets difficult planning out the entire project in your head. This is easy to do with smaller projects, but when you are working on something that manages multiple sites, employees, users, products, orders, email, reports and accounting, things can get a little hectic at times.. especially when you've put hours into something and have to re-write it or hack it to death to implement an overlooked feature. Welcome to programming! Just like the first photoshop job you did, looking back on old work is hard and sometimes down right scary.
I believe the first thing to be considered when starting a project is your database. It most likely will containing every bit of data you will be outputting to the user and it only makes sense to satisfy the needs of correctly storing and handling it. Once you have thought out your database tables and fields, the next step is to fill your tables with test data.
One thing I have learned over the years is, NEVER EVER WRITE ADD/EDIT FORMS FIRST!! It is far easier to use phpmyadmin to load the database with values to test things than it is to have to keep going back and forth editing your form html and form logic pages. Once you have the data successfully stored, create a way to display/edit and then finally add your data. This has always saved me time, try it yourself.
I was just bored and thought I would write something