If you are implementing a web site for a client, start with wire-frames. Unless your client is an experienced web developer or web designer, they will have zero ability to envision anything on the web. You have to show them exactly what they will see, or something that is obviously a drawing of a web page. Try to get them to speak to you about how the site will be used and construct some user scenarios or "use cases" from that.
When you feel you know what is required, and it's going to be an interactive site, I like to design the database first because it's the most "upstream" part of the application - everything else depends on it. Good design decisions there make the rest of your job much easier (and vice-versa). If you are making a blog or content management system, maybe it's just a matter of choosing a NoSQL database.
Once the database design looks good, I go back to my wireframes and implement them in HTML. The last phase is to write the middleware that queries the data from the database and builds the HTML for the screens.
The actual order varies for different projects and there is always back-and-forth where a design decision somewhere sends you to a different part of the application to compensate, but this is a pretty good default plan to start from.
- Gather Requirements
- Design Database
- Start front-end (HTML etc.)
- Make middle "Business Logic" to connect front-end to Database.
Reading this over, I'd have to recommend that you write test cases for your business logic as you code it. Then when you need to change something you have a way to verify that everything else still works. Some front-end testing needs to be done manually. Use an HTML validator and test (manually as a user) on several different brands of browsers.