It all starts with the shell. Seriously, a good site shell can make or break a project. It needs to be a combination of structure and flexibility, simple yet complex enough to keep the project from falling apart. Okay maybe that’s a bit much but truth be told the base structure of the site can really have an impact on the way a site performs.
I ran into this on many occasions. When I set out to in the initial stages of the build for Endlessdrama.com it became obvious that if the structure wasn’t though out well we’d never get through the project. Three developers with varying levels of experience tackling a high profile site.
As anyone that’s dabbled with Flash for more then 5 minutes can tell you there’s about a million and a half ways to accomplish the same thing. Solutions as simple or as complex as you could possibly imagine. When facing the fact that we had to have a site live in just over 2 weeks it became very important that even with a tight schedule we needed to thing things through.
We’d build a few sites in house before, I started to ask around and received varying feedback on the builds, it wasn’t sounding like I’d be able to leverage anything we’d built previously. Which was both a blessing and curse. A blessing because I’d be able to think through and design my own shell.
Bringing this back to the point and not be a dramatic story teller here’s what I did. I took a look around, didn’t find anything that seemed promising, found again that there were a 100 different ways to approach this. Being a fan of reusable code, I planned out a few different approaches using various object models. I planned before coding, thought about what the core functionality of every shell for any kind of site would be and went from there.
In the end deadlines caused me to have to stray from the generic abstract shell in order to keep our designer happy. The site turned out great and still had a really solid foundation that should allow me to go back and continue to abstract a bit more. I haven’t had a ton of time to rework the code much but when I do I’ll let you know.